SlideShare a Scribd company logo
ОС Android и специфика
мобильной разработки




    Киреев Артем, Codemasters International
                   akireev@codemastersintl.com
                       www.codemastersintl.com
План

• Что такое Android?
• Основные компоненты приложения и
 их взаимодействие
• Опыт разработки приложения
 TulaDev: веб-сервисы, GCM (C2DM).
OS Android
• ОС для смартфонов и встраиваемых
  систем
• Разработка началась в 2003
• Первый проданный телефон HTC Dream
  2008
• Open Source
• ARM, MIPS, x86
OS Android
Что нужно чтобы начать
    разрабатывать под Android?
• Любая ОС (Windows, Linux, OS/X)
• JDK (Java Development Kit)
• Android SDK:
 • Emulator
 • ADB (Android Debug Bridge)
• Eclipse with Android ADT plugin (or
  Jetbrains IDEA, ...)
Версии Android
Размеры экранов
Размер         Плотность




         Самый популярный размер:
           470dip x 320 dip =
              WVGA800
              (480x800)
Как работать с
множеством
экранов?
ldpi: 1 dip = 0,75px
mdpi: 1 dip = 1px
hdpi: 1 dip = 2px
       1 dip = 1,5px
xhdpi:


px - пиксели
in, mm, pt - дюймы, миллиметры, точки (1/72
дюйма)
dip - Абстрактные пиксели, зависящие от
плотности экрана
sp - Похожи на dip, но в данном случае
учитывается размер шрифта, который установил
пользователь.
Из чего состоит
 приложение?
    Manifest
    -имя JAVA пакета
    -разрешения для
    приложения
    - Activity, Services..
    -Связанные библиотеки
    -Минимальный уровень API
    Классы (src)

    Ресурсы (res)
Верстка 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)
Изолированность
  приложения Android
                   Sandbox
• Каждое приложение имеет свой Linux
  user Id
• Для каждого приложения запускается
  своя Dalvik VM
• Любой компонент приложения, будет
  запускаться в своем Linux процессе
Рабочие лошадки
               приложения
    Activity                                       Service




•   малосвязанные                         •   работают в фоне (backgroud)

•   не подходят для длительных операций   •   подходят для длительных операций
Activity   Service
Взаимодействие
    Intent
Component name
Action
Data
Category
Extras
Flags




•                     * можем создать свой Action
    Explicit intent: startActivity, startService,
    passData
•   Implicit intent: internet on/off, screen off, battery
Intent filters
Служат для фильтрации implicit intents
Explicit and Implicit
                  examples                                         broadcast intent (implicit):
                    DownloadImageService                           component: null
                                                                   action: com.mycorporation.myapp.complete




BroadcastReceiver                                                            BroadcastReceiver
                          intent (explicit):
MainListActivity          component:DownloadImageService                     DetailActivity
                          action: com.mycorporation.myapp,download
                          data: http://clipart.com/awesome.jpg




                     intent (explicit): component:DetailActivity
Разработка приложения
        TulaDev для Android
Use cases:
•   Видеть информацию о следующей встрече
•   Видеть архив прошедших встреч
•   Получать новости и анонсы
•   Голосовать за будущие темы
•   Отмечаться на встрече (розыгрыш призов)
•   Смотреть слайды оффлайн
https://play.google.com/store/apps/details?id=com.cod
                    emasters.tuladev
Разработка приложения
  TulaDev для Android
Вопрос 1. Откуда брать данные для
          отображения?
Откуда брать данные.
        Схема 1. Activity шлет запрос


ListActivity




                                 REST API
Откуда брать данные.
         Схема 2. Activity шлет запрос и
              сохраняет в базе

                                 REST API


ListActivity




                        SQLite
Откуда брать данные.
                 Схема 3 Используем сервис
                           REST API
                                3 http GET /events

BroadcastReceiver
                                  DownloadService

  ListActivity


                                   4 storeEventsInDb()


                              SQLite
Разработка приложения
  TulaDev для Android
 Вопрос 2. Как часто обновлять
              данные?
При каждом запуске приложения


При смене табов


По расписанию

По требованию пользователя

Когда данные обновятся на сервере
Разработка приложения
    TulaDev для Android
        По требованию пользователя




       Когда данные обновятся на сервере


Http pooling   web sockets
Google Cloud Messaging



GCM анонсирован 26 июня 2012 года, пришел на
замену C2DM
Увеличивает время жизни батареи (все приложения
используют один общий канал)
Сервер обрабатывает запрос на рассылку за 4.7
миллисекунды его обновления данных и для поста
Мы используем
новостей
Как работает GCM
         Обновление данных
                     Content-
                     Type:application/jsonAuthorizatio
                     n:key=AIzaSyB-1uEai2...{
                     “registration_ids” :
                     [“APA91bHun4MxP5eg..., ...]
                       “collapse_key”: “data_update”
                     “data” : { “Action” : “updateData”}}




Server
Как работает GCM
    Уведомления (новости)
                   Content-
                   Type:application/jsonAuthorizatio
                   n:key=AIzaSyB-1uEai2...{
                   “registration_ids” :
                   [“APA91bHun4MxP5eg..., ...]
                     “data” :
                   { “Action” : “updateData”,
                   “Data”: “Не проспите завтра
                   наш доклад об Android ”}}




Server
Как работает GCM
Features. Reliability
Как работает GCM
   Features. Time To Live


Сообщениям можно задать время жизни от 0
секунд до 4 недель


Сообщения с TTL = 0, не хранятся в GCM


По умолчанию TTL = 4 недели
Как работает GCM
         Features. Message
             Multicasting

Запрос


                        до1000


            Ответ
Как работает GCM
    Features. Collapse Key
Запросы




                       только 1 сообщение
Как работает GCM
        Features. Throttling




Нотификация об изменении
    данных на сервере
                           DoS

                           Server
Google Play
Регистрация в качестве разработчика = 25$

Время от подачи заявки до появления в Google Play ~
4h



        No Problem with Google Play
Итоги
• Android - OpenSource операционная
  система с Dalvik VM
• Приложение: Манифест + ресурсы +
  Activity + Service
• GCM (Google Cloud Messaging) -
  канал доставки данных.
• Google Play - 25$ and no problem
Спасибо за
 внимание

Вопросы?

More Related Content

PDF
Лекция 1. Введение в Android.
Александр Брич
 
PDF
JEE Conf: Архитектура Android приложений: полезные и вредные советы
dmalykhanov
 
PPTX
Приступаем к разработке Android приложений
metaform
 
PDF
Публикация Android-приложений
Roman Brovko
 
PDF
Plugin development for intelli j platform
chashnikov
 
PPT
Свой проект на drupal.org от идеи до первого релиза.
PVasili
 
PPT
Свой проект на Drupal.org от идеи до первого релиза
Konstantin Komelin
 
PPTX
Git for you
Pavel Alexeev
 
Лекция 1. Введение в Android.
Александр Брич
 
JEE Conf: Архитектура Android приложений: полезные и вредные советы
dmalykhanov
 
Приступаем к разработке Android приложений
metaform
 
Публикация Android-приложений
Roman Brovko
 
Plugin development for intelli j platform
chashnikov
 
Свой проект на drupal.org от идеи до первого релиза.
PVasili
 
Свой проект на Drupal.org от идеи до первого релиза
Konstantin Komelin
 
Git for you
Pavel Alexeev
 

What's hot (12)

PDF
Среда разработки Eclipse by Cheburek
Ya_Cheburek
 
PPT
Komelin drupalconf report_komelin_v2
drupalconf
 
PPTX
Gradle. Новый уровень автоматизации для Android
SQALab
 
PPTX
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...
ScrumTrek
 
PPT
Инструменты разработки ПО в *nix
Alexander Gerasiov
 
PPT
Lecture 11 1
Anastasia Snegina
 
PPT
Lecture 11 1
Anastasia Snegina
 
PPTX
Net framework
poverhnost
 
PDF
Модульное тестирование и TDD в .NET
Alexander Byndyu
 
PDF
DevOps guide for awesome quality assurance
Анастасия Асеева
 
PDF
Эволюция управления зависимостями в коде
Alexander Byndyu
 
PDF
Android - 05 - Android basics
Noveo
 
Среда разработки Eclipse by Cheburek
Ya_Cheburek
 
Komelin drupalconf report_komelin_v2
drupalconf
 
Gradle. Новый уровень автоматизации для Android
SQALab
 
Антон Григорьев, Git-flow: как построить процесс разработки и быстро получать...
ScrumTrek
 
Инструменты разработки ПО в *nix
Alexander Gerasiov
 
Lecture 11 1
Anastasia Snegina
 
Lecture 11 1
Anastasia Snegina
 
Net framework
poverhnost
 
Модульное тестирование и TDD в .NET
Alexander Byndyu
 
DevOps guide for awesome quality assurance
Анастасия Асеева
 
Эволюция управления зависимостями в коде
Alexander Byndyu
 
Android - 05 - Android basics
Noveo
 
Ad

Viewers also liked (20)

PDF
Лекция 2. Activity.
Александр Брич
 
PDF
Лекция Android. Хранение данных
Александр Брич
 
PDF
Fragments, ActionBar, Drawer
Александр Брич
 
PDF
{HSE Inc} Разработка под Android
Pavel Krivoruchko
 
PDF
Разработка приложений для android
InfoShell
 
PPT
Андроид для чайников
Arseniy Finbeкg
 
PPTX
Создание графического интерфейса пользователя мобильных Android приложений (ч...
metaform
 
PPTX
Основы "мобильной" разработки на примере платформы iOs (iPhone)
Pavel Tsukanov
 
PPTX
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
Pavel Tsukanov
 
PPTX
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
Pavel Tsukanov
 
PPTX
Thinking in parallel ab tuladev
Pavel Tsukanov
 
PPTX
Sql azure federations
Pavel Tsukanov
 
PPTX
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
Pavel Tsukanov
 
PPTX
Введение в Knockout
Pavel Tsukanov
 
PPTX
RESPONSIVE WEB DESIGN
Pavel Tsukanov
 
PPTX
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Pavel Tsukanov
 
PPTX
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
Pavel Tsukanov
 
PPTX
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
Pavel Tsukanov
 
PPT
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
Pavel Tsukanov
 
PPTX
Unit tests
Pavel Tsukanov
 
Лекция 2. Activity.
Александр Брич
 
Лекция Android. Хранение данных
Александр Брич
 
Fragments, ActionBar, Drawer
Александр Брич
 
{HSE Inc} Разработка под Android
Pavel Krivoruchko
 
Разработка приложений для android
InfoShell
 
Андроид для чайников
Arseniy Finbeкg
 
Создание графического интерфейса пользователя мобильных Android приложений (ч...
metaform
 
Основы "мобильной" разработки на примере платформы iOs (iPhone)
Pavel Tsukanov
 
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
Pavel Tsukanov
 
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
Pavel Tsukanov
 
Thinking in parallel ab tuladev
Pavel Tsukanov
 
Sql azure federations
Pavel Tsukanov
 
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
Pavel Tsukanov
 
Введение в Knockout
Pavel Tsukanov
 
RESPONSIVE WEB DESIGN
Pavel Tsukanov
 
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Pavel Tsukanov
 
РАЗРАБОТКА МОБИЛЬНЫХ САЙТОВ
Pavel Tsukanov
 
СИ++ УМЕР. ДА ЗДРАВСТВУЕТ СИ++
Pavel Tsukanov
 
РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.
Pavel Tsukanov
 
Unit tests
Pavel Tsukanov
 
Ad

Similar to Лекция Android (20)

PDF
Android Development Course in HSE lecture #1
Empatika
 
PPT
Hivext – облачная платформа для быстрой разработки интернет приложений
guest800050
 
PPT
Hivext 04.2010
Ruslan Synytsky
 
PPTX
Bada
annakysil
 
PDF
Android: Как создать свое первое приложение?
Kuban Dzhakipov
 
PDF
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
Yandex
 
PPTX
Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016
РИФ-Воронеж
 
PPT
Лекция 4
itc73
 
PPTX
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
solit
 
PPTX
Андрей Завадский "Бессерверная архитектура"
Fwdays
 
PDF
Экскурс в мир WEB разработки
IT-Доминанта
 
PPTX
белогорцев глеб белогорцев
rit2010
 
PPTX
Антон Валюх - Использование паттерна Mvvm в android
DataArt
 
PPT
Сервлеты
Unguryan Vitaliy
 
PDF
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Cisco Russia
 
ODP
Presentation JavaME
scassau
 
PDF
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
DataArt
 
PDF
C# Web. Занятие 11.
Igor Shkulipa
 
PPT
Вебинар "Оптимизация производительности мобильных веб-приложений"
MobiDev
 
PPTX
доклад на вмк 15.10.2015
Alexandr Petrov
 
Android Development Course in HSE lecture #1
Empatika
 
Hivext – облачная платформа для быстрой разработки интернет приложений
guest800050
 
Hivext 04.2010
Ruslan Synytsky
 
Bada
annakysil
 
Android: Как создать свое первое приложение?
Kuban Dzhakipov
 
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
Yandex
 
Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016
РИФ-Воронеж
 
Лекция 4
itc73
 
Solit 2014, Appium. Тестируем гибридные мобильные прирложения в стиле webdriv...
solit
 
Андрей Завадский "Бессерверная архитектура"
Fwdays
 
Экскурс в мир WEB разработки
IT-Доминанта
 
белогорцев глеб белогорцев
rit2010
 
Антон Валюх - Использование паттерна Mvvm в android
DataArt
 
Сервлеты
Unguryan Vitaliy
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Cisco Russia
 
Presentation JavaME
scassau
 
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
DataArt
 
C# Web. Занятие 11.
Igor Shkulipa
 
Вебинар "Оптимизация производительности мобильных веб-приложений"
MobiDev
 
доклад на вмк 15.10.2015
Alexandr Petrov
 

More from Pavel Tsukanov (17)

PPTX
Автоматизированное тестирование UI на C# + Selenium WebDriver
Pavel Tsukanov
 
PPTX
Domain Driven Design
Pavel Tsukanov
 
PPTX
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
Pavel Tsukanov
 
PPTX
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
Pavel Tsukanov
 
PPTX
СОЗДАЙ РОБОТА С НУЛЯ
Pavel Tsukanov
 
PPT
ВВЕДЕНИЕ В NODE.JS
Pavel Tsukanov
 
PPTX
АНИМАЦИЯ В FLASH И HTML5
Pavel Tsukanov
 
PPT
ХАКЕРЫ И АНТИХАКЕРЫ
Pavel Tsukanov
 
PPTX
ЗАРАБОТОК В ИНТЕРНЕТЕ.
Pavel Tsukanov
 
PPTX
Ruby - или зачем мне еще один язык программирования?
Pavel Tsukanov
 
PPTX
Реализация REST и SOAP сервисов с помощью WCF
Pavel Tsukanov
 
PPT
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Pavel Tsukanov
 
PPTX
Как писать красивый код или основы SOLID
Pavel Tsukanov
 
PPTX
Статический анализ кода
Pavel Tsukanov
 
PPTX
PaaS и SaaS
Pavel Tsukanov
 
PPTX
TDD (Test-driven Development) как стиль разработки.
Pavel Tsukanov
 
PPTX
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Pavel Tsukanov
 
Автоматизированное тестирование UI на C# + Selenium WebDriver
Pavel Tsukanov
 
Domain Driven Design
Pavel Tsukanov
 
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
Pavel Tsukanov
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
Pavel Tsukanov
 
СОЗДАЙ РОБОТА С НУЛЯ
Pavel Tsukanov
 
ВВЕДЕНИЕ В NODE.JS
Pavel Tsukanov
 
АНИМАЦИЯ В FLASH И HTML5
Pavel Tsukanov
 
ХАКЕРЫ И АНТИХАКЕРЫ
Pavel Tsukanov
 
ЗАРАБОТОК В ИНТЕРНЕТЕ.
Pavel Tsukanov
 
Ruby - или зачем мне еще один язык программирования?
Pavel Tsukanov
 
Реализация REST и SOAP сервисов с помощью WCF
Pavel Tsukanov
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Pavel Tsukanov
 
Как писать красивый код или основы SOLID
Pavel Tsukanov
 
Статический анализ кода
Pavel Tsukanov
 
PaaS и SaaS
Pavel Tsukanov
 
TDD (Test-driven Development) как стиль разработки.
Pavel Tsukanov
 
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Pavel Tsukanov
 

Лекция Android

  • 1. ОС Android и специфика мобильной разработки Киреев Артем, Codemasters International [email protected] www.codemastersintl.com
  • 2. План • Что такое Android? • Основные компоненты приложения и их взаимодействие • Опыт разработки приложения TulaDev: веб-сервисы, GCM (C2DM).
  • 3. OS Android • ОС для смартфонов и встраиваемых систем • Разработка началась в 2003 • Первый проданный телефон HTC Dream 2008 • Open Source • ARM, MIPS, x86
  • 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, ...)
  • 7. Размеры экранов Размер Плотность Самый популярный размер: 470dip x 320 dip = WVGA800 (480x800)
  • 8. Как работать с множеством экранов? ldpi: 1 dip = 0,75px mdpi: 1 dip = 1px hdpi: 1 dip = 2px 1 dip = 1,5px xhdpi: px - пиксели in, mm, pt - дюймы, миллиметры, точки (1/72 дюйма) dip - Абстрактные пиксели, зависящие от плотности экрана sp - Похожи на dip, но в данном случае учитывается размер шрифта, который установил пользователь.
  • 9. Из чего состоит приложение? Manifest -имя JAVA пакета -разрешения для приложения - Activity, Services.. -Связанные библиотеки -Минимальный уровень API Классы (src) Ресурсы (res)
  • 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. Изолированность приложения Android Sandbox • Каждое приложение имеет свой Linux user Id • Для каждого приложения запускается своя Dalvik VM • Любой компонент приложения, будет запускаться в своем Linux процессе
  • 12. Рабочие лошадки приложения Activity Service • малосвязанные • работают в фоне (backgroud) • не подходят для длительных операций • подходят для длительных операций
  • 13. Activity Service
  • 14. Взаимодействие Intent Component name Action Data Category Extras Flags • * можем создать свой Action Explicit intent: startActivity, startService, passData • Implicit intent: internet on/off, screen off, battery
  • 15. Intent filters Служат для фильтрации implicit intents
  • 16. Explicit and Implicit examples broadcast intent (implicit): DownloadImageService component: null action: com.mycorporation.myapp.complete BroadcastReceiver BroadcastReceiver intent (explicit): MainListActivity component:DownloadImageService DetailActivity action: com.mycorporation.myapp,download data: http://clipart.com/awesome.jpg intent (explicit): component:DetailActivity
  • 17. Разработка приложения TulaDev для Android Use cases: • Видеть информацию о следующей встрече • Видеть архив прошедших встреч • Получать новости и анонсы • Голосовать за будущие темы • Отмечаться на встрече (розыгрыш призов) • Смотреть слайды оффлайн
  • 19. Разработка приложения TulaDev для Android Вопрос 1. Откуда брать данные для отображения?
  • 20. Откуда брать данные. Схема 1. Activity шлет запрос ListActivity REST API
  • 21. Откуда брать данные. Схема 2. Activity шлет запрос и сохраняет в базе REST API ListActivity SQLite
  • 22. Откуда брать данные. Схема 3 Используем сервис REST API 3 http GET /events BroadcastReceiver DownloadService ListActivity 4 storeEventsInDb() SQLite
  • 23. Разработка приложения TulaDev для Android Вопрос 2. Как часто обновлять данные? При каждом запуске приложения При смене табов По расписанию По требованию пользователя Когда данные обновятся на сервере
  • 24. Разработка приложения TulaDev для Android По требованию пользователя Когда данные обновятся на сервере Http pooling web sockets
  • 25. Google Cloud Messaging GCM анонсирован 26 июня 2012 года, пришел на замену C2DM Увеличивает время жизни батареи (все приложения используют один общий канал) Сервер обрабатывает запрос на рассылку за 4.7 миллисекунды его обновления данных и для поста Мы используем новостей
  • 26. Как работает GCM Обновление данных Content- Type:application/jsonAuthorizatio n:key=AIzaSyB-1uEai2...{ “registration_ids” : [“APA91bHun4MxP5eg..., ...] “collapse_key”: “data_update” “data” : { “Action” : “updateData”}} Server
  • 27. Как работает GCM Уведомления (новости) Content- Type:application/jsonAuthorizatio n:key=AIzaSyB-1uEai2...{ “registration_ids” : [“APA91bHun4MxP5eg..., ...] “data” : { “Action” : “updateData”, “Data”: “Не проспите завтра наш доклад об Android ”}} Server
  • 29. Как работает GCM Features. Time To Live Сообщениям можно задать время жизни от 0 секунд до 4 недель Сообщения с TTL = 0, не хранятся в GCM По умолчанию TTL = 4 недели
  • 30. Как работает GCM Features. Message Multicasting Запрос до1000 Ответ
  • 31. Как работает GCM Features. Collapse Key Запросы только 1 сообщение
  • 32. Как работает GCM Features. Throttling Нотификация об изменении данных на сервере DoS Server
  • 33. Google Play Регистрация в качестве разработчика = 25$ Время от подачи заявки до появления в Google Play ~ 4h No Problem with Google Play
  • 34. Итоги • Android - OpenSource операционная система с Dalvik VM • Приложение: Манифест + ресурсы + Activity + Service • GCM (Google Cloud Messaging) - канал доставки данных. • Google Play - 25$ and no problem