38
Основні поняття Android

Основні поняття Android. Роман Мазур

  • Upload
    stanfy

  • View
    2.124

  • Download
    3

Embed Size (px)

DESCRIPTION

Мастер- класс по Android разработке. Чернигов. Февраль

Citation preview

Page 1: Основні поняття Android. Роман Мазур

Основні поняття Android

Page 2: Основні поняття Android. Роман Мазур

Основні поняття Android

• На що схожий додаток для Android?

• З яких компонентів його можна побудувати?

• Як організувати роботу додатку?

Page 3: Основні поняття Android. Роман Мазур

Android Application

Це ви!

Page 4: Основні поняття Android. Роман Мазур

Android Application

• Програми взаємодіють між собою, формують одне середовище

• Відсутня одна точка входу

int main() {  printf(“Hello World”);}

Page 5: Основні поняття Android. Роман Мазур

Стандартна система з плагінами

Стандартна схема організації плагінівhttp://en.wikipedia.org/wiki/Plug-in_(computing)

Page 6: Основні поняття Android. Роман Мазур

Android (з плагінами)

(Application)

Page 7: Основні поняття Android. Роман Мазур

Android (з плагінами)

(Application)

4 типи компонентів

Page 8: Основні поняття Android. Роман Мазур

Компоненти

• Активності (Activities)

• Сервіси (Services)

• Контент-провайдери (Content Providers)

• Отримувачі широкомовних повідомлень (Broadcast Receivers)

Page 9: Основні поняття Android. Роман Мазур

Компоненти

• Активності (Activities)

• Сервіси (Services)

• Контент-провайдери (Content Providers)

• Отримувачі широкомовних повідомлень (Broadcast Receivers)

Page 10: Основні поняття Android. Роман Мазур

Активності та задачі

Page 11: Основні поняття Android. Роман Мазур

Активність

Page 12: Основні поняття Android. Роман Мазур

Додаток, задача, процес

Page 13: Основні поняття Android. Роман Мазур

Активність

Page 14: Основні поняття Android. Роман Мазур

GUI

Page 15: Основні поняття Android. Роман Мазур

Ресурси

• Графіка (drawable)

• Тексти (string)

• Стилі (style)

• Розмітка (layout)

• та ще дуже багато (dimen, color, string-array, …)

Page 16: Основні поняття Android. Роман Мазур

Конфігурація

• Густина пікселів екрану

• Орієнтація екрану

• Локаль

• Оператор

• Розмір екрану

• …

Page 17: Основні поняття Android. Роман Мазур

Життєвий цикл активності

• onCreate• onStart• onResume• onPause• onStop• onDestroy

• onSaveInstanceState• onRestoreInstanceState

• onRetainNonConfigurationInstance• getLastNotConfigurationInstance

Page 18: Основні поняття Android. Роман Мазур

Життєвий цикл активності

• Пам’ятаємо:o активність має стан, який змінюється під час

роботи користувача з неюo активність може бути знищена за ініціативи

системиo при цьому потрібно зберегти станo View вміють зберігати свій стан

• Найбанальніший приклад знищення активності: переворот екрану (зміна конфігурації).

Page 19: Основні поняття Android. Роман Мазур

Планшет

Page 20: Основні поняття Android. Роман Мазур

Фрагменти (телефон)

Page 21: Основні поняття Android. Роман Мазур

Фрагменти (планшет) 

Page 22: Основні поняття Android. Роман Мазур

Фрагменти

• Великий екран – великі зміни

• Основний будівельний блок вашого апа

• Ще цікавіший життєвий цикл

• Взаємодію між фрагментами слід здійснювати через активність

Page 23: Основні поняття Android. Роман Мазур

Фрагменти

Page 24: Основні поняття Android. Роман Мазур

Запуск активності

• Intento data URI, type дані, над якими працюємоo action дія, яку потрібно виконатиo extras додаткові параметри (ключ - значення)

• Набрати номер:data   = ‘tel:+38093XXXXXXX’action = Intent.ACTION_VIEW     або Intent.ACTION_CALL (вимагає окремого дозволу)

• Перейти до картиdata   = ‘geo:49.91667,36.31667?z=12’action = Intent.ACTION_VIEW

• Відправити листа, твіт, пост у фейсбук: Intent.ACTION_SEND + extras

Page 25: Основні поняття Android. Роман Мазур

Маніфест• Основна функція: описати власні компоненти та

вказати, як вони можуть активуватися ззовні

• Вказує вимоги вашого апа до апаратури та версії Android

• Перелічує дозволи, які користувач повинен буде надати апу

Page 26: Основні поняття Android. Роман Мазур

Підміняємо сайт на свій додаток<activity android:name=".activity.BrowserInterceptorActivity”>   <intent-filter>        <!– Фільтр для Intent.action -->        <action android:name="android.intent.action.VIEW" />    <!– Фільтр для Intent.category -->        <category android:name="android.intent.category.DEFAULT" />    <category android:name="android.intent.category.BROWSABLE" />        <!– Фільтр для Intent.data (URI) -->        <data       android:scheme="http"       android:host=”example.com"       android:pathPattern="/profile/.*"       />  </intent-filter> </activity>

Page 27: Основні поняття Android. Роман Мазур

Компоненти

• Активності (Activities)

• Сервіси (Services)

• Контент-провайдери (Content Providers)

• Отримувачі широкомовних повідомлень (Broadcast Receivers)

Page 28: Основні поняття Android. Роман Мазур

Сервіси

• Не пов’язані з UI напряму

• Фонові задачі: програвання музики, завантаження даних

• Як правило, взаємодію з API якогось сервера бажано реалізовувати через сервіс

• Простіший життєвий цикл (суб’єктивно!)

• Два типи: з підв’язкою, виконання команд

Page 29: Основні поняття Android. Роман Мазур

Сервіси

• Не пов’язані з UI напряму

• Фонові задачі: програвання музики, завантаження даних

• Як правило, взаємодію з API якогось сервера бажано реалізовувати через сервіс

• Простіший життєвий цикл (суб’єктивно!)

• Два типи: з підв’язкою, виконання команд

Page 30: Основні поняття Android. Роман Мазур

Сервіси

Page 31: Основні поняття Android. Роман Мазур

Сервіси

Команди - інтенти

Клієнт (відправка команди):context.startService(intent);

Сервіс (прийом команди):public int onStartCommand(Intent intent, ...)

Page 32: Основні поняття Android. Роман Мазур

Сервіси

Клієнт отримує  "зв'язківця" - Binder

Клієнт (підписка):context.bindService(intent, connection, flags);

onServiceConnected(ComponentName, IBinder) { ... }

Сервіс (віддача інтерфейсу):onBind(Intent) { ... }

Page 33: Основні поняття Android. Роман Мазур

Сервіси

• Локальний "зв'язківець"• Передача повідомлень

(Messanger)• AIDL (аналогії: Java RMI, SOAP)

Page 34: Основні поняття Android. Роман Мазур

Компоненти

• Активності (Activities)

• Сервіси (Services)

• Контент-провайдери (Content Providers)

• Отримувачі широкомовних повідомлень (Broadcast Receivers)

Page 35: Основні поняття Android. Роман Мазур

Контент-провайдери

• Надають доступ до вашого набору данихcontent://my.content.authority/place/345authority, визначається в маніфесті

• Інші компоненти працюють з ними через ContentResolver

• Приклад стандартного провайдера: контакти

Page 36: Основні поняття Android. Роман Мазур

Компоненти

• Активності (Activities)

• Сервіси (Services)

• Контент-провайдери (Content Providers)

• Отримувачі широкомовних повідомлень (Broadcast Receivers)

Page 37: Основні поняття Android. Роман Мазур

Broadcast Receiver

• Зміна часового поясу

• Завантаження системи

• Вимкнення телефону

• Для того, щоб зробити розумні сервіси:o Зміна стану заряду батареїo Підключення «зарядки»

Page 38: Основні поняття Android. Роман Мазур

Ваша черга

Роман Мазур

Керівник Android/Java відділу Stanfy [email protected] Skype: roman.mazur.f