codefest 2012. Лоенко М. — Разработка и оптимизация android*...

25
Разработка и оптимизация Android* приложений для платформ на основе процессоров Intel® Atom™ *Other names and brands may be claimed as the property of others. Михаил Лоенко, руководитель группы по разработке ПО, Intel

Upload: codefest

Post on 29-Nov-2014

1.169 views

Category:

Documents


5 download

DESCRIPTION

 

TRANSCRIPT

Page 1: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Разработка и оптимизация Android* приложений для платформ на основе процессоров Intel® Atom™

*Other names and brands may be claimed as the property of others.

Михаил Лоенко, руководитель группы по разработке ПО, Intel

Page 2: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Юридическая информация

04/09/20232

Юридическая информация (Legal disclaimer)

Материалы, размещенные в данной презентации (далее по тексту — "материалы"), предоставлены корпорацией Intel (далее по тексту — "Intel") в качестве услуги потребителям, потенциальным потребителям ее продукции и потенциальным клиентам исключительно в информативных целях. Обозначения и наименования Intel, Intel®, логотип Intel, являются наименованиями и/или товарными знаками, права на которые принадлежат корпорации Intel или ее подразделениям на территории США и других стран.*Другие наименования и товарные знаки являются собственностью своих законных владельцев.Результаты тестирования и рейтинговые показатели, полученные с применением конкретных компьютерных систем и/или их компонентов, отражают приблизительную производительность продукции Intel по данным упомянутого тестирования. Всякое отличие в компоновке или конфигурации аппаратных средств или программного обеспечения может сказаться на реальных показателях производительности. Для оценки производительности тех или иных систем или компонентов перед их приобретением покупателям следует обратиться к другим источникам информации. Дополнительные сведения о результатах тестирования и о показателях производительности продукции Intel доступны в Интернете по адресу http://www.intel.com/performance/resources/limits.htm   либо по телефону в США 1-800-628-8686 или 1-916-356-3104.

Copyright © 2011 Intel Corporation. Данные материалы охраняются авторским правом и защищены нормами международного законодательства об охране авторских прав и соответствующих международных соглашений. Без предварительного письменного согласия корпорации Intel не допускается их копирование, воспроизведение, внесение в них изменений, публикация, загрузка, размещение их в Интернете, пересылка или распространение любыми способами. Если данным документом недвусмысленно не предусмотрено иное, корпорация Intel и ее поставщики не предоставляют пользователю каких-либо прав собственности, как явных, так и подразумеваемых, в отношении каких-либо патентов, авторских прав, товарных знаков или сведений, составляющих коммерческую тайну. Иные права могут быть предоставлены Вам корпорацией Intel либо в письменной форме, либо путем внесения соответствующих положений в документацию, сопровождающую материалы.

МАТЕРИАЛЫ ПРЕДОСТАВЛЯЮТСЯ ПО ПРИНЦИПУ "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ВКЛЮЧАЯ, В ЧИСЛЕ ПРОЧЕГО, ГАРАНТИЙ В ОТНОШЕНИИ ИХ РЫНОЧНЫХ КАЧЕСТВ, НЕНАРУШЕНИЯ ПРАВ НА ИНТЕЛЛЕКТУАЛЬНУЮ СОБСТВЕННОСТЬ ИЛИ ПРИГОДНОСТИ К ИСПОЛЬЗОВАНИЮ В ТЕХ ИЛИ ИНЫХ КОНКРЕТНЫХ ЦЕЛЯХ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ КОРПОРАЦИЯ INTEL ИЛИ ЕЕ ПОСТАВЩИКИ НЕ НЕСУТ КАКОЙ-ЛИБО ОТВЕТСТВЕННОСТИ ЗА УЩЕРБ (ВКЛЮЧАЯ, В ЧИСЛЕ ПРОЧЕГО, УПУЩЕННУЮ ВЫГОДУ, ПОСЛЕДСТВИЯ ПРИОСТАНОВКИ ПРЕДПРИНИМАТЕЛЬСКОЙ ДЕЯТЕЛЬНОСТИ ИЛИ ПОТЕРЮ ДАННЫХ), ВЫТЕКАЮЩИЙ ИЗ ФАКТА ИСПОЛЬЗОВАНИЯ МАТЕРИАЛОВ, ЛИБО НЕВОЗМОЖНОСТИ ИХ ИСПОЛЬЗОВАТЬ, ЧТО РАСПРОСТРАНЯЕТСЯ И НА ТЕ СЛУЧАИ, КОГДА КОРПОРАЦИЯ INTEL БЫЛА ПРЕДУПРЕЖДЕНА О ВОЗМОЖНОСТИ НАНЕСЕНИЯ ТАКОГО УЩЕРБА. УЧИТЫВАЯ, ЧТО ЗАКОНОДАТЕЛЬСТВО, ДЕЙСТВУЮЩЕЕ В РЯДЕ ЮРИСДИКЦИЙ, НЕ ДОПУСКАЕТ ОГРАНИЧЕНИЯ ИЛИ ОТКАЗА ОТ ОТВЕТСТВЕННОСТИ ЗА ПОБОЧНЫЙ ИЛИ КОСВЕННЫЙ УЩЕРБ, ИЗЛОЖЕННОЕ ВЫШЕ ПОЛОЖЕНИЕ МОЖЕТ К ВАМ НЕ ОТНОСИТЬСЯ. Корпорация Intel и ее поставщики не гарантируют точности или полноты текстовой или графической информации, ссылок и иного содержания материалов. Корпорация Intel вправе в любое время и без предварительного уведомления вносить любые изменения в указанные материалы, а равно и в продукцию, описанием которой они служат. Корпорация Intel не берет на себя каких-либо обязательств по обновлению материалов.

Page 3: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Содержание

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms3

• Android* на платформах с Intel® Atom™

• Обзор приложений Android*

• Разработка приложений Android* с x86 NDK

• Оптимизация Android* приложений под Intel Atom

• Полезные ресурсы для разработчиков под Android*

• Заключение/Call to Action

Page 4: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

SoC платформа «Medfield» на основе процессора Intel® Atom™

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms4

Богатый функционал Multimedia(1080p Encode,Dual Decode)

Богатый функционал Multimedia(1080p Encode,Dual Decode)

Удобный для пользователя

Удобный для пользователя

Отличная скорость на ватт

Отличная скорость на ватт

Встроенная защита

Встроенная защита

Reference Designпозволяет оперативно выпускать с Intel на Android*

Reference Designпозволяет оперативно выпускать с Intel на Android*

32nm SoC32nm SoC

МеньшеFootprint‡

МеньшеFootprint‡

2X Memory Bandwidth‡

2X Memory Bandwidth‡

LPDDR2LPDDR2

Обработка образов

Обработка образов

Пользовательский функционал

Пользовательский функционал

Intel® Wireless Display1

Always On, Always Connected2

Тонкий и лёгкий с ошеломляюще долгой работой аккумулятора,

производительностью мультимедиа

Тонкий и лёгкий с ошеломляюще долгой работой аккумулятора,

производительностью мультимедиа

Тонкий<9 мм

Лёгкий<680 г 3

Лучший в классе Flash

Page 5: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Типы приложений Android*

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms5

• «Стандартные» приложения Android* не зависят от архитектуры CPU• RenderScript*, Web Apps(WebView)

позволяют дополнительную гибкость

• Приложения Android* могут включать нативный код (C/C++) при помощи Native Development Kit (NDK)

Приложения Android* без «нативного» кода

Android* Manifest

Dalvik* optimized

Java* Classes

Resources

Приложения Android* с «нативным» кодом

Android* Manifest

Dalvik* optimized

Java* Classes

Resources

JNI/Native code

libraries

Page 6: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Исполнение приложений Android* Apps на устройствах с Atom

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms6

• Android* Market

• Существующие не-NDK приложения будут работать «как

есть»

• NDK приложения потребуют перекомпиляции с NDK для x86 и

«переупаковки» с SDK

• Перенос приложений прост как банальная перекомпиляция

(если только приложение не «завязано» на конкретное

«железо»)

Page 7: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Разработка приложений Android* для Atom

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms7

• Android* Development Tools включают поддержку x86

- Android* SDK, NDK и Eclipse* ADT plug-in поддерживают x86

• Переиспользуйте существующие x86 приложения и библиотеки- Они могут быть перенесены на Android* при помощи x86 NDK- http://software.intel.com/en-us/android/

• Узнайте, как разрабатывать приложения под Android*:

• http://developer.android.com/guide/developing/index.html

Page 8: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Разработка приложений Android* с нативным кодом под процессоры Atom

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms8

• Android* NDK работает совместно с Android SDK и, начиная с r6, поддерживает x86

• http://software.intel.com/en-us/articles/ndk-for-ia/

• Разработчик может построить один APK, который поддерживает все архитектуры, в т.ч. x86– Android* Package Manager автоматически инсталлирует

правильную нативную библиотеку в момент инсталляции

• Воспользуйтесь преимуществами расширений Atom Streaming SIMD!

- x86 ABI поддерживает расширения до SSE3 включительно

Page 9: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Воспользуйтесь преимуществами платформенного функционала, используя NDK

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms9

Разработка приложений с использованием x86 NDK:

• Постройте преимущества своего приложения на основе функционала платформы Atom SoC

• Задействуйте цифровые мультимедийные устройства (напр., 60” телевизор) при помощи технологии WiDi

• Получите дополнительные возможности для обеспечения безопасности

• Насладитесь энергоэффективной производительностью

Приложение Android* с «нативным» кодом

Android* Manifest

Dalvik* optimized

Java* Classes

Resources

JNI/Native code

libraries

Atom™ SoC Platform

Intel®

WirelessDisplay

PC Sync*

Intel®

WirelessMusic

InstantOn

Page 10: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Преимущества и недостатки использования «нативного» кода

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms10

• Преимущества• Задачи, чувствительные к производительности

• Преимущества прямого доступа к CPU/HW

• Новая жизнь уже написанного x86 софта

• Недостатки• Переносимость

• Меньшая гибкость

Page 11: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Инструменты Android*

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms11

• Android* SDK и AVD Manager,DDMS, Traceview, итд – всё работает

• Создание AVD конфигурации для Atom’а с использованием Android* SDK и AVD Manager’а

Page 12: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Инструменты разработки Android* для Atom

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms12

Android* x86 Emulator

• Доступен с SDK v12http://software.intel.com/en-us/articles/installing-the-android-sdk-for-ia/

• Полностью интегрирован в Android* development environment

http://software.intel.com/en-us/articles/android-ia-emulator-gingerbread/

Android* x86 Emulator

Page 13: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Платформенные инструменты Android*

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms

13

• Использование ADB для присоединения к эмулятору x86 Android* или к устройству

• Используйте emulator-x86 с Intel VT HW acceleration (опция –enable-kvm на linux)

Page 14: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Android Optimizations on Atom

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms14

From Google*

From

Intel

From OSV/SI

Platform for Android*

Includes OEM/Carrier customization,3rd-party components, support

Intel® AtomTM processor optimized open source versions of Android

Middleware• Javascript* and HTML5

optimizations

• HW graphics acceleration

Linux* Kernel• Expanded BSP w/ boot

time and footprint reduction

• Core OS optimization

Platform Drivers• Drivers optimized for

power & memory footprint*

Applications Framework• Framework optimizations

Android* Runtime• Android* runtime

(Dalvik*) optimizations • Trace-based JIT and native code generation• Enriched memory management (e.g., garbage collection)• JNI streamlining• Runtime tuning

Integrated & built as a complete stack & made available publicly on a

web portal

Applications

BSP

App Framework

MiddlewareAndroid* Runtime

Linux* KernelPlatform Drivers &Optimized Power

Management

Page 15: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Приложения Android* Apps на Atom – Рекомендации по улучшению быстродействия

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms15

Общие советы для Android* приложенийhttp://developer.android.com/guide/practices/design/performance.html

• Избегайте создания ненужных объектов или выделений

памяти

• Избегайте использования get/set функций внутри класса.

Используйте поля напрямую.

• Используйте Static/Final где это уместно

• Не используйте floating point типы без необходимости

• Используйте стандартные библиотеки с готовыми

«оптимизациями»

• Проблемы производительности можно изолировать с помощью Traceview* и DDMS инструментов

Page 16: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms16

• Предварительное выделение памяти под объекты– Частый garbage collection может повлечь существенные накладные

расходы

• Android для Atom содержит JIT

• Используйте «нативный» код (NDK) где возможно/уместно

• Быстродействие != user experience• Советы по дизайну приложений

• http://developer.android.com/guide/practices/design/seamlessness.html• http://developer.android.com/guide/practices/design/responsiveness.html

Приложения Android* Apps на Atom – Рекомендации по улучшению быстродействия

Page 17: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Отладка производительности Android* приложений

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms17

• В поставку Android* SDK входят несколько инструментов для отладки производительности Android* приложений

• http://software.intel.com/en-us/articles/performance-debugging-of-android-applications/

• DDMS• Thread updates• Heap Tools• Allocation Tracker

• Traceview• Method Profiling with DDMS• Precise profiling using trace API

• Hierarchy Viewer and layoutopt

Page 18: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Производительность UI в Android* приложениях

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms18

• layoutopt• Анализирует layout XML файлы и выдает отчет о неэффективном

использовании.• Очень полезен для быстрой оптимизации views/layouts

приложения, уменьшения времени загрузки и т.д.

• Hierarchy Viewer• Отображает временные затраты на Measure, Layout и Draw• Используется для изоляции медленных участков UI

Page 19: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Анализ производительности и энергопотребления на уровне Android* системы

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms19

• Как и в Linux*, в Android* можно использовать те же системные инструменты для нискоуровневого доступа к параметрам системы

• Производительность: “top”, /proc/<pid>/stat, /proc/stat• Энергопотребление: /sys/class/power_supply/battery/uevent• P-states: /sys/devices/system/cpu/cpuX/cpufreq/stats

• Для анализа памяти, используемой конкретным процессом и системой, можно использовать “procrank”

• procrank доступен только в инженерных образах системы.

• Ресурсы Intel для Android* разработчиков детально охватывают данную тематику:

• http://software.intel.com/en-us/articles/android-power-measurement-techniques/• http://software.intel.com/en-us/articles/performance-assessment-of-android-applications/

Page 20: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Intel Developer Resources for Android*

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms20

• Getting Started• Technical Content• Online Community• Opinion Blogs• Support Forums• Videos & Events

http://intel.com/software/android

Page 21: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Заключение / Call for action

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms21

• Вы можете подготовить ваше приложение к работе на Intel Atom уже сейчас.

– Используйте новейшую версию Android* SDK для проверки приложения на x86 эмуляторе

– Обновите ваши Android* приложения для поддержики форм-фактора планшета.

– Разработайте/спортируйте ваши NDK приложения с помощью новейшей версии Google NDK

• Intel и ISV уже портируют/тестируют приложения к выпуску устройств на Intel Atom.

• Оптимизируйте ваши приложения для наилучшего результата при работе на Intel Architecture

Зарегистрируйтесь на: http://intel.com/software/android

Page 22: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Risk Factors

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms22

The above statements and any others in this document that refer to plans and expectations for the second quarter, the year and the future are forward-looking statements that involve a number of risks and uncertainties. Words such as “anticipates,” “expects,” “intends,” “plans,” “believes,” “seeks,” “estimates,” “may,” “will,” “should,” and their variations identify forward-looking statements. Statements that refer to or are based on projections, uncertain events or assumptions also identify forward-looking statements. Many factors could affect Intel’s actual results, and variances from Intel’s current expectations regarding such factors could cause actual results to differ materially from those expressed in these forward-looking statements. Intel presently considers the following to be the important factors that could cause actual results to differ materially from the company’s expectations. Demand could be different from Intel's expectations due to factors including changes in business and economic conditions, including supply constraints and other disruptions affecting customers; customer acceptance of Intel’s and competitors’ products; changes in customer order patterns including order cancellations; and changes in the level of inventory at customers. Potential disruptions in the high technology supply chain resulting from the recent disaster in Japan could cause customer demand to be different from Intel’s expectations. Intel operates in intensely competitive industries that are characterized by a high percentage of costs that are fixed or difficult to reduce in the short term and product demand that is highly variable and difficult to forecast. Revenue and the gross margin percentage are affected by the timing of Intel product introductions and the demand for and market acceptance of Intel's products; actions taken by Intel's competitors, including product offerings and introductions, marketing programs and pricing pressures and Intel’s response to such actions; and Intel’s ability to respond quickly to technological developments and to incorporate new features into its products. The gross margin percentage could vary significantly from expectations based on capacity utilization; variations in inventory valuation, including variations related to the timing of qualifying products for sale; changes in revenue levels; product mix and pricing; the timing and execution of the manufacturing ramp and associated costs; start-up costs; excess or obsolete inventory; changes in unit costs; defects or disruptions in the supply of materials or resources; product manufacturing quality/yields; and impairments of long-lived assets, including manufacturing, assembly/test and intangible assets. Expenses, particularly certain marketing and compensation expenses, as well as restructuring and asset impairment charges, vary depending on the level of demand for Intel's products and the level of revenue and profits. The majority of Intel’s non-marketable equity investment portfolio balance is concentrated in companies in the flash memory market segment, and declines in this market segment or changes in management’s plans with respect to Intel’s investments in this market segment could result in significant impairment charges, impacting restructuring charges as well as gains/losses on equity investments and interest and other. Intel's results could be affected by adverse economic, social, political and physical/infrastructure conditions in countries where Intel, its customers or its suppliers operate, including military conflict and other security risks, natural disasters, infrastructure disruptions, health concerns and fluctuations in currency exchange rates. Intel’s results could be affected by the timing of closing of acquisitions and divestitures. Intel's results could be affected by adverse effects associated with product defects and errata (deviations from published specifications), and by litigation or regulatory matters involving intellectual property, stockholder, consumer, antitrust and other issues, such as the litigation and regulatory matters described in Intel's SEC reports. An unfavorable ruling could include monetary damages or an injunction prohibiting us from manufacturing or selling one or more products, precluding particular business practices, impacting Intel’s ability to design its products, or requiring other remedies such as compulsory licensing of intellectual property. A detailed discussion of these and other factors that could affect Intel’s results is included in Intel’s SEC filings, including the report on Form 10-Q for the quarter ended April 2, 2011.

Rev.5/9/11

Page 23: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

23 Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms

Page 24: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Backup

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms24

Page 25: CodeFest 2012. Лоенко М. — Разработка и оптимизация Android* приложений под платформы на базе Intel Atom

Abstract

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms25

Developing and Optimizing Android* Applications for Intel® Atom™ Processor-based Platforms

In this session you will learn about developing Android* applications for Intel® Atom™ processor-based Tablets and Smartphones. Learn what is required to get your Android* application up and running on Intel® Architecture. This session will address: 

• Developing killer apps using Intel Atom- based tablets and smartphones • Porting native libraries using x86 NDK • Tips and tricks for identifying and removing performance bottlenecks • Identifying optimization opportunities to make your killer app runs best on Intel Atom based Tablets and

Smartphones • Resources available to developers in developing apps on Intel Architecture