SlideShare a Scribd company logo
Android Marshmallow
будь готов!
Неклюдов Денис
target_sdk = 23
Auto Backup
Лимит в 25 Mb на одно приложение в
шифрованной части Drive
(не затрагивает пользовательскую квоту)
Бэкап осуществляется каждые 24 часа, при
зарядке, когда устройством не пользуются, и
оно подключено к Wi-Fi
Auto Backup
Не сохраняются:
External Storage Files (кроме getExternalFilesDir())
getCacheDir()
getCodeCacheDir()
getNoBackupFilesDir()
Auto Backup
<android:fullBackupContent="@xml/mybackupscheme">
<full-backup-content>
<[exclude, include] domain=
["file" | "database" | "sharedpref"| "external" | "root"] path="string”>
</full-backup-content>
! не бекапить данные аккаунтов, токены в т.ч. GCM
@Override
onRestoreFinished()
Apache Client Deprecation
Если осталась необходимость использовать HttpClient:
android {
useLibrary 'org.apache.http.legacy'
}
Other Deprecations
libcrypto.so и libssl.so из OpenSSL
заменены на BoringSSL
notification.setLatestEventInfo() удален
Вместо него: Notification.Builder
Adoptable storage
Context methods:
getFilesDir()
getCacheDir()
getCodeCacheDir()
getDatabasePath()
getDir()
getNoBackupFilesDir()
getFileStreamPath()
getPackageCodePath()
getPackageResourcePa
th()
ApplicationInfo fields:
dataDir
sourceDir
nativeLibraryDir
publicSourceDir
splitSourceDirs
splitPublicSourceDirs
Five more changes
Android Keystore Changes (упразднениe DSA)
Wi-Fi and Networking Changes (управление соединениями,
мультисоединение всегда)
Camera Service Changes (приоритеты, несколько
приложений для нескольких камер)
Runtime(багфиксы в ART)
Access to Hardware Identifier (нет доступа к макадресам из
сети, новые права доступа)
The cat goes idle
Idle
Doze Mode and App Standby
Doze mode
● Доступ приложению к сети отключен, пока приложение не
получит high-priority GCM-push.
● Система игнорирует Wake lock’и.
● Alarm’ы запланированные в AlarmManager не будут
вызываться, кроме тех, которые будут обновлены с
помощью setAndAllowWhileIdle().
● Система не производит поиска сетей Wi-Fi.
Doze mode
● NetworkPolicyManagerService Пропускает только приложения из
белого списка.
● JobSchedulerService Все текущие задачи отменяются. Новые
откладываются до пробуждения.
● SyncManager Все текущие отменяются, новые откладываются до
пробуждения.
● PowerManagerService Только задачи приложений из белого
списка вызовутся.
Doze mode: step by step
Doze mode: step by step
DeviceIdleController:
ACTIVE - Устройство используется или на зарядке
INACTIVE - Устройство недавно вышло из активного режима
(пользователь выключил экран, выдернул зарядку и т.п.)
...30 минут
IDLE_PENDING - Устройство готовится перейти в режим ожидания
...30 минут
IDLE - Устройство в режиме бездействия
IDLE_MAINTENANCE - Открыто короткое окно, чтобы приложения
выполнили свою работу
Doze mode: exclusions
setAndAllowWhileIdle()- у обработчика
есть 10 секунд, затем уходит в Idle
Остальные алармы - в бездействии, пока
активен Doze Mode
GCM:
Пуш уведомление с высочайшим
приоритетом дает получившему его
приложению недолгий доступ к сети.
Whitelist:
Alarm Manager:
Standby mode
1. Пользователь явно запустил приложение.
2. Приложение имеет процесс, работающий в
данный момент на переднем плане (Activity
или foreground service, или используется
другой activity или foreground service’ом).
3. Приложение создало уведомление, которое
висит в списке уведомлений.
4. Пользователь принудительно добавил
приложение в список исключений
оптимизации в настройках системы.
«Android Marshmallow — будь готов». Денис Неклюдов
«Android Marshmallow — будь готов». Денис Неклюдов
Permissions
Permissions
SDK < 23
1.Описать все
разрешения в manifest
2.Пользователь
разрешит сразу все
при установке
3.Пользователь может
запретить любое из
разрешений после
установки
SDK >= 23
1.Описать только
PROTECTION_NORMAL
запросы в manifest
2.Пользователь их все
подтвердит при
установке
3.Когда приложению
нужен доступ к
одному или
нескольким
разрешениям из
Permissions
1. ContextCompat.checkSelfPermission
(Context context, String permission)
2. ActivityCompat.requestPermissions();
3. ActivityCompat.OnRequestPermissionsResultCallback
Permissions
Хорошие практики:
• Запрашивать лишь те разрешения, которые
действительно нужны
• Если есть возможность, вместо запроса
воспользоваться внешним Intent
• Запрашивать разрешение, только перед тем, когда оно
понадобится
• Пояснять пользователю, для чего запрашивается
разрешение
Fingerprint
<uses-permission
android:name="android.permission.USE_FINGERPRINT" />
Для использования:
android.hardware.fingerprint.FingerprintManager;
isHardwareDetected();
hasEnrolledFingerprints()
authentificate(...)
Confirm Credential
Для ипользования:
KeyguardManager.isKeyguardSecure()
KeyGenerator.generateKey();
setUserAuthenticationValidityDurationSeconds()
KeyguardManager.createConfirmDeviceCredentialI
ntent()
Text Selection
Для исользования:
startActionMode(Callback,
ActionMode.TYPE_FLOATING)
App Linking
<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.android.com" />
<data android:scheme="https"
android:host="www.android.com" />
</intent-filter>
App Linking
Положить JSON на свой сайт
(https://www.domain1.com/.well-known/assetlinks.json)
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example",
"sha256_cert_fingerprints":
["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:9
6:B2:3F:CF:44:E5"]
}
}]
Direct share
Необходимо создать Service, наследник
ChooserTargetService
<service
android:name=".YourChooserTargetService"
android:label="@string/yourLabel»
android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE">
<intent-filter>
<action
android:name="android.service.chooser.ChooserTargetService" />
</intent-filter>
</service>
«Android Marshmallow — будь готов». Денис Неклюдов
Voice Iteraction
Проверить доступность:
activity.isVoiceInteraction()
Взаимодействовать при
помощи VoiceInteractor
Спасибо за внимание!
Денис Неклюдов
plus.google.com/+ДенисНек
nekdenis@gmail.com

More Related Content

PPTX
Droidcon Moscow 2015. К релизу Android Marshmallow - готов! Денис Неклюдов - ...
PDF
signages and complete solution of advertise
PDF
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
PPTX
Андрей Беляев "Мыслить как заказчик"
PDF
Александр Кашеверов - Коротко про WEB
PPTX
Альтернативные способы заваривания кофе
PPTX
Music video regulations
PPTX
Message queue demo
Droidcon Moscow 2015. К релизу Android Marshmallow - готов! Денис Неклюдов - ...
signages and complete solution of advertise
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
Андрей Беляев "Мыслить как заказчик"
Александр Кашеверов - Коротко про WEB
Альтернативные способы заваривания кофе
Music video regulations
Message queue demo

Viewers also liked (17)

PPTX
Лилия Зданевич "Automation testing save time and money"
PPSX
Visiting unpleasent places
PPTX
Sam mendes
PPTX
Visiting unpleasent places
PDF
Dc brochure vietv1 (1)
PDF
Application form
PPTX
Menulis Karya Ilmiah
PPTX
Яна Пролис "Создаем Dream Team"
PPTX
Арсений Жижелев «Наблюдение за игровым миром Аллодов (Play+Scala+Slick+Postgr...
PDF
Stamped Bachelor eng instrumentaion and control
PDF
Сергей Зиновьев — Разработка веб-приложений на Rails.
PPTX
" Angular 2.0", Андрей Альперт, DataArt
PPTX
Building Pennsylvania's First Detector Network Part 1
PPTX
Thriller powerpoint finished
PDF
76363027 bo-cau-hoi-sinh-dai-cuong 2
PDF
Иван Гришаев «Саблайм текст – ИДЕ моей мечты
PPSX
Visiting unpleasent places
Лилия Зданевич "Automation testing save time and money"
Visiting unpleasent places
Sam mendes
Visiting unpleasent places
Dc brochure vietv1 (1)
Application form
Menulis Karya Ilmiah
Яна Пролис "Создаем Dream Team"
Арсений Жижелев «Наблюдение за игровым миром Аллодов (Play+Scala+Slick+Postgr...
Stamped Bachelor eng instrumentaion and control
Сергей Зиновьев — Разработка веб-приложений на Rails.
" Angular 2.0", Андрей Альперт, DataArt
Building Pennsylvania's First Detector Network Part 1
Thriller powerpoint finished
76363027 bo-cau-hoi-sinh-dai-cuong 2
Иван Гришаев «Саблайм текст – ИДЕ моей мечты
Visiting unpleasent places
Ad

More from DataArt (20)

PDF
DataArt Custom Software Engineering with a Human Approach
PDF
DataArt Healthcare & Life Sciences
PDF
DataArt Financial Services and Capital Markets
PDF
About DataArt HR Partners
PDF
Event management в IT
PDF
Digital Marketing from inside
PPTX
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
PDF
DevOps Workshop:Что бывает, когда DevOps приходит на проект
PDF
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
PDF
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
PDF
Communication in QA's life
PDF
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
PDF
Знакомьтесь, DevOps
PDF
DevOps in real life
PDF
Codeless: автоматизация тестирования
PDF
Selenoid
PDF
Selenide
PDF
A. Sirota "Building an Automation Solution based on Appium"
PDF
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
PPTX
IT talk: Как я перестал бояться и полюбил TestNG
DataArt Custom Software Engineering with a Human Approach
DataArt Healthcare & Life Sciences
DataArt Financial Services and Capital Markets
About DataArt HR Partners
Event management в IT
Digital Marketing from inside
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
DevOps Workshop:Что бывает, когда DevOps приходит на проект
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
Communication in QA's life
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
Знакомьтесь, DevOps
DevOps in real life
Codeless: автоматизация тестирования
Selenoid
Selenide
A. Sirota "Building an Automation Solution based on Appium"
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
IT talk: Как я перестал бояться и полюбил TestNG
Ad

«Android Marshmallow — будь готов». Денис Неклюдов