2. ๏ Новая модель предоставления
разрешений
๏ Автоматическое резервное
копирование
๏ App Links
๏ Знакомство с новой технологией
๏ Практическое применение
полученных навыков
Android M: Developer Preview
Цели и задачи
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
3. ๏ Ограниченные разрешения
PROTECTION_NORMAL — при установке
PROTECTION_SIGNATURE — по запросу
๏ Запрос разрешений в режиме
Runtime
๏ Отзыв разрешений
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
Предоставление разрешений
5. ๏ Ранняя OS/приложение — старая
модель предоставления
๏ М+: все разрешения по новой
модели
Совместимость
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
6. if (checkSelfPermission(Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.READ_CONTACTS},
PERMISSION_REQUEST_CONTACTS);
}
Запрос на получение разрешения
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
@Override
public void onRequestPermissionsResult(int requestCode,
String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case PERMISSION_REQUEST_CONTACTS: {
if (grantResults[0] ==
PackageManager.PERMISSION_GRANTED) {
}
}
Результат
7. ๏ Данные приложения сохраняются на Google Drive
каждые 24 часа
๏ Каждое приложение может хранить до 25 Мб данных
๏ Шифрование данных
๏ Бесплатное хранилище вне личного пространства
๏ Пользователь сам принимает решение об
использовании данного функционала приложением
๏ Разработчик определяет какие данные должны
подлежать резервному копированию
Автоматическое резервное копирование
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
8. ๏ Файлы в каталогах, на которые ссылаются
методы getCacheDir() и getCodeCacheDir()
๏ Файлы во внешнем хранилище, кроме
файлов, находящихся в каталогах, на
которые ссылается метод getExternalFilesDir()
๏ файлы в каталоге, на который ссылается
метод getNoBackupFilesDir()
Что не входит в схему по умолчанию
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
Включение схемы
<application
android:allowBackup="true"
android:fullBackupContent="@xml/app_backup"
9. File: getFilesDir()
External: getExternalFilesDir()
Root: app root folder
Database: getDataBasePath()
Путь к данным
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
Настройка параметров
<?xml version="1.0" encoding="utf-8"?>
<full-backup-content xmlns:android="http://schemas.android.com/apk/res/android">
<exclude domain="sharedpref" path="user_token"/>
<exclude domain="database" path="api_keys.db"/>
<exclude domain="file" path="news.zip"/>
<exclude domain="external" path="photos.zip"/>
<exclude domain="root" path="cinemas.zip"/>
</full-backup-content>
10. Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
App Links
11. ๏ Связь приложений с Web сайтом
๏ Открытие html ссылки приложением в
автоматическом режиме, без запроса у пользователя
App Links
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
14. Как это работает
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
Package
Manager
Intent Filter
Verifier
cache
http://cloudchat
.com/
.well-known/
statements.json
Device Web Server
15. Ждем релиз
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
๏ Повышение безопасности приложений
๏ Удобство синхронизации данных и использования
приложений
๏ Простота реализации нового Api
๏ Ускорение процесса разработки программного
продукта
๏ Гибкость использования заявляемого функционала