SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
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.CALENDAR
android.permission-group.CAMERA
android.permission-group.CONTACTS
android.permission-group.LOCATION
android.permission-group.MICROPHONE
android.permission-group.PHONE
android.permission-group.SENSORS
android.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
@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) {

}

}

Результат
๏ Данные приложения сохраняются на 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 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>
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

Weitere ähnliche Inhalte

Andere mochten auch

Securité des applications web
Securité des applications webSecurité des applications web
Securité des applications webMarcel TCHOULEGHEU
 
Vector Drawable API. Возможности применения
Vector Drawable API. Возможности примененияVector Drawable API. Возможности применения
Vector Drawable API. Возможности примененияRambler Android
 
Android UIデザイン入門
Android UIデザイン入門Android UIデザイン入門
Android UIデザイン入門OESF Education
 
Concrete admixtures_Dr D R Panchal
Concrete admixtures_Dr D R Panchal Concrete admixtures_Dr D R Panchal
Concrete admixtures_Dr D R Panchal drpamd
 
The Changing Face of Business: What It Means for Energy - Jessica Pointer [En...
The Changing Face of Business: What It Means for Energy - Jessica Pointer [En...The Changing Face of Business: What It Means for Energy - Jessica Pointer [En...
The Changing Face of Business: What It Means for Energy - Jessica Pointer [En...Energy Digital Summit
 

Andere mochten auch (6)

HOW TO USE EVERNOTE
HOW TO USE EVERNOTEHOW TO USE EVERNOTE
HOW TO USE EVERNOTE
 
Securité des applications web
Securité des applications webSecurité des applications web
Securité des applications web
 
Vector Drawable API. Возможности применения
Vector Drawable API. Возможности примененияVector Drawable API. Возможности применения
Vector Drawable API. Возможности применения
 
Android UIデザイン入門
Android UIデザイン入門Android UIデザイン入門
Android UIデザイン入門
 
Concrete admixtures_Dr D R Panchal
Concrete admixtures_Dr D R Panchal Concrete admixtures_Dr D R Panchal
Concrete admixtures_Dr D R Panchal
 
The Changing Face of Business: What It Means for Energy - Jessica Pointer [En...
The Changing Face of Business: What It Means for Energy - Jessica Pointer [En...The Changing Face of Business: What It Means for Energy - Jessica Pointer [En...
The Changing Face of Business: What It Means for Energy - Jessica Pointer [En...
 

Ähnlich wie Android M: опыт личного знакомства

Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Development User Group
 
Антон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в androidАнтон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в androidDataArt
 
Что нового в Android M?
Что нового в Android M?Что нового в Android M?
Что нового в Android M?HackDay_Russia
 
[JAM 1.0] Android OS, Java (Paul Malikov)
[JAM 1.0] Android OS, Java (Paul Malikov)[JAM 1.0] Android OS, Java (Paul Malikov)
[JAM 1.0] Android OS, Java (Paul Malikov)Evgeny Kaziak
 
Android Marshmallow (13.11.2015)
Android Marshmallow (13.11.2015)Android Marshmallow (13.11.2015)
Android Marshmallow (13.11.2015)JollyDroid
 
Игорь Цеглевский: Взгляд практика на Android 6.0 Marshmallow
Игорь Цеглевский: Взгляд практика на Android 6.0 Marshmallow Игорь Цеглевский: Взгляд практика на Android 6.0 Marshmallow
Игорь Цеглевский: Взгляд практика на Android 6.0 Marshmallow Mobile Dimension
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Kuban Dzhakipov
 
Appium для народа
Appium для народаAppium для народа
Appium для народаSQALab
 
Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Noveo
 
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...JSib
 
Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016
Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016
Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016РИФ-Воронеж
 
Google I/O 2016 для разработчиков
Google I/O 2016 для разработчиковGoogle I/O 2016 для разработчиков
Google I/O 2016 для разработчиковWOX APP
 
Android - 06 - Gradle
Android - 06 - GradleAndroid - 06 - Gradle
Android - 06 - GradleNoveo
 
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)7bits
 
(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA EngineerYan Alexeenko
 
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...Cisco Russia
 
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью GradleЛюбовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью GradleGeeksLab Odessa
 

Ähnlich wie Android M: опыт личного знакомства (20)

Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Антон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в androidАнтон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в android
 
Что нового в Android M?
Что нового в Android M?Что нового в Android M?
Что нового в Android M?
 
[JAM 1.0] Android OS, Java (Paul Malikov)
[JAM 1.0] Android OS, Java (Paul Malikov)[JAM 1.0] Android OS, Java (Paul Malikov)
[JAM 1.0] Android OS, Java (Paul Malikov)
 
Android Marshmallow (13.11.2015)
Android Marshmallow (13.11.2015)Android Marshmallow (13.11.2015)
Android Marshmallow (13.11.2015)
 
Игорь Цеглевский: Взгляд практика на Android 6.0 Marshmallow
Игорь Цеглевский: Взгляд практика на Android 6.0 Marshmallow Игорь Цеглевский: Взгляд практика на Android 6.0 Marshmallow
Игорь Цеглевский: Взгляд практика на Android 6.0 Marshmallow
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?
 
Appium для народа
Appium для народаAppium для народа
Appium для народа
 
Лекция Android
Лекция AndroidЛекция Android
Лекция Android
 
Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)Push Notifications (Lecture 22 – push notifications)
Push Notifications (Lecture 22 – push notifications)
 
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
 
Jira conf
Jira  confJira  conf
Jira conf
 
Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016
Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016
Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016
 
Google I/O 2016 для разработчиков
Google I/O 2016 для разработчиковGoogle I/O 2016 для разработчиков
Google I/O 2016 для разработчиков
 
Android - 06 - Gradle
Android - 06 - GradleAndroid - 06 - Gradle
Android - 06 - Gradle
 
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
 
(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer
 
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...
Кулинарный мастер-класс "Готовим безопасный офис нового поколения на основе C...
 
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью GradleЛюбовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
 

Mehr von Rambler Android

Разбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutРазбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutRambler Android
 
Как мы измеряем наши проекты
Как мы измеряем наши проектыКак мы измеряем наши проекты
Как мы измеряем наши проектыRambler Android
 
Тестируемая RxJava
Тестируемая RxJavaТестируемая RxJava
Тестируемая RxJavaRambler Android
 
Конвейерное производство приложений
Конвейерное производство приложенийКонвейерное производство приложений
Конвейерное производство приложенийRambler Android
 
Google Identity Platform
Google Identity PlatformGoogle Identity Platform
Google Identity PlatformRambler Android
 
Революционный Android. Ищем замену фрагментам
Революционный Android. Ищем замену фрагментамРеволюционный Android. Ищем замену фрагментам
Революционный Android. Ищем замену фрагментамRambler Android
 

Mehr von Rambler Android (7)

Разбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayoutРазбираемся с CoordinatorLayout
Разбираемся с CoordinatorLayout
 
Как мы измеряем наши проекты
Как мы измеряем наши проектыКак мы измеряем наши проекты
Как мы измеряем наши проекты
 
Feature-toggles
Feature-togglesFeature-toggles
Feature-toggles
 
Тестируемая RxJava
Тестируемая RxJavaТестируемая RxJava
Тестируемая RxJava
 
Конвейерное производство приложений
Конвейерное производство приложенийКонвейерное производство приложений
Конвейерное производство приложений
 
Google Identity Platform
Google Identity PlatformGoogle Identity Platform
Google Identity Platform
 
Революционный Android. Ищем замену фрагментам
Революционный Android. Ищем замену фрагментамРеволюционный Android. Ищем замену фрагментам
Революционный Android. Ищем замену фрагментам
 

Android M: опыт личного знакомства

  • 1. Android M: Developer preview Вадим Щенев Rambler&Co Опыт личного знакомства
  • 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
  • 12. [ { "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
  • 13. <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
  • 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 ๏ Ускорение процесса разработки программного продукта ๏ Гибкость использования заявляемого функционала
  • 16. Спасибо за внимание! Android M: Developer Preview — опыт личного знакомства Вадим Щенев Rambler&Co