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

Презентация:



Advertisements
Похожие презентации
Введение в разработку мобильных приложений Лекция 1 Введение в разработку приложений для смартфонов на ОС Android.
Advertisements

Вклад компании HTC в развитие ОС Android История компания HTC High Tech Computer Corporation 1997 год – основание компании HTC. Основные направления.
ArtfulBits inc. aiMinesweeper. Первая в Украине игра для Android. Android custom components Anti-piracy движение Готовые решения для Android-разработчиков.
BitrixMobile Юрий Тушинский Технический директор Битрикс.
Операционные системы. Выполнила студентка группы МОЦИ -306 Большешапова Елизавета.
Мобильные операционные системы. Существуют операционные системы Android IOS Windows Phone Symbian OS Blackberry OS Tizen.
cvb
Платформа Java SE: введение Андрей Дмитриев
Докладчик: Кин Кирилл, ВМИ-115 Windows Azure Демонстрация разработки и внедрения простейшего сервиса.
Мобильные приложения. Существующие Мобильные OS iPhone OS Android OS Windows Mobile BlackBerry OS Symbian OS Palm OS.
Разработка отладчика для программ на языке haXe и целевой платформы Adobe Flash 9 Выполнил студент 544 группыКрасько Н.Л. Научный руководительПлискин М.М.
Java: современные технологии разработки ПО Вашенков О.Е. ООО «РСС», разработчик ПО.
Android Comapping Продолжение студенческого проекта в Летней школе СПбГУ, Математико-Механический факультет, 2009.
1. Теоретические основы операционных систем (планирование заданий и использования процессора, обеспечение программ средствами коммуникации и синхронизации,
Виды операционных систем. Что такое операционная система? Операцио́нная систе́ма, сокр. ОС (англ. operating system, OS) комплекс взаимосвязанных программ,
Oracle APEX для Парус 8: направления использования APEX, учебные курсы Парус 8.
PRC303 Службы и приложения Инфраструктура Развёртывание Hyper-V на серверы без ОС Hyper-V, VMware, Citrix XenServer Управление сетевыми устройствами.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 3 Основные концепции и архитектура Microsoft.
1 Программное обеспечение (ПО) или «софт» (software) По назначению Системное Прикладное Инструментальное По способу распространения Проприетарное Открытое.
Виктория Васильева KO12-KV TEKO 1. Браузер (броузер, пользовательский агент, browser) - средство просмотра; программное обеспечение, предоставляющее.
Транксрипт:

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

План семинара Часть 1. Android - FAQ Часть 2. Платформа Android для разработчика Часть 3. Мастер-класс «Разработка приложений для платформы Android»

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

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

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

Какие версии Android существуют? HTC DreamHTC Dream (T-Mobile G1) первый смартфон на основе Android Традиционно релизам Android дают имена по названиям различных десертов, причем в алфавитном порядке 23 сентября 2008 вышла версия ОС Android 1.0 на базе ядра Linux Bender – февраль, – Cupcake – апрель, – Donut – сентябрь, – Eclair – октябрь, – Froyo – май, – Gingerbread – декабрь, – Honeycomb – май, 2011 (tablet only) 4.0 – Ice Cream – октябрь, 2011

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

Под какой лицензией распространяется Android? Ядро – GPL v2 Пользовательская часть – Apache Software License v2

В чем ключевые особенности Android? Поддержка стандартов связи (connectivity) GSMGSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX.EDGEIDENCDMAEV-DOUMTSBluetooth Wi-FiLTENFCWiMAX Поддержка JavaJava-код компилируется в Dalvik-код и выполняется под управлением Dalvik Virtual Machine (специальная виртуальная машина, оптмизированная для мобильных устройств) Web-браузерОснован на WebKit Layout Engine и Chromes V8 JavaScript Engine. Графическая подсистемаПоддерживает 2D/3D графическую библиотеку, основанную на OpenGL ES 2.0 Хранилище данныхРеляционная СУБД SQLLite Multi-touchПоддерживается MultitaskingПоддерживается Voice-based searchПоддерживается BluetoothПоддерживается A2DP/AVRCP/OPP/PBAP

В чем ключевые особенности Android? Поддержка media-форматов WebMWebM, H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, FLAC, WAV, JPEG, PNG, GIF, BMP, WebP.H.263H.2643GPMP4container MPEG-4 SPAMRAMR-WBAAC HE-AACMP3MIDIOgg VorbisFLACWAVJPEGPNGGIFBMPWebP Потоковое аудио-видео RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 tag). Adobe Flash Streaming (RTMP) and HTTP Dynamic Streaming are supported by the Flash plugin. Apple HTTP Live Streaming is supported by RealPlayer for Android, and by the operating system in Android 3.0 (Honeycomb).3GPP PSSISMAHTML5 tagFlash pluginRealPlayer for Android Мультиязыковая поддержкаЕсть Внешние хранилища данных microSD cards отформатированные в FAT32, Ext3fs or Ext4fs file system FAT32 Ext3fsExt4fs

Из чего состоит платформа Android? Google Android основывается на ядре 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++

Из чего состоит Android? Ядро Linux занимается управлением памятью, процессами, безопасностью, а также включает драйверы устройств и сетевую подсистему. Кроме того, ядро системы обеспечивает взаимодействие остальной части программного стека с аппаратными ресурсами. Библиотеки, написанные на C/C++., обеспечивают поддержку основных форматов файлов, мультимедийных кодеков, алгоритмов шифрования (например SSL) и т.д. Очень важной библиотекой является «движок» встроенного браузера LibWebCore (WebKit). Среда исполнения Android Runtime, включающая нестандартную виртуальную Java-машину Dalvik и набор основных библиотек Core Libraries, написанных на Java. Application Framework дает приложениям возможность использовать функционал других приложений и компонентов системы. Здесь находятся менеджеры ресурсов (такие, как менеджер окон и менеджер оповещений), а также некоторые важные службы, например, контент-провайдеры (Content Providers), обеспечивающие обмен данными между приложениями. Самый верхний уровень программного стека пользовательские приложения. В основном программы для Android пишутся на Java, но недавно появилась возможность писать также на C/C++ с помощью Android Native Development Kit. Кроме того, в Google создали еще один язык программирования для разработки Android-приложений Simple. Он построен на BASIC и основан на модулях, позволяющих разрабатывать программы даже неспециалистам.

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

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

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

Достижения и проблемы платформы Android Google Play (ранее Android market) ~450 тыс. приложений ~10 млн. загрузок Устройства ~400 моделей ~300 млн. устр-в продано, из них ~12 млн. планшетных ~850 тыс. устройств активируются за день Фрагментация рынка ~96% устройств используют версию платформы 2.3 или ниже Проблемы с аппаратной совместимостью Безопасность Обратная стороны популярности и открытости платформы Недостаток централизованной поддержки

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

Инструментарий разработчика Mandatory: -Java2 SDK 1.5 или выше -Android Software Development Kit (текущая версия r17) Optional: -Eclipse 3.4 (Ganymede) или выше -Eclipse JDT plugin (включен в большинство стандартных поставок Eclipse) -Android Developer Tools plugin (ADT) – тек.версия Apache Ant 1.8 или выше -USB Driver for Windows

Android-разработка: источники информации Reto Meier. Android Application Development. Mark Murphy. The Busy Coder's Guide to Android Development James Steele. The Android Developer's Cookbook: Building Applications with the Android SDK

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

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

Activities - lifecycle

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

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

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

План семинара Часть 3. Мастер-класс «Разработка приложений для платформы Android» 1.Установка SDK и ADT 2.Создание эмулятора 3.Создание нового приложения 4.Структура каталогов Android-приложения 5.Приложение «Hello, Android» -Android Manifest -Ресурсы -Исходный код 6. Запуск и отладка приложения 7. Приложение Notepad 8. Приложение LocationMaps 9. Questions and Answers

Установка SDK и ADT Подробная инструкция по установке и конфигурации находится здесь:

Создание виртуального устройства Из каталога, где установлен Android SDK: cd tools android avd Из Eclipse, меню Window -> AVD Manager:

Создание виртуального устройства

Создание нового Android-приложения Из командной строки: Из каталога, где установлен Android SDK: cd \tools android create project --target --name --path path/to/your/project --activity --package

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

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

Ресурсы приложения strings.xml Hello World, HelloAndroid! HelloAndroid Update Time

Ресурсы приложения main.xml

Исходный код приложения 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; EditText timeText; public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); btn=(Button)findViewById(R.id.updateButton); timeText = (EditText)findViewById(R.id.timerText);

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

Манифест AndroidManifest.xml

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

Запуск на симуляторе

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

Отладка Android-приложений Отладка из Eclipse: - The Debug Perspective - The DDMS Perspective

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

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

Android-приложения работающие с картами и GPS Все устройства на платформе Android включают датчик GPS и встроенные средства работы с данными местоположения и картами. Устройства на платформе Android позволяют определять местоположение одним из 3-х способов: -датчик GPS -Cell-ID (триангуляция) -Wi-Fi spots Типовая задача: 1)Получить координаты с датчика GPS 2)Показать местоположение на карте