3. Auto Backup
Лимит в 25 Mb на одно приложение в
шифрованной части Drive
(не затрагивает пользовательскую квоту)
Бэкап осуществляется каждые 24 часа, при
зарядке, когда устройством не пользуются, и
оно подключено к Wi-Fi
6. Apache Client Deprecation
Если осталась необходимость использовать HttpClient:
android {
useLibrary 'org.apache.http.legacy'
}
7. Other Deprecations
libcrypto.so и libssl.so из OpenSSL
заменены на BoringSSL
notification.setLatestEventInfo() удален
Вместо него: Notification.Builder
9. Five more changes
Android Keystore Changes (упразднениe DSA)
Wi-Fi and Networking Changes (управление соединениями,
мультисоединение всегда)
Camera Service Changes (приоритеты, несколько
приложений для нескольких камер)
Runtime(багфиксы в ART)
Access to Hardware Identifier (нет доступа к макадресам из
сети, новые права доступа)
12. Doze mode
● Доступ приложению к сети отключен, пока приложение не
получит high-priority GCM-push.
● Система игнорирует Wake lock’и.
● Alarm’ы запланированные в AlarmManager не будут
вызываться, кроме тех, которые будут обновлены с
помощью setAndAllowWhileIdle().
● Система не производит поиска сетей Wi-Fi.
13. Doze mode
● NetworkPolicyManagerService Пропускает только приложения из
белого списка.
● JobSchedulerService Все текущие задачи отменяются. Новые
откладываются до пробуждения.
● SyncManager Все текущие отменяются, новые откладываются до
пробуждения.
● PowerManagerService Только задачи приложений из белого
списка вызовутся.
15. Doze mode: step by step
DeviceIdleController:
ACTIVE - Устройство используется или на зарядке
INACTIVE - Устройство недавно вышло из активного режима
(пользователь выключил экран, выдернул зарядку и т.п.)
...30 минут
IDLE_PENDING - Устройство готовится перейти в режим ожидания
...30 минут
IDLE - Устройство в режиме бездействия
IDLE_MAINTENANCE - Открыто короткое окно, чтобы приложения
выполнили свою работу
16. Doze mode: exclusions
setAndAllowWhileIdle()- у обработчика
есть 10 секунд, затем уходит в Idle
Остальные алармы - в бездействии, пока
активен Doze Mode
GCM:
Пуш уведомление с высочайшим
приоритетом дает получившему его
приложению недолгий доступ к сети.
Whitelist: Alarm Manager:
17. Standby mode
1. Пользователь явно запустил приложение.
2. Приложение имеет процесс, работающий в
данный момент на переднем плане (Activity
или foreground service, или используется
другой activity или foreground service’ом).
3. Приложение создало уведомление, которое
висит в списке уведомлений.
4. Пользователь принудительно добавил
приложение в список исключений
оптимизации в настройках системы.
21. Permissions
SDK < 23
1. Описать все разрешения в manifest
2. Пользователь разрешит сразу все
при установке
3. Пользователь может запретить
любое из разрешений после
установки
SDK >= 23
1. Описать только
PROTECTION_NORMAL запросы в
manifest
2. Пользователь их все подтвердит
при установке
3. Когда приложению нужен доступ к
одному или нескольким
разрешениям из группы опасных,
проверить, нет ли разрешения
4. Если разрешения нет - запросить
5. Если разрешения не будет -
объяснить, на что это повлияет
6. Если разрешение получено -
продолжить работу
23. Permissions
Хорошие практики:
• Запрашивать лишь те разрешения, которые
действительно нужны
• Если есть возможность, вместо запроса
воспользоваться внешним Intent
• Запрашивать разрешение, только перед тем, когда оно
понадобится
• Пояснять пользователю, для чего запрашивается
разрешение
24. Get M Preview
Все что нужно:
1. Включить OEM Unlock
2. Разблокировать Bootloader
3. Запустить скачанный скрипт с fastboot из SDK
Прошивки доступны для
Nexus 5,6,9 и Nexus Player