View
399
Download
0
Category
Preview:
Citation preview
Android M: Developer preview
Вадим Щенев Rambler&Co
Опыт личного знакомства
๏ Новая модель предоставления разрешений
๏ Автоматическое резервное копирование
๏ App Links
๏ Знакомство с новой технологией๏ Практическое применение полученных навыков
Android M: Developer Preview
Цели и задачи
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
๏ Ограниченные разрешенияPROTECTION_NORMAL — при установкеPROTECTION_SIGNATURE — по запросу
๏ Запрос разрешений в режиме Runtime
๏ Отзыв разрешений
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
Предоставление разрешений
android.permission-group.CALENDARandroid.permission-group.CAMERAandroid.permission-group.CONTACTSandroid.permission-group.LOCATIONandroid.permission-group.MICROPHONEandroid.permission-group.PHONEandroid.permission-group.SENSORSandroid.permission-group.SMS
Объединение в группы
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
๏ Ранняя OS/приложение — старая модель предоставления
๏ М+: все разрешения по новой модели
Совместимость
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
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
@Overridepublic 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) { } }
Результат
๏ Данные приложения сохраняются на Google Drive каждые 24 часа
๏ Каждое приложение может хранить до 25 Мб данных๏ Шифрование данных๏ Бесплатное хранилище вне личного пространства๏ Пользователь сам принимает решение об использовании данного функционала приложением
๏ Разработчик определяет какие данные должны подлежать резервному копированию
Автоматическое резервное копирование
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
๏ Файлы в каталогах, на которые ссылаются методы getCacheDir() и getCodeCacheDir()
๏ Файлы во внешнем хранилище, кроме файлов, находящихся в каталогах, на которые ссылается метод getExternalFilesDir()
๏ файлы в каталоге, на который ссылается метод getNoBackupFilesDir()
Что не входит в схему по умолчанию
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
Включение схемы
<application android:allowBackup="true" android:fullBackupContent="@xml/app_backup"
File: getFilesDir()External: getExternalFilesDir()Root: app root folderDatabase: 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>
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
App Links
๏ Связь приложений с Web сайтом๏ Открытие html ссылки приложением в автоматическом режиме, без запроса у пользователя
App Links
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
[ { "relation":[ "delegate_permission/common.handle_all_urls" ], "target":{ "namespace":"android_app", "package_name":"com.app.test", "sha256_cert_fingerprints":[ "16:DF:17 .. D5" ] } } ]
Связь через JSONObject
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
https://cloudchat.com/.well-known/statements.json
<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" android:host="www.cloudchat.com" /> <data android:scheme="https" android:host="www.cloudchat.com" /> </intent-filter>
Манифест приложения
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
Как это работает
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
Package Manager
Intent Filter Verifier
cache
http://cloudchat.com/
.well-known/statements.json
Device Web Server
Ждем релиз
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
๏ Повышение безопасности приложений๏ Удобство синхронизации данных и использования приложений
๏ Простота реализации нового Api๏ Ускорение процесса разработки программного продукта
๏ Гибкость использования заявляемого функционала
Спасибо за внимание!
Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co
Recommended