Лекция Android

1,271 views
1,116 views

Published on

Мы рассмотрим область применения, архитектуру и основные особенности такой известной операционной системы как Android. Также расскажем о процессе создания мобильного приложения TulaDev, о проблемах с которыми мы столкнулись и о способах их решения. Вы можете найти приложение для Android <a>на Google Play</a>

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,271
On SlideShare
0
From Embeds
0
Number of Embeds
130
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Лекция Android

  1. 1. ОС Android и спецификамобильной разработки Киреев Артем, Codemasters International akireev@codemastersintl.com www.codemastersintl.com
  2. 2. План• Что такое Android?• Основные компоненты приложения и их взаимодействие• Опыт разработки приложения TulaDev: веб-сервисы, GCM (C2DM).
  3. 3. OS Android• ОС для смартфонов и встраиваемых систем• Разработка началась в 2003• Первый проданный телефон HTC Dream 2008• Open Source• ARM, MIPS, x86
  4. 4. OS Android
  5. 5. Что нужно чтобы начать разрабатывать под Android?• Любая ОС (Windows, Linux, OS/X)• JDK (Java Development Kit)• Android SDK: • Emulator • ADB (Android Debug Bridge)• Eclipse with Android ADT plugin (or Jetbrains IDEA, ...)
  6. 6. Версии Android
  7. 7. Размеры экрановРазмер Плотность Самый популярный размер: 470dip x 320 dip = WVGA800 (480x800)
  8. 8. Как работать смножествомэкранов?ldpi: 1 dip = 0,75pxmdpi: 1 dip = 1pxhdpi: 1 dip = 2px 1 dip = 1,5pxxhdpi:px - пикселиin, mm, pt - дюймы, миллиметры, точки (1/72дюйма)dip - Абстрактные пиксели, зависящие отплотности экранаsp - Похожи на dip, но в данном случаеучитывается размер шрифта, который установилпользователь.
  9. 9. Из чего состоит приложение? Manifest -имя JAVA пакета -разрешения для приложения - Activity, Services.. -Связанные библиотеки -Минимальный уровень API Классы (src) Ресурсы (res)
  10. 10. Верстка UI <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a Button" /> </LinearLayout> Linear Layout Relative Layout Позволяет определить Элементы внутри расположениерасположены в ряд элементов относительно или в столбец друг друга (Элемент A находится слева от B)
  11. 11. Изолированность приложения Android Sandbox• Каждое приложение имеет свой Linux user Id• Для каждого приложения запускается своя Dalvik VM• Любой компонент приложения, будет запускаться в своем Linux процессе
  12. 12. Рабочие лошадки приложения Activity Service• малосвязанные • работают в фоне (backgroud)• не подходят для длительных операций • подходят для длительных операций
  13. 13. Activity Service
  14. 14. Взаимодействие IntentComponent nameActionDataCategoryExtrasFlags• * можем создать свой Action Explicit intent: startActivity, startService, passData• Implicit intent: internet on/off, screen off, battery
  15. 15. Intent filtersСлужат для фильтрации implicit intents
  16. 16. Explicit and Implicit examples broadcast intent (implicit): DownloadImageService component: null action: com.mycorporation.myapp.completeBroadcastReceiver BroadcastReceiver intent (explicit):MainListActivity component:DownloadImageService DetailActivity action: com.mycorporation.myapp,download data: http://clipart.com/awesome.jpg intent (explicit): component:DetailActivity
  17. 17. Разработка приложения TulaDev для AndroidUse cases:• Видеть информацию о следующей встрече• Видеть архив прошедших встреч• Получать новости и анонсы• Голосовать за будущие темы• Отмечаться на встрече (розыгрыш призов)• Смотреть слайды оффлайн
  18. 18. https://play.google.com/store/apps/details?id=com.cod emasters.tuladev
  19. 19. Разработка приложения TulaDev для AndroidВопрос 1. Откуда брать данные для отображения?
  20. 20. Откуда брать данные. Схема 1. Activity шлет запросListActivity REST API
  21. 21. Откуда брать данные. Схема 2. Activity шлет запрос и сохраняет в базе REST APIListActivity SQLite
  22. 22. Откуда брать данные. Схема 3 Используем сервис REST API 3 http GET /eventsBroadcastReceiver DownloadService ListActivity 4 storeEventsInDb() SQLite
  23. 23. Разработка приложения TulaDev для Android Вопрос 2. Как часто обновлять данные?При каждом запуске приложенияПри смене табовПо расписаниюПо требованию пользователяКогда данные обновятся на сервере
  24. 24. Разработка приложения TulaDev для Android По требованию пользователя Когда данные обновятся на сервереHttp pooling web sockets
  25. 25. Google Cloud MessagingGCM анонсирован 26 июня 2012 года, пришел назамену C2DMУвеличивает время жизни батареи (все приложенияиспользуют один общий канал)Сервер обрабатывает запрос на рассылку за 4.7миллисекунды его обновления данных и для постаМы используемновостей
  26. 26. Как работает GCM Обновление данных Content- Type:application/jsonAuthorizatio n:key=AIzaSyB-1uEai2...{ “registration_ids” : [“APA91bHun4MxP5eg..., ...] “collapse_key”: “data_update” “data” : { “Action” : “updateData”}}Server
  27. 27. Как работает GCM Уведомления (новости) Content- Type:application/jsonAuthorizatio n:key=AIzaSyB-1uEai2...{ “registration_ids” : [“APA91bHun4MxP5eg..., ...] “data” : { “Action” : “updateData”, “Data”: “Не проспите завтра наш доклад об Android ”}}Server
  28. 28. Как работает GCMFeatures. Reliability
  29. 29. Как работает GCM Features. Time To LiveСообщениям можно задать время жизни от 0секунд до 4 недельСообщения с TTL = 0, не хранятся в GCMПо умолчанию TTL = 4 недели
  30. 30. Как работает GCM Features. Message MulticastingЗапрос до1000 Ответ
  31. 31. Как работает GCM Features. Collapse KeyЗапросы только 1 сообщение
  32. 32. Как работает GCM Features. ThrottlingНотификация об изменении данных на сервере DoS Server
  33. 33. Google PlayРегистрация в качестве разработчика = 25$Время от подачи заявки до появления в Google Play ~4h No Problem with Google Play
  34. 34. Итоги• Android - OpenSource операционная система с Dalvik VM• Приложение: Манифест + ресурсы + Activity + Service• GCM (Google Cloud Messaging) - канал доставки данных.• Google Play - 25$ and no problem
  35. 35. Спасибо за вниманиеВопросы?

×