1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
|
page.title=Android N для разработчиков
meta.tags="предварительная версия", "androidn"
page.tags="preview", "developer preview"
page.image=images/cards/card-n-apis_2x.png
@jd:body
<div id="qv-wrapper">
<div id="qv">
<h2>Основные возможности для разработчиков</h2>
<ol>
<ul style="list-style-type:none;">
<li><a href="#multi-window_support">Поддержка многооконного режима</a></li>
<li><a href="#notification_enhancements">Уведомления</a></li>
<li><a href="#jit_aot">Динамическая/предварительная компиляция</a></li>
<li><a href="#quick_path_to_app_install">Быстрый способ установки приложения</a></li>
<li><a href="#doze_on_the_go">Сон на ходу: режим Doze</a></li>
<li><a href="#background_optimizations">Оптимизация фоновых процессов</a></li>
<li><a href="#data_saver">Экономия трафика</a></li>
<li><a href="#tile_api">API панели быстрых настроек</a></li>
<li><a href="#number-blocking">Блокировка номеров</a></li>
<li><a href="#call_screening">Фильтрация вызовов</a></li>
<li><a href="#multi-locale_languages">Языки и языковые настройки</a></li>
<li><a href="#icu4">API-интерфейсы ICU4J в Android</a></li>
<li><a href="#gles_32">API OpenGL ES 3.2</a></li>
<li><a href="#android_tv_recording">Запись Android TV</a></li>
<li><a href="#android_for_work">Android for Work</a></li>
<li><a href="#accessibility_enhancements">Специальные возможности</a></li>
<li><a href="#direct_boot">Режим Direct Boot</a></li>
<li><a href="#key_attestation">Аттестация ключей</a></li>
<li><a href="#network_security_config">Конфигурация сетевой безопасности</a></li>
<li><a href="#default_trusted_ca">Доверенный центр сертификации по умолчанию</a></li>
<li><a href="apk_signature_v2">Схема получения подписи APK, версия 2</a></li>
<li><a href="#scoped_directory_access">Доступ к выделенным каталогам</a></li>
</ol>
</div>
</div>
<p>Система Android N еще находится в активной стадии разработки, но ее уже можно опробовать в виде предварительной версии
N Developer Preview. В следующих разделах рассматриваются некоторые из
ее новых возможностей для разработчиков. </p>
<p>
Обязательно изучите раздел <a href="{@docRoot}preview/behavior-changes.html">Изменения в работе</a>, в котором описаны
изменения платформы, способные повлиять на работу приложений, ознакомьтесь более подробно с основными возможностями
в руководствах для разработчиков и загрузите <a href="{@docRoot}preview/setup-sdk.html#docs-dl">справочник по API</a> с подробным описанием новых
API-интерфейсов.
</p>
<h2 id="multi-window_support">Поддержка многооконного режима</h2>
<p>В Android N представлена новая долгожданная функция многозадачности
– многооконный режим. </p>
<p>Теперь пользователи смогут открывать на экране два приложения одновременно. </p>
<ul>
<li>На телефонах и планшетах под управлением
Android N пользователи могут запустить два приложения рядом или друг над другом
в режиме разделенного экрана. Размеры окон приложений можно изменить с помощью
разделителя между ними. </li>
<li>На устройствах Android TV для приложений будет доступен <a href="{@docRoot}preview/features/picture-in-picture.html">режим
"картинка в картинке"</a>, который позволит приложению отображать контент, пока пользователь просматривает другие приложения или
взаимодействует с ними. Более подробная информация приведена ниже. </li>
</ul>
<div class="col-4of10">
<img src="{@docRoot}preview/images/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
<p class="img-caption">
<strong>Рис. 1.</strong> Приложения в режиме разделенного экрана.
</p>
</div>
<p>Поддержка многооконного режима открывает новые возможности привлечения пользователей,
особенно на планшетах и других устройствах с большим размером экрана. Вы можете даже включить в своем приложении функцию перетаскивания
для удобного перемещения контента между приложениями – отличный
способ улучшить пользовательский интерфейс. </p>
<p>Вы можете легко добавить поддержку многооконного режима в свое приложение и настроить его
работу с окнами экрана. Например, вы можете определить минимальные допустимые размеры,
до которых пользователи могут уменьшить окно приложения.
Вы можете также отключить многооконный режим для своего приложения, чтобы
система отображала его только в полноэкранном режиме.</p>
<p>
Дополнительная информация содержится в документе для разработчиков <a href="{@docRoot}preview/features/multi-window.html">Поддержка многооконного режима</a>.
</p>
<h2 id="notification_enhancements">Новые возможности уведомлений</h2>
<p>В Android N изменен дизайн уведомлений, которые стали проще и удобнее.
Ниже приведены некоторые изменения.</p>
<ul>
<li>
<strong>Обновления шаблонов</strong>. В новых шаблонах уведомлений
сделан акцент на изображении и аватаре контакта. Разработчики смогут
использовать новые шаблоны с минимальными изменениями своего кода.
</li>
<li>
<strong>Группы уведомлений</strong>. Система может группировать уведомления,
например по теме сообщений, и отображать группу. Пользователь может применять к группам
действия, например, закрывать их или архивировать. Если вы ранее выполняли реализацию
уведомлений для Android Wear, то вам уже должна быть знакома эта
модель.
</li>
<li>
<strong>Непосредственный ответ в уведомлении</strong>.
Android теперь поддерживает функцию внутренних ответов в приложениях для общения в режиме реального времени. Это позволяет быстро ответить на
СМС или текстовое сообщение непосредственно в интерфейсе уведомления.
</li>
<li>
<strong>Собственные представления</strong>. Два новых API-интерфейса позволяют применять системные элементы,
такие как заголовки и действия уведомлений, при использовании собственных представлений в
уведомлениях.
</li>
</ul>
<div class="col-4of12">
<img src="{@docRoot}preview/images/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
</div>
<div class="col-4of12">
<img src="{@docRoot}preview/images/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
</div>
<div class="col-4of12">
<img src="{@docRoot}preview/images/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
</div>
<p class="img-caption">
<strong>Рис. 2.</strong> Группы уведомлений и непосредственный ответ.
</p>
<p>Способы реализации новых возможностей описаны в руководстве
<a href="{@docRoot}preview/features/notification-updates.html">Уведомления</a>.
</p>
<h2 id="jit_aot">Профильная динамическая/предварительная компиляция</h2>
<p>В Android N добавлен динамический (JIT) компилятор с профилированием кода для среды
ART, который позволяет постоянно улучшать производительность приложений Android во время их работы.
JIT-компилятор дополняет текущий предварительный (AOT) компилятор ART
и помогает повысить производительность, сократить потребление памяти, а также ускорить обновления приложений и системы.
</p>
<p>Профильная компиляция позволяет ART управлять AOT/JIT-компиляцией каждого приложения
в соответствии с его фактическим использованием и характеристиками устройства. Например,
ART ведет профиль часто используемых методов каждого приложения, которые она может предварительно скомпилировать
и кэшировать для оптимальной производительности. Компиляция остальных частей приложения откладывается до того момента,
когда они действительно понадобятся.</p>
<p>Кроме повышения производительности основных частей приложения профильная
компиляция помогает сократить общее использование оперативной памяти приложением, в том числе связанными двоичными файлами.
Эта возможность особенно важна для устройств с небольшим объемом памяти.</p>
<p>ART управляет профильной компиляцией с минимальным потреблением заряда
аккумулятора. Предварительная компиляция выполняется только тогда, когда устройство неактивно
и находится на зарядке, поэтому заблаговременное выполнение этой работы экономит время и энергию.</p>
<h2 id="quick_path_to_app_install">Быстрый способ установки приложения</h2>
<p>Одним из наиболее ощутимых преимуществ JIT-компилятора ART является скорость установки приложений
и обновлений системы. Даже большие приложения, требовавшие нескольких минут для своей оптимизации и установки на
Android 6.0 , теперь могут быть установлены за секунды.
Обновления системы также выполняются быстрее, поскольку стадия оптимизации теперь отсутствует. </p>
<h2 id="doze_on_the_go">Сон на ходу: режим Doze</h2>
<p>В Android 6.0 был введен системный режим Doze для экономии заряда аккумулятора. В этом режиме
выполнение процессорных и сетевых операций приложений откладывается, когда устройство не используется и неподвижно – например, лежит на столе или в ящике.
</p>
<p>В Android N режим Doze сделал шаг вперед и экономит заряд аккумулятора на ходу.
Каждый раз, когда экран выключается на определенный промежуток времени и устройство не заряжается,
Doze применяет частичный набор знакомых ограничений процессорной и сетевой активности приложений.
Это означает, что пользователи могут экономить заряд аккумулятора, даже когда их устройство лежит в кармане.
</p>
<img src="/preview/images/doze-diagram-1.png" alt="" id="figure1" />
<p class="img-caption">
<strong>Рис. 3.</strong> Режим Doze теперь применяет
энергосберегающие ограничения, даже когда устройство находится в движении.
</p>
<p>Вскоре после блокировки экрана, когда устройство питается от аккумулятора, режим Doze
ограничивает сетевой доступ и откладывает выполнение заданий и синхронизации. В течение коротких периодов пробуждения
для приложений открывается доступ к сети и разрешается выполнение отложенных
заданий и операций синхронизации. Включение экрана или подключение к источнику питания выводит
устройство из режима Doze.</p>
<p>Если устройство снова остается неподвижным в течение определенного периода времени (с погашенным экраном и питанием от аккумулятора),
Doze применяет полный набор процессорных и сетевых ограничений к {@link
android.os.PowerManager.WakeLock}, {@link android.app.AlarmManager} оповещениям и сканированию
GPS/Wi-Fi.</p>
<p>Рекомендации по адаптации приложения для режима Doze не зависят от того, двигается устройство или нет,
поэтому если вы уже обновили свое приложение для оптимальной работы
в режиме Doze, то все уже готово. Если нет, начните <a href="{@docRoot}training/monitoring-device-state/doze-standby.html#assessing_your_app">адаптацию
приложения для режима Doze</a> прямо сейчас.</p>
<h2 id="background_optimizations">Проект Svelte: оптимизация фоновых процессов</h2>
<p>Продолжено развитие проекта Svelte, нацеленного на сокращение использования оперативной памяти системой и приложениями
в различных устройствах экосистемы Android. В Android N проект
Svelte уделяет особое внимание оптимизации работы приложений в фоновом режиме. </p>
<p>Работа в фоновом режиме является важной частью большинства приложений. Организация ее надлежащим образом
может сделать интерфейс пользователя быстрым, отзывчивым и контекстно-зависимым.
В противном случае фоновая обработка может напрасно потреблять оперативную память (и
заряд аккумулятора) и негативно влиять на производительность других приложений. </p>
<p>Начиная с Android 5.0, предпочтительным и оптимальным для пользователей способом выполнения фоновых операций стало использование планировщика {@link android.app.job.JobScheduler}.
Приложения могут планировать свои задания, позволяя системе оптимизировать их на основе состояния памяти,
питания и сетевого соединения. Планировщик JobScheduler прост в использовании и обеспечивает необходимый контроль,
поэтому он рекомендуется для применения во всех приложениях.
</p>
<p>
Другим хорошим вариантом является планировщик <a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
<code>GCMNetworkManager</code></a> в составе служб Google Play, который
предлагает аналогичные возможности планирования заданий и совместимость с прежними версиями
Android.
</p>
<p>Мы продолжаем расширять область применения планировщиков <code>JobScheduler</code> и
<code>GCMNetworkManager</code>.
Например, в Android N теперь можно планировать фоновую обработку на основании
изменений поставщиков контента. В то же время мы начинаем исключать некоторые
устаревшие шаблоны, которые могут ухудшить производительность системы,
особенно на устройствах с малым объемом памяти.</p>
<p>В Android N удалены три часто используемые неявные рассылки —
{@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, {@link
android.hardware.Camera#ACTION_NEW_PICTURE} и {@link
android.hardware.Camera#ACTION_NEW_VIDEO}, — поскольку они могут пробудить
фоновые процессы сразу нескольких приложений, повысив потребление памяти и заряда аккумулятора. Если
ваше приложение получает эти рассылки, используйте преимущество N Developer Preview для миграции на
<code>JobScheduler</code> и связанные с ним API-интерфейсы. </p>
<p>
Дополнительная информация содержится в документе <a href="{@docRoot}preview/features/background-optimization.html">Оптимизация
фоновых процессов</a>.
</p>
<h2 id="data_saver">Экономия трафика</h2>
<div class="col-5of12" style="margin-right:1.5em;">
<img src="{@docRoot}preview/images/datasaver.png" style="border:2px solid #ddd">
<p class="img-caption" style="padding-right:2em;">
<strong>Рис. 4.</strong> Настройка экономии трафика.
</p>
</div>
<p>В течение срока эксплуатации мобильного устройства стоимость сотового трафика обычно
превышает стоимость самого устройства. Для многих пользователей сотовый трафик является
весьма дорогим ресурсом, который они хотели бы сэкономить. </p>
<p>В Android N появился режим экономии трафика – новая системная служба, которая помогает сократить
использование сотового трафика приложениями в роуминге, в конце периода тарификации
или для небольших предоплаченных пакетов трафика. Режим экономии трафика дает пользователям возможность контроля использования сотового трафика приложениями
и позволяет разработчикам повысить эффективность работы служб.
</p>
<p>Когда пользователь включает экономию трафика в панели <strong>Settings</strong> и устройство подключено к тарифицируемой сети,
система блокирует использование фонового трафика и сигнализирует приложениям
о необходимости сократить по возможности использование трафика в активном режиме, например: ограничить скорость передачи данных
потокового вещания, уменьшить качество изображений, отложить оптимистичное предварительное кэширование
и т.д. Пользователи могут поместить определенные приложения в белый список, разрешив им тарифицируемую фоновую передачу данных
даже при включенном режиме экономии трафика.</p>
<p>Android N расширяет применение класса {@link android.net.ConnectivityManager}, позволяя приложениям
<a href="{@docRoot}preview/features/data-saver.html#status">выяснять пользовательские настройки
экономии трафика</a> и <a href="{@docRoot}preview/features/data-saver.html#monitor-changes">отслеживать
изменения этих настроек</a>. Все приложения должны проверять, был ли включен режим экономии трафика,
и пытаться ограничить использование трафика в фоновом и активном режимах.</p>
<h2 id="tile_api">API панели быстрых настроек</h2>
<div style="float:right;max-width:320px">
<img src="{@docRoot}preview/images/quicksettings.png" style="padding-left:1.5em;">
<p class="img-caption" style="padding-left:2em;">
<strong>Рис. 5.</strong> Плитки быстрых настроек в панели уведомлений.
</p>
</div><p>Быстрые настройки являются простым и популярным способом доступа к основным настройкам и действиям
непосредственно из панели уведомлений. В Android N возможности быстрых настроек
были расширены – они стали еще более полезными и удобными. </p>
<p>Добавлено пространство для дополнительных плиток быстрых настроек, к которым можно
обратиться с разбитой на страницы области экрана, проведя пальцем влево или вправо. Пользователи
также могут контролировать состав и место отображения этих элементов – их можно добавлять или двигать обычным перетаскиванием.
</p>
<p>Для разработчиков Android N также предлагает новый API, который позволяет определить собственные плитки
быстрых настроек для удобного доступа пользователей к основным элементам управления и действиям вашего приложения.</p>
<p>
Плитки быстрых настроек резервируются для элементов управления или действий, которые либо требуются срочно,
либо часто используются. Их не следует использовать в качестве ярлыков
для запуска приложений.
</p>
<p>
После определения плитки можно показать пользователям, которые смогут добавить их на
панель быстрых настроек обычным перетаскиванием.
</p>
<p>
Дополнительную информацию о создании плиток приложений можно найти в описании
<code>android.service.quicksettings.Tile</code> в загружаемом <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Справочнике по API</a>.
</p>
<h2 id="number-blocking">Блокировка номеров</h2>
<p>Платформа Android N теперь поддерживает блокировку номеров и предоставляет
API-интерфейс платформы, который позволяет поставщикам услуг вести список блокируемых номеров. Этот список доступен для чтения и записи стандартным приложениям
для СМС, звонков и приложениям поставщика.
Для других приложений это список недоступен.</p>
<p>Сделав блокировку номеров стандартной функцией платформы, Android предоставляет приложениям
единообразный способ поддержки блокировки номеров на разных устройствах.
Приложения также получают следующие преимущества:</p>
<ul>
<li> Номера, блокируемые при вызовах, также блокируются в текстовых сообщениях.
<li> Заблокированные номера могут быть сохранены при переустановках и переносах на другие устройства с помощью функции резервного копирования и восстановления.
<li> Разные приложения могут использовать один и тот же список блокируемых номеров.
</ul>
<p>Кроме того, возможность интеграции приложения оператора мобильной сети в Android означает, что операторы могут
читать список блокируемых номеров на устройстве и выполнять блокировку для пользователя на своей стороне,
предотвращая доставку пользователю нежелательных вызовов и текстовых сообщений через какого-либо посредника,
например, через конечную точку VOIP или переадресацию звонков.</p>
<p>
Дополнительную информацию можно найти в описании <code>android.provider.BlockedNumberContract</code>
в загружаемом <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Справочнике по API</a>.
</p>
<h2 id="call_screening">Фильтрация вызовов</h2>
<p>
Android N дает возможность стандартному приложению для звонков фильтровать входящие вызовы. Для этого
в приложении для звонков реализована новая служба <code>CallScreeningService</code>,
которая позволяет приложению выполнять ряд действий на основании
{@link android.telecom.Call.Details Call.Details} входящего вызова, например:
</p>
<ul>
<li> отклонить входящий вызов;
<li> не регистрировать вызов в журнале вызовов;
<li> не показывать пользователю уведомление о вызове.
</ul>
<p>
Дополнительную информацию можно найти в описании <code>android.telecom.CallScreeningService</code>
в загружаемом <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Справочнике по API</a>.
</p>
<h2 id="multi-locale_languages">Поддержка нескольких языковых настроек, дополнительные языки</h2>
<p>Android N теперь позволяет пользователям выбрать <strong>несколько языковых настроек</strong>
для улучшенной поддержки случаев двуязычного применения. Приложения могут использовать
новый API для получения выбранных пользователем языковых настроек и затем предоставлять более сложные
интерфейсы для многоязычных пользователей, например: показывать результаты поиска
на нескольких языках; не предлагать перевод веб-страниц с того языка, который уже знаком пользователю.
</p>
<p>Вместе с поддержкой нескольких языковых настроек Android N также расширяет список доступных языков.
Для каждого распространенного
языка, такого как английский, испанский, французский и арабский, предлагается более 25 вариантов. Также добавлена частичная
поддержка более 100 новых языков.</p>
<p>Приложения могут получить список языковых настроек, установленных пользователем, вызвав метод <code>LocaleList.GetDefault()</code>. Для поддержки расширенного количества языковых настроек в Android N изменен способ
разрешения ресурсов. Вам следует обязательно проверить и убедиться в том,
что ваши приложения работают надлежащим образом с новой логикой разрешения ресурсов.</p>
<p>Дополнительная информация о новом способе разрешения ресурсов и соответствующие рекомендации содержатся
в документе <a href="{@docRoot}preview/features/multilingual-support.html">Поддержка нескольких языков</a>.</p>
<h2 id="icu4">API-интерфейсы ICU4J в Android</h2>
<p>
Платформа Android N теперь предлагает частичный набор API-интерфейсов <a href="http://site.icu-project.org/">ICU4J</a> в
пакете <code>android.icu</code>. Миграция выполняется легко и в основном заключается
в простом изменении пространства имен с <code>com.java.icu</code> на
<code>android.icu</code>. Если вы уже используете пакет ICU4J в своих приложениях,
переход на API-интерфейсы <code>android.icu</code>, предоставленные платформой Android,
может существенно сократить размер пакетов APK.
</p>
<p>
Дополнительные сведения по Android ICU4J API содержатся в документе <a href="{@docRoot}preview/features/icu4j-framework.html">Поддержка ICU4J</a>.
</p>
<h2 id="gles_32">API OpenGL™ ES 3.2</h2>
<p>В платформу Android N добавлены интерфейсы и поддержка OpenGL ES 3.2, включая следующие возможности.</p>
<ul>
<li> Все расширения из <a class="external-link" href="https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt">Android Extension Pack</a></a> (AEP) кроме <code>EXT_texture_sRGB_decode</code>.
<li> Кадровые буферы с плавающей запятой для HDR и отложенного затенения.
<li> Вызовы отрисовки BaseVertex для улучшения пакетной обработки и потоковой передачи данных.
<li> Эффективный контроль обращений к буферу для сокращения служебных операций WebGL.
</ul>
<p>API-интерфейс платформы для OpenGL ES 3.2 в Android N предоставляется классом
<code>GLES32</code>. При использовании OpenGL ES 3.2 обязательно следует объявить требование
в файле манифеста с помощью тега <code><uses-feature></code> и атрибута
<code>android:glEsVersion</code>. </p>
<p>Для получения дополнительных сведений об использовании OpenGL ES, включая
определение версии, поддерживаемой устройством, см. <a href="{@docRoot}guide/topics/graphics/opengl.html">Руководство по API OpenGL ES</a>.</p>
<h2 id="android_tv_recording">Запись Android TV</h2>
<p>В Android N добавлена возможность записи и воспроизведения контента из служб Android TV
через новые API-интерфейсы записи. Службы телевидения на основе существующих API
с временным сдвигом могут контролировать выбор данных телеканала для записи, сохранение
сеансов записи и управлять взаимодействием пользователя с записанным контентом. </p>
<p>Дополнительная информация содержится в документе <a href="{@docRoot}preview/features/tv-recording-api.html">API-интерфейсы записи Android TV</a>.</p>
<h2 id="android_for_work">Android for Work</h2>
<p>В Android for Work добавлены много новых возможностей и API-интерфейсов для устройств под управлением Android N.
Некоторые из них приведены ниже. Полный список обновлений Android for Work, касающихся
Android N, содержится в списке изменений Android for Work.</p>
<h3 id="work_profile_security_challenge">Пароль безопасности для рабочего профиля </h3>
<p>
Владельцы профиля могут установить отдельный пароль безопасности для приложений, запускаемых в рабочем профиле.
Когда пользователь пытается открыть любые рабочие
приложения, выводится запрос пароля. Успешный ввод пароля снимает блокировку рабочего профиля
и, при необходимости, дешифрует его. Владельцы профиля
могут отправить пользователю запрос <code>ACTION_SET_NEW_PASSWORD</code>, предлагающий установить рабочий пароль,
или запрос <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code>, предлагающий установить пароль блокировки устройства.
</p>
<p>
Владельцы профиля могут устанавливать различные политики паролей для рабочей проверки безопасности
(например, длину PIN-кода, возможность использования отпечатка пальца
для разблокировки профиля) с помощью <code>setPasswordQuality()</code>,
<code>setPasswordMinimumLength()</code> и других связанных методов. Владелец
профиля может также установить блокировку устройства с помощью экземпляра <code>DevicePolicyManager</code>,
возвращаемого новым методом <code>getParentProfileInstance()</code>.
Кроме того, владельцы профиля могут настроить экран учетных данных для рабочей проверки безопасности
с помощью новых методов <code>setOrganizationColor()</code> и
<code>setOrganizationName()</code>.
</p>
<h3 id="turn_off_work">Выключение рабочего режима </h3>
<p>Пользователи устройства с рабочим профилем могут переключать рабочий режим. Когда рабочий режим
выключен, управляемый им пользователь временно выходит из системы, что отключает приложения рабочего профиля,
фоновую синхронизацию и уведомления. Также отключается приложение владельца профиля.
При выключенном рабочем режиме система отображает постоянный значок состояния,
напоминая пользователю о том, что он не может запустить рабочие приложения. Средство запуска при этом указывает,
что рабочие приложения и виджеты недоступны. </p>
<h3 id="always_on_vpn">Постоянное подключение к VPN </h3>
<p>Владельцы устройства и профиля могут обеспечить постоянное подключение рабочих приложений через указанную сеть
VPN. Система автоматически подключается к этой VPN после загрузки устройства.
</p>
<p>
Для этого в интерфейсе <code>DevicePolicyManager</code> используются новые методы
<code>setAlwaysOnVpnPackage()</code> и
<code>getAlwaysOnVpnPackage()</code>.
</p>
<p>Поскольку привязка служб VPN может быть выполнена непосредственно системой без взаимодействия с приложениями,
клиентам VPN требуется обрабатывать новые точки доступа для постоянного подключения к VPN. Как и раньше,
службы для системы указываются фильтром намерений, соответствующим действию
<code>android.net.VpnService</code>. </p>
<p>
Пользователи могут вручную установить клиентов постоянного подключения к VPN, реализующих методы
<code>VPNService</code>, на экране настроек основного пользователя
<strong>Settings>More>Vpn</strong>.
</p>
<h2 id="accessibility_enhancements">Расширение специальных возможностей</h2>
<p>Android N теперь предлагает настройки Vision Settings непосредственно на экране приветствия при начальной установке нового устройства.
Это значительно упрощает пользователям обнаружение и настройку на своих устройствах
специальных возможностей, включая жесты увеличения, размер шрифта, размер экрана и
функцию TalkBack. </p>
<p>Благодаря более приметному расположению этих настроек пользователи
чаще будут пробовать ваше приложение с включенными специальными возможностями. Обязательно протестируйте ваше приложение с этими настройками,
включив их на экране Settings >
Accessibility.</p>
<p>Также в Android N предусмотрены службы специальных возможностей которые помогут пользователям с нарушениями двигательных функций
касаться экрана. Новый API позволяет встроить в службы такие
возможности, как отслеживание лица, отслеживание взгляда, сканирование точек и другой функционал, соответствующий потребностям
этих пользователей.</p>
<p>Дополнительную информацию можно найти в описании <code>android.accessibilityservice.GestureDescription</code>
в загружаемом <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Справочнике по API</a>.</p>
<h2 id="direct_boot">Режим Direct Boot</h2>
<p>Режим Direct Boot ускоряет загрузку устройства и позволяет зарегистрированным приложениям
сохранить ограниченную функциональность даже после непредвиденной перезагрузки.
Например, если зашифрованное устройство перезагрузится, когда пользователь спит,
уведомления о зарегистрированных предупреждениях, сообщениях и входящих вызовах будут поступать пользователю, как в обычном режиме.
Это также означает, что специальные возможности могут быть доступны сразу после перезагрузки.
</p>
<p>Режим Direct Boot использует преимущество шифрования на уровне файлов в Android N
для применения детализированных политик шифрования к данным системы и приложений.
Система использует хранилище, зашифрованное на уровне устройства, для выбранных системных данных и данных из явным образом зарегистрированных приложений.
По умолчанию для всех остальных системных данных, пользовательских данных, приложений и
данных приложений используется хранилище, зашифрованное на уровне учетной записи. </p>
<p>При загрузке система запускается в ограниченном режиме с доступом к данным, зашифрованным
на уровне устройства, и без общего доступа к приложениям и данным.
Если у вас есть компоненты, которые должны быть запущены в этом режиме, их можно зарегистрировать,
установив соответствующий флаг в манифесте. После перезагрузки система активирует зарегистрированные
компоненты с помощью рассылки намерения <code>LOCKED_BOOT_COMPLETED</code>.
Система обеспечивает доступность зарегистрированных данных приложений, зашифрованных на уровне устройства,
до разблокировки экрана. Все остальные данные остаются недоступными, пока пользователь не подтвердит свои учетную информацию на экране блокировки,
после чего данные будут расшифрованы. </p>
Дополнительная информация приведена в документе <a href="{@docRoot}preview/features/direct-boot.html">Direct Boot</a>.</p>
</p>
<h2 id="key_attestation">Аттестация ключей</h2>
<p>Аппаратные хранилища ключей обеспечивают безопасный метод создания, хранения,
и использования криптографических ключей на устройствах Android. Они защищают ключи от
ядра Linux, потенциальных уязвимостей Android и извлечения из устройств
с корневым доступом.</p>
<p>Чтобы упростить и повысить безопасность использования аппаратных хранилищ ключей
в Android N введена возможность аттестации ключей. Приложения и внешние хранилища ключей могут использовать аттестацию,
чтобы определить, является ли пара ключей RSA или EC
аппаратной, какие свойства имеет эта пара ключей и какие ограничения применяются
к ее использованию и сроку действия. </p>
<p>Приложения и службы внешних хранилищ могут запросить информацию о паре ключей
через сертификат аттестации X.509, который должен быть подписан действительным ключом
аттестации. Ключ аттестации представляет собой ключ подписи ECDSA, который
встраивается в аппаратное хранилище ключей устройства при его изготовлении на заводе.
Поэтому сертификат аттестации, подписанный действительным ключом аттестации,
подтверждает существование аппаратного хранилища ключей вместе со сведениями о парах ключей в таком хранилище.
</p>
<p>Чтобы убедиться в том, что устройство использует безопасный официальный заводской образ Android,
для аттестации ключей требуется предоставление <a class="external-link" href="https://source.android.com/security/verifiedboot/verified-boot.html#bootloader_requirements">загрузчиком</a> устройства
следующей информации о <a class="external-link" href="https://source.android.com/security/trusty/index.html">доверенной
среде выполнения (TEE)</a>:</p>
<ul>
<li>версия ОС и исправлений, установленных на устройстве;</li>
<li>открытый ключ <a href="https://source.android.com/security/verifiedboot/index.html" class="external-link">подтвержденной загрузки</a> и состояние блокировки.</li>
</ul>
<p>Дополнительная информация об аппаратном хранилище ключей содержится
в соответствующем <a href="https://source.android.com/security/keystore/" class="external-link">руководстве</a>.</p>
<p>В дополнение к аттестации ключей в Android N также добавлены ключи,
привязанные к отпечаткам пальцев, которые не отменяются при регистрации новых отпечатков.</p>
<h2 id="network_security_config">Конфигурация сетевой безопасности</h2>
<p>В Android N приложения могут безопасно настраивать поведение своих защищенных (HTTPS, TLS)
подключений, без каких-либо изменений кода, используя декларативную
<em>конфигурацию сетевой безопасности</em> вместо обычных ненадежных
программных API-интерфейсов (например, X509TrustManager).</p>
<p>Поддерживаемые возможности:</p>
<ul>
<li><b>Пользовательские якоря доверия.</b> Позволяют приложению определить доверенные
центры сертификации (ЦС) для его защищенных соединений. Например,
приложение может доверять определенным самозаверенным сертификатам или ограниченному набору общих ЦС.
</li>
<li><b>Замена при отладке.</b> Позволяет разработчику безопасно отладить
защищенные соединения своего приложения без дополнительного риска для установленной базы.
</li>
<li><b>Отказ от передачи данных открытым текстом.</b> Позволяет приложению защитить себя от
случайной передачи данных открытым текстом.</li>
<li><b>Прикрепление сертификатов.</b> Дополнительная возможность, позволяющая приложению
ограничить доверенные ключи сервера для защищенных соединений.</li>
</ul>
<p>Дополнительная информация содержится в документе <a href="{@docRoot}preview/features/security-config.html">Конфигурация сетевой безопасности</a>.
</p>
<h2 id="default_trusted_ca">Доверенный центр сертификации по умолчанию</h2>
<p>По умолчанию приложения для Android N могут доверять только системным сертификатам
и не доверяют ЦС, добавленным пользователем. Если приложению для Android N
требуется доверять пользовательским ЦС, ему следует указать в
<a href="{@docRoot}preview/features/security-config.html">конфигурации сетевой безопасности</a> эти доверенные пользовательские ЦС.
</p>
<h2 id="apk_signature_v2">Схема получения подписи APK, версия 2</h2>
<p>Класс PackageManager теперь поддерживает подтверждение приложений с использованием схемы подписи APK
версии 2. Вторая версия схемы подписи APK применяется ко всему файлу,
что существенно ускоряет подтверждение и повышает надежность, позволяя обнаруживать любые несанкционированные изменения файлов APK.
</p>
<p>Для поддержки обратной совместимости пакет APK должен быть подписан с помощью первой версии схемы
(схема подписи JAR) до того, как он будет подписан по схеме версии 2.
Подпись по схеме версии 2 не пройдет подтверждение, если APK будет подписан дополнительным сертификатом
после добавления подписи по схеме версии 2. </p>
<p>Поддержка подписи APK по схеме версии 2 будет доступна в последующих выпусках N Developer
Preview.</p>
<h2 id="scoped_directory_access">Доступ к выделенным каталогам</h2>
<p>В Android N приложения могут использовать новые API-интерфейсы для запроса доступа к конкретным каталогам <a href="{@docRoot}guide/topics/data/data-storage.html#filesExternal">внешнего хранилища</a>,
включая каталоги на съемных носителях, таких как SD-карты.
Новые API-интерфейсы значительно упрощают доступ к стандартным каталогам
внешнего хранилища, таким как <code>Pictures</code>. Например, приложения, работающие с фотографиями,
могут использовать эти API-интерфейсы вместо
<code>READ_EXTERNAL_STORAGE</code>, который разрешает доступ ко всем каталогам
хранилища или платформы Storage Access Framework, благодаря чему выполняется переход к указанному каталогу.
</p>
<p>Кроме того, новые API-интерфейсы упрощают процедуру предоставления доступа к внешнему хранилищу для приложения.
Если вы применяете новые API, система использует простой интерфейс разрешений,
в котором четко указаны каталоги, к которым приложение запрашивает доступ.
</p>
<p>Дополнительная информация содержится в документации для разработчиков
<a href="{@docRoot}preview/features/scoped-folder-access.html">Доступ к выделенным каталогам</a>.
</p>
|