1 / 48

Платформа Android

Платформа Android. Ведущий семинара: Максим Лейкин, компания «МЕРА НН». План семинара . 1. Android - FAQ 2 . Инструменты Android- разработчика 3. Примеры приложений Жизненный цикл приложения + AsyncTasks , Threads Простые ресурсы , размещения Элементы управления Хранилища данных

lindley
Download Presentation

Платформа Android

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Платформа Android Ведущий семинара: Максим Лейкин, компания «МЕРА НН»

  2. Плансеминара 1. Android - FAQ 2. Инструменты Android-разработчика 3.Примеры приложений Жизненный цикл приложения + AsyncTasks, Threads Простые ресурсы, размещения Элементы управления Хранилища данных Content Providers Intents, receivers Сервисы LBS-приложения

  3. Плансеминара Часть 1. Android - FAQ Что такое Android? Кто его разрабатывает? Какие версии Android существуют? Какие аппаратные платформы поддерживаются? Под какой лицензией распространяется Android? В чем ключевые особенности Android? Из чего состоит Android? Какова доля Android на рынке мобильных платформ? Какие существуют устройства на платформе Android? Что такое Google Play? В чем преимущества и недостатки платформы Android?

  4. Что такое Android? Android — операционная система для мобильных устройств (смартфонов, КПК, планшетных компьютеров), основанная на ядре Linux. Android позволяет создавать Java-приложения, управляющие устройством через разработанные Google библиотеки. Также есть возможность писать приложения на Си и некоторых других языках программирования с помощью Android Native Development Kit. Официальный сайт: www.android.com

  5. Кто разрабатывает Android? Изначально разрабатывалась компанией Android Inc., которую в 2005 году купила Google. Впоследствии, Google инициировала создание Open Handset Alliance (OHA), который сейчас и занимается поддержкой и дальнейшим развитием платформы. Google Inc. - www.google.com Open Handset Alliance - www.openhandsetalliance.com

  6. Какие версии Android существуют? 23 сентября 2008 вышла версия ОС Android 1.0 на базе ядра Linux 2.6.25 1.1 - Bender – февраль, 2009 1.5 – Cupcake – апрель, 2009 1.6 – Donut – сентябрь, 2009 2.0 – Eclair – октябрь, 2009 2.2 – Froyo – май, 2010 2.3 – Gingerbread – декабрь, 2010 3.1– Honeycomb – май, 2011 (tablet only) 4.0 – Ice Cream – октябрь, 2011 4.1 – Jelly Bean – июль 2012 4.2 – Jelly Bean – февраль 2013 4.3 – Jelly Bean – июль 2013 HTC Dream (T-Mobile G1) — первый смартфон на основе Android Традиционно релизам Android дают имена по названиям различных десертов, причем в алфавитном порядке 

  7. Какие платформы поддерживает Android? ARM MIPS Power Architecture x86

  8. Под какой лицензией распространяется Android? Ядро – GPLv2 Пользовательская часть – Apache Software Licensev2

  9. В чем ключевые особенности Android?

  10. В чем ключевые особенности Android?

  11. Из чего состоит платформа Android? GoogleAndroid основывается на ядре GNU/Linux версии 2.6 (платформа 4.0 на 3.0.1) и представляет собой программный стек, включающий операционную систему, ПО промежуточного слоя (библиотеки), виртуальную машину Dalvik и основные пользовательские приложения. Текущий релиз платформы Android состоит из примерно 12 миллионов строк кода. Из них: ~ 3 млн. LOC на XML ~ 2.8 млн. LOC на С ~ 2.1 млн. LOC на Java ~ 1.75 млн. LOC на C++

  12. Из чего состоит Android? Библиотеки, написанные на C/C++., обеспечивают поддержку основных форматов файлов, мультимедийных кодеков, алгоритмов шифрования (например SSL) и т.д. Очень важной библиотекой является «движок» встроенного браузера — LibWebCore (WebKit). Среда исполнения AndroidRuntime, включающая нестандартную виртуальную Java-машину Dalvik и набор основных библиотек CoreLibraries, написанных на Java. Ядро Linux занимается управлением памятью, процессами, безопасностью, а также включает драйверы устройств и сетевую подсистему. Кроме того, ядро системы обеспечивает взаимодействие остальной части программного стека с аппаратными ресурсами. Самый верхний уровень программного стека — пользовательские приложения. В основном программы для Android пишутся на Java, но недавно появилась возможность писать также на C/C++ с помощью AndroidNativeDevelopmentKit. Кроме того, в Google создали еще один язык программирования для разработки Android-приложений — Simple. Он построен на BASIC и основан на модулях, позволяющих разрабатывать программы даже неспециалистам. ApplicationFramework дает приложениям возможность использовать функционал других приложений и компонентов системы. Здесь находятся менеджеры ресурсов (такие, как менеджер окон и менеджер оповещений), а также некоторые важные службы, например, контент-провайдеры (ContentProviders), обеспечивающие обмен данными между приложениями.

  13. Какова доля Android на рынке мобильных платформ?

  14. Примеры устройствна платформе Android Motorola XOOM HTC Sensation Samsung Galaxy Note Lenovo IdeaPad A1 LG Optimus 2X Sony Xperia S

  15. Примеры устройствна платформе Android

  16. Google Play GooglePlay (бывшее наименование — AndroidMarket) — магазин приложений от Google, позволяющий владельцам устройств Androidскачивать и покупать Android-приложения. Возможна публикация как платных так и бесплатных приложений. Учетная запись разработчика, которая даёт возможность публиковать приложения, стоит $25. Разработчики приложений для Google Playполучают 70 % прибыли, оставшиеся 30 % идут на оплату и обслуживание биллинга, а также на налоги. Google не получает прибыли от продажи приложений.

  17. Google Play Current number of Android apps in the market: 670330Percentage of low quality apps: 23 % Current number of free apps in the market: 523986Current number of paid apps in the market: 146942

  18. Достижения и проблемы платформы Android • Устройства • ~4000 моделей • ~700млн. устр-в продано, • из них ~32 млн. планшетных • ~850 тыс. устройств активируются за день • Фрагментация рынка • ~96% устройств используют версию платформы 2.3 или ниже • Проблемы с аппаратной совместимостью • Безопасность • Обратная стороны популярности и открытости платформы • Недостаток централизованной поддержки

  19. Достижения и проблемы платформы Android

  20. Плансеминара Часть 2. Платформа Android для разработчика Инструментарий Android-разработчика 2. Источники информации 3. Составные части приложения для Android Activities Intents Content Providers Services

  21. Инструментарий разработчика Mandatory: Java2 SDK 1.5 или выше http://www.oracle.com/technetwork/java/javase/downloads Android Software Development Kit (текущая версия r21.1) http://developer.android.com/sdk/index.html Optional: Eclipse 3.4 (Ganymede) или выше Eclipse JDT plugin (включен в большинство стандартных поставок Eclipse) http://www.eclipse.org/downloads/ Android Developer Tools plugin (ADT) – тек.версия21.1.0 http://developer.android.com/sdk/eclipse-adt.html Apache Ant 1.8 или вышеhttp://ant.apache.org/ USB Driver for Windows http://developer.android.com/sdk/win-usb.html

  22. Android-разработка: источники информации • Mark Murphy. The Busy Coders Guide to Android Development • RetoMeier. Professional Android Application Development. • Интернет-уроки по Androidhttp://startandroid.ru/ru/uroki/vse-uroki-spiskom.html • Official Android Training materialshttp://developer.android.com/training/index.html • Android API Guideshttp://developer.android.com/guide/components/index.html • API Referencehttp://developer.android.com/reference/packages.html

  23. Составные части Android-приложения Android-application Services Activities Content Providers Intents

  24. Activities Activity – основная единица графического интерфейса (аналог окна или экранной формы)

  25. Content Providers Content Provider – “прослойка” между приложением и хранилищами данных

  26. Intents Intent – системные сообщения позволяющие приложениям обмениваться информацией между собой и с операционной системой. Примеры сообщений: поступление телефонного звонка приход sms-сообщения вставлена SD-карта запущена новая актвиность

  27. Services Service – приложения, не имеющие GUI и выполняющиеся в фоновом режиме Примеры сервисов: проверка электронной почты получение гео-информации

  28. Установка SDK и ADT Скачать и установить Java SDK версии >= 1.5 Скачать и установить Android SDK (http://developer.android.com/sdk/index.html) Из каталога, где установлен AndroidSDK, запустить SDK Manager.exe

  29. Установка SDK и ADT (продолжение) Отметить и установить необходимые пакеты SDK Tools – обязательный компонент. Проверить, что установлен. SDK Platform Tools – обязательный компонент. Проверить, что установлен. SDK Platform – обязательный д.б. установлена хотя бы одна платформа. М.б. установлено любое количество.

  30. Создание виртуального устройства (эмулятора) Из каталога, где установлен AndroidSDK, запустить AVD Manager.exe

  31. Создание виртуального устройства(эмулятора)

  32. Установка ADT plugin для Eclipse 1. Запустить Eclipse, Help > Install New Software -> Add. 2. В диалоге “Add Repository” ввести: 3. Выбрать “Developer Tools” 4. По окончании установки перезапустить Eclipse. 5. В Preferences -> Android -> SDK Location указать путь к Android SDK

  33. Создание нового Android-приложения Из Eclipse (если установлен ADT): File > New > Project -> Android Project

  34. Структура каталогов Android-приложения AndroidManifest.xml– XML-файл, описывающий структуру приложения и его компоненты build.xml- Ant script для компиляции приложения из командной строки bin/ - откомпилированный код приложения src/ - исходный код приложения res/ - «ресурсы» приложения assets/ - статические файлы, поставляемые вместе с приложением

  35. Ресурсы приложения strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, HelloAndroid!</string> <string name="app_name">HelloAndroid</string> <string name="update">Update Time</string> </resources>

  36. Ресурсы приложения main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/timerText" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/updateButton" android:text="@string/update" /> </LinearLayout>

  37. Исходный код приложения HelloAndroid.java package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import java.util.Date; public class HelloAndroid extends Activity implements View.OnClickListener { Button btn; EditTexttimeText; public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); btn=(Button)findViewById(R.id.updateButton); timeText = (EditText)findViewById(R.id.timerText);

  38. Исходный код приложения HelloAndroid.java btn.setOnClickListener(this); updateTime(); } public void onClick(View view) { updateTime(); } private void updateTime() { timeText.setText(new Date().toString()); } }

  39. Манифест AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloandroid" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloAndroid" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>

  40. Запуск на эмуляторе Из командной строки: Из каталога, где установлен Android SDK: cd tools emulator.exe@TestDevice2 adb.exe install HelloAndroid.apk Из Eclipse:

  41. Запуск на эмуляторе

  42. Запуск на устройстве 1. Подсоединить устройство через USB 2. cd tools adb-d install HelloAndroid.apk

  43. Отладка Android-приложений Отладка из Eclipse: - The Debug Perspective - The DDMS Perspective (Dalvik Debug Monitor Server )

  44. Отладка Android-приложений: Breakpoints

  45. Отладка Android-приложений: запуск в debug

  46. Отладка Android-приложений: Debug Perspective Debug – показывает отлаживаемые приложения и выполняющиеся в данный момент потоки Variables – значения переменных (работает если есть установленные breakpoints) Breakpoints – расставленные точки останова LogCat – Системные сообщения платформы(в т.ч. exceptions)

  47. Отладка Android-приложений: Debug Perspective

  48. Отладка Android-приложений: DDMS Perspective Devices – список подключенных эмуляторов и устройств Threads – выполняющиеся потоки Emulator Control – управление эмулятором Allocation Tracker – выделение памяти Allocation Tracker – выделение памяти Heap – использование динамической памяти

More Related