• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1page.title=Android N cho Nhà phát triển
2meta.tags="preview", "androidn"
3page.tags="preview", "developer preview"
4page.image=images/cards/card-n-apis_2x.png
5@jd:body
6
7
8
9
10<div id="tb-wrapper">
11<div id="tb">
12  <h2>Các tính năng chính cho nhà phát triển</h2>
13  <ol>
14      <ul style="list-style-type:none;">
15        <li><a href="#multi-window_support">Hỗ trợ đa cửa sổ</a></li>
16        <li><a href="#notification_enhancements">Thông báo</a></li>
17        <li><a href="#jit_aot">Biên dịch JIT/AOT</a></li>
18        <li><a href="#quick_path_to_app_install">Cài đặt ứng dụng nhanh chóng</a></li>
19        <li><a href="#doze_on_the_go">Chế độ Ngủ sâu khi di chuyển</a></li>
20        <li><a href="#background_optimizations">Tối ưu hóa chạy ngầm</a></li>
21        <li><a href="#data_saver">Tiết kiệm dữ liệu</a></li>
22        <li><a href="#tile_api">API cho ô Cài đặt nhanh</a></li>
23        <li><a href="#number-blocking">Chặn số</a></li>
24        <li><a href="#call_screening">Sàng lọc cuộc gọi</a></li>
25        <li><a href="#multi-locale_languages">Bản địa và ngôn ngữ</a></li>
26        <li><a href="#icu4">API ICU4J trong Android</a></li>
27        <li><a href="#gles_32">API OpenGL ES 3.2</a></li>
28        <li><a href="#android_tv_recording">Ghi lại trên Android TV</a></li>
29        <li><a href="#android_for_work">Android cho Công việc</a></li>
30        <li><a href="#accessibility_enhancements">Trợ năng</a></li>
31        <li><a href="#direct_boot">Khởi động Trực tiếp</a></li>
32        <li><a href="#key_attestation">Chứng thực khóa</a></li>
33        <li><a href="#network_security_config">Cấu hình Bảo mật mạng</a></li>
34        <li><a href="#default_trusted_ca">CA an toàn mặc định</a></li>
35        <li><a href="apk_signature_v2">Lược đồ chữ ký số v2 cho tệp APK</a></li>
36        <li><a href="#scoped_directory_access">Truy cập thư mục theo phạm vi</a></li>
37      </ol>
38</div>
39</div>
40
41
42
43<p>Android N vẫn đang trong quá trình phát triển nhưng bây giờ bạn có thể dùng thử
44dưới dạng N Developer Preview. Các phần dưới đây sẽ nêu bật một số
45tính năng mới cho nhà phát triển. </p>
46
47<p>
48  Bạn cần xem <a href="{@docRoot}preview/behavior-changes.html">Các thay đổi Hành vi</a> để biết được
49  những phần thay đổi của nền tảng có thể ảnh hưởng đến ứng dụng của bạn, hãy xem
50  các hướng dẫn cho nhà phát triển để biết thêm về những tính năng chính và tải xuống tài liệu <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Tham khảo API</a> để biết chi tiết về
51  các API mới.
52</p>
53
54<h2 id="multi-window_support">Hỗ trợ đa cửa sổ</h2>
55
56
57<p>Trong Android N, chúng tôi sẽ đưa vào nền tảng một tính năng đa nhiệm mới
58 rất được mong đợi &mdash; hỗ trợ đa cửa sổ. </p>
59
60  <p>Giờ đây người dùng có thể nhanh chóng mở đồng thời hai ứng dụng trên màn hình. </p>
61  <ul>
62  <li>Trên điện thoại và máy tính bảng
63chạy Android N, người dùng có thể chạy hai ứng dụng song song hai bên hoặc
64  trên dưới trong chế độ chia đôi màn hình. Người dùng có thể thay đổi kích thước của ứng dụng bằng cách kéo
65thanh phân chia ở giữa. </li>
66
67<li>Trên thiết bị Android TV, các ứng dụng có thể tự đặt vào <a href="{@docRoot}preview/features/picture-in-picture.html">chế độ
68hình-trong-hình</a>, cho phép ứng dụng tiếp tục hiển thị nội dung khi người dùng duyệt web hoặc
69tương tác với ứng dụng khác. Hãy xem bên dưới để biết thêm thông tin. </li>
70  </ul>
71
72<div class="col-4of10">
73<img src="{@docRoot}images/android-7.0/mw-portrait.png" alt="" style="height:460px;padding-left:1em;" id="img-split-screen" />
74<p class="img-caption">
75  <strong>Hình 1.</strong> Các ứng dụng chạy trong chế độ chia màn hình.
76</p>
77  </div>
78
79<p>Đặc biệt là trên máy tính bảng và các thiết bị màn hình lớn khác, việc hỗ trợ đa cửa sổ
80cho phép bạn mang lại những cách thức mới thu hút người dùng. Thậm chí bạn còn có thể cho phép kéo thả trong
81ứng dụng để người dùng kéo nội dung một cách thuận tiện vào hoặc ra ngoài ứng dụng của bạn &mdash; đây là một cách
82nâng cao trải nghiệm của người dùng rất hiệu quả. </p>
83
84<p>Thêm tính năng hỗ trợ đa màn hình vào ứng dụng của bạn và cấu hình cách thức
85xử lý hiển thị đa cửa sổ là điều rất đơn giản. Ví dụ, bạn có thể chỉ định kích thước
86tối thiểu cho phép của hoạt động, ngăn người dùng thay đổi kích thước của hoạt động nhỏ hơn
87kích thước đó. Bạn cũng có thể vô hiệu hóa hiển thị đa cửa sổ cho ứng dụng của mình, giúp
88  đảm bảo hệ thống sẽ chỉ hiển thị ứng dụng của bạn ở chế độ toàn màn hình.</p>
89
90<p>
91  Để biết thêm thông tin, hãy xem tài liệu cho nhà phát triển <a href="{@docRoot}preview/features/multi-window.html">Hỗ trợ đa cửa sổ</a>
92.
93</p>
94
95<h2 id="notification_enhancements">Cải tiến thông báo</h2>
96
97<p>Chúng tôi đã thiết kế lại thông báo trong Android N để chúng được sử dụng dễ dàng và nhanh
98hơn. Một số các thay đổi bao gồm:</p>
99
100<ul>
101  <li>
102    <strong>Cập nhật Mẫu</strong>: Chúng tôi đã cập nhật các mẫu thông báo để
103  tạo điểm nhấn mới cho ảnh gây ấn tượng và ảnh đại diện. Nhà phát triển sẽ có thể
104   tận dụng các mẫu mới nhưng chỉ cần thực hiện một số chỉnh sửa nhỏ trong mã nguồn của họ.
105  </li>
106
107  <li>
108    <strong>Thông báo gộp</strong>: Hệ thống có thể nhóm các tin nhắn
109  lại với nhau, ví dụ như theo chủ đề tin nhắn và hiển thị thành nhóm. Người dùng có thể
110   thực hiện các thao tác như Hủy hoặc Lưu trữ chúng ngay tại chỗ. Nếu bạn từng
111   triển khai các thông báo cho Android Wear thì bạn đã làm quen với
112   mô hình này.
113  </li>
114
115  <li>
116    <strong>Trả lời trực tiếp</strong>: Đối với những ứng dụng giao tiếp theo thời gian thực,
117   hệ thống Android sẽ hỗ trợ trả lời ngay tại chỗ để người dùng có thể nhanh chóng phản hồi lại
118   một tin nhắn SMS hoặc tin nhắn văn bản trực tiếp bên trong giao diện thông báo đó.
119  </li>
120
121  <li>
122    <strong>Dạng xem tùy chỉnh</strong>: Hai API mới cho phép bạn sử dụng các trang trí
123   hệ thống như tiêu đề và hành động của thông báo khi sử dụng các dạng xem
124   tùy chỉnh trong thông báo.
125  </li>
126</ul>
127
128<div class="col-4of12">
129  <img src="{@docRoot}images/android-7.0/notifications-1.png" alt="" style="padding:.5em;max-width:226px">
130</div>
131
132<div class="col-4of12">
133  <img src="{@docRoot}images/android-7.0/notifications-3.png" alt="" style="padding:.5em;max-width:226px">
134</div>
135
136<div class="col-4of12">
137  <img src="{@docRoot}images/android-7.0/notifications-2.png" alt="" style="padding:.5em;max-width:226px">
138</div>
139
140
141<p class="img-caption">
142  <strong>Hình 2.</strong> Thông báo gộp và trả lời trực tiếp.
143</p>
144
145<p>Hãy xem
146  hướng dẫn về <a href="{@docRoot}preview/features/notification-updates.html">Thông báo</a>
147 để biết cách triển khai các tính năng mới này.</p>
148
149
150
151<h2 id="jit_aot">Biên dịch JIT/AOT theo cấu hình</h2>
152
153<p>Trong Android N, chúng tôi đã bổ sung một trình biên dịch Just in Time (JIT) có mã được cấu hình cho
154ART, cho phép nó nâng cao hiệu năng của các ứng dụng Android tức thì khi
155chạy. Trình biên dịch JIT bổ trợ thêm cho trình biên dịch Ahead of Time (AOT) của ART
156và giúp cải hiện hiệu năng thời gian chạy, tiết kiệm không gian lưu trữ và tăng tốc độ các bản cập nhật của
157ứng dụng và cập nhật của hệ thống.</p>
158
159<p>Biên dịch theo cấu hình cho phép ART quản lý quá trình biên dịch AOT/JIT của từng ứng dụng
160tùy theo sử dụng thực tế cũng như các điều kiện trên thiết bị. Ví
161dụ, ART sẽ duy trì một cấu hình cho các phương thức hay dùng nhất của mỗi ứng dụng và có thể biên dịch trước
162rồi tạo bộ đệm cho các phương thức đó để có hiệu năng cao nhất. Những phần khác của ứng dụng
163sẽ được giữ nguyên không biên dịch cho đến khi chúng thực sự được sử dụng.</p>
164
165<p>Bên cạnh nâng cao hiệu năng cho các phần chính của ứng dụng, quá trình biên dịch
166theo cấu hình còn giúp giảm tổng lượng RAM được sử dụng của ứng dụng, bao gồm cả các
167tệp nhị phân liên quan. Tính năng này đặc biệt quan trọng trên các thiết bị ít bộ nhớ.</p>
168
169<p>ART sẽ quản lý quá trình biên dịch theo cấu hình bằng cách giảm tối thiểu tác động đến
170pin của thiết bị. Nó sẽ tiến hành quá trình biên dịch trước chỉ khi nào thiết bị nhàn rỗi và
171đang sạc, giúp tiết kiệm thời gian và pin bằng cách thực hiện công việc đó trước.</p>
172
173<h2 id="quick_path_to_app_install">Cài đặt ứng dụng nhanh chóng</h2>
174
175<p>Một trong những lợi ích dễ thấy nhất của trình biên dịch JIT của ART là tốc độ cài đặt
176ứng dụng và cập nhật hệ thống. Ngay cả các ứng dụng lớn cần vài phút để
177tối ưu và cài đặt trong Android 6.0 thì giờ đây có thể cài đặt chỉ trong một vài
178giây. Các cập nhật cho hệ thống cũng sẽ nhanh hơn vì không còn bước tối ưu hóa nữa. </p>
179
180<h2 id="doze_on_the_go">Chế độ Ngủ sâu khi di chuyển...</h2>
181
182<p>Chế độ Ngủ sâu đã được giới thiệu trong Android 6.0. Đây là một chế độ của hệ thống giúp tiết kiệm pin bằng cách trì hoãn
183các hoạt động CPU và mạng của ứng dụng khi thiết bị đang nhàn rỗi, ví dụ như khi thiết bị
184đang nằm trên bàn hoặc trong ngăn kéo. </p>
185
186<p>Giờ đây Chế độ Ngủ sâu trong Android N đã được cải tiến thêm và tiết kiệm pin ngay cả khi đang di chuyển.
187Bất kỳ khi nào màn hình đang tắt trong một khoảng thời gian và thiết bị không được cắm sạc thì
188Chế độ Ngủ sâu sẽ áp dụng tập con của các hạn chế CPU và mạng quen thuộc đối với các ứng dụng.
189Điều này có nghĩa là người dùng có thể tiết kiệm pin ngay cả khi đang mang thiết bị trong túi
190của họ.</p>
191
192
193<img src="/preview/images/doze-diagram-1.png" alt="" id="figure1" />
194<p class="img-caption">
195  <strong>Hình 3.</strong> Chế độ Ngủ sâu đang áp dụng
196   các hạn chế để cải thiện thời lượng pin ngay cả khi thiết bị không được đặt một chỗ.
197</p>
198
199
200<p>Sau một khoảng thời gian ngắn khi màn hình tắt và thiết bị chỉ chạy bằng nguồn pin, Chế độ Ngủ sâu
201sẽ hạn chế truy cập mạng và trì hoãn các tác vụ, đồng bộ. Trong các khoảng thời gian
202bảo trì ngắn, các ứng dụng sẽ được phép truy cập mạng và mọi tác vụ/đồng bộ
203bị trì hoãn sẽ được thực thi. Bật màn hình hoặc cắm sạc vào thiết bị sẽ đưa
204thiết bị thoát khỏi Chế độ Ngủ sâu.</p>
205
206<p>Khi để thiết bị nằm một chỗ lần nữa với màn hình được tắt và chạy bằng pin trong một
207khoảng thời gian thì Chế độ Ngủ sâu sẽ áp dụng toàn bộ các hạn chế CPU và mạng đối với {@link
208android.os.PowerManager.WakeLock}, báo thức {@link android.app.AlarmManager} và quét
209GPS/Wi-Fi.</p>
210
211<p>Bạn có thể áp dụng các thực hành tốt nhất tương tự để điều chỉnh ứng dụng của mình cho Chế độ Ngủ sâu cho dù
212thiết bị có đang di chuyển hay đứng yên. Do đó, nếu bạn đã cập nhật ứng dụng để xử lý
213Chế độ Ngủ sâu một cách tinh tế thì bạn hoàn toàn yên tâm. Nếu không, hãy tiến hành <a href="{@docRoot}training/monitoring-device-state/doze-standby.html#assessing_your_app">làm cho
214 ứng dụng thích ứng với Chế độ Ngủ sâu</a> ngay.</p>
215
216<h2 id="background_optimizations">Dự án Svelte: Tối ưu hóa chạy ngầm</h2>
217
218<p>Dự án Svelte là một nỗ lực liên tục nhằm tối giảm sử dụng RAM của hệ thống và các ứng dụng
219trên khắp hệ sinh thái các thiết bị Android. Trong Android N, dự án
220Svelte tập trung vào việc tối ưu hóa cách thức các ứng dụng chạy ngầm. </p>
221
222<p>Xử lý chạy ngầm là một phần quan trọng của hầu hết các ứng dụng. Khi sử dụng đúng cách, nó
223có thể giúp cho trải nghiệm người dùng của bạn trở nên tuyệt vời &mdash; tức thì, nhanh chóng và nhận biết được bối cảnh.
224Khi không sử dụng đúng cách, xử lý chạy ngầm có thể tiêu tốn RAM (và
225pin) một cách không cần thiết cũng như ảnh hưởng đến hiệu năng hệ thống cho các ứng dụng khác. </p>
226
227<p>Kể từ Android 5.0, {@link android.app.job.JobScheduler} đã trở thành
228cách thức được ưu tiên để thực hiện công việc chạy ngầm thích hợp
229cho người dùng. Ứng dụng có thể lên lịch cho các tác vụ trong khi cho phép hệ thống tối ưu hóa dựa trên
230các điều kiện về bộ nhớ, nguồn điện và kết nối. JobScheduler đem lại khả năng kiểm soát và
231sự đơn giản, và chúng tôi muốn mọi ứng dụng đều sử dụng nó. </p>
232
233<p>
234  Một giải pháp hiệu quả khác là <a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
235  <code>GCMNetworkManager</code></a>, thuộc một phần của Dịch vụ Google Play, cho phép
236 lên lịch tác vụ tương tự với khả năng tương thích trên các phiên bản Android
237  cũ.
238</p>
239
240<p>Chúng tôi đang tiếp tục kế thừa <code>JobScheduler</code> và
241<code>GCMNetworkManager</code> để đáp ứng nhiều hơn
242các trường hợp sử dụng của bạn &mdash; ví dụ như trong Android N giờ đây bạn đã có thể lên lịch cho công việc
243chạy ngầm dựa vào những thay đổi trong các Trình cung cấp Nội dung. Đồng thời, chúng tôi đang tiến hành
244loại bỏ một số mẫu cũ có thể làm giảm hiệu năng hệ thống,
245đặc biệt trên các thiết bị ít bộ nhớ.</p>
246
247<p>Trong Android N, chúng tôi sẽ loại bỏ ba truyền phát không biểu thị được sử dụng phổ biến &mdash;
248{@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, {@link
249  android.hardware.Camera#ACTION_NEW_PICTURE} và {@link
250  android.hardware.Camera#ACTION_NEW_VIDEO} &mdash; bởi vì các truyền phát này có thể đánh thức
251các tiến trình chạy ngầm của nhiều ứng dụng cùng lúc và sử dụng quá mức bộ nhớ và pin. Nếu
252ứng dụng của bạn đang nhận các truyền phát này thì hãy tận dụng N Developer Preview để
253  chuyển sang <code>JobScheduler</code> và các API liên quan khác thay thế. </p>
254
255<p>
256  Hãy xem tài liệu <a href="{@docRoot}preview/features/background-optimization.html">Tối ưu hóa
257 Chạy ngầm</a> để biết thêm chi tiết.
258</p>
259
260
261<h2 id="data_saver">Tiết kiệm dữ liệu</h2>
262
263<div class="col-5of12" style="margin-right:1.5em;">
264<img src="{@docRoot}images/android-7.0/datasaver.png" style="border:2px solid #ddd">
265
266<p class="img-caption" style="padding-right:2em;">
267  <strong>Hình 4.</strong> Tính năng Tiết kiệm dữ liệu trong mục Settings.
268</p>
269  </div>
270
271<p>Trong vòng đời của một thiết bị di động thì chi phí gói cước dữ liệu di động về cơ bản
272sẽ cao hơn giá thành của chính thiết bị đó. Đối với nhiều người dùng, dữ liệu di động là một
273tài nguyên đắt đỏ họ muốn sử dụng tiết kiệm. </p>
274
275<p>Android N đã đưa vào chế độ Tiết kiệm dữ liệu, một dịch vụ hệ thống mới giúp giảm
276sử dụng dữ liệu di động, cho dù là chuyển vùng, gần đến kỳ thanh toán cước,
277hoặc trên một gói dữ liệu trả trước khiêm tốn. Tiết kiệm dữ liệu cho người dùng kiểm soát cách thức ứng dụng
278sử dụng dữ liệu di động và cho phép nhà phát triển cung cấp dịch vụ hiệu quả hơn khi Tiết kiệm
279dữ liệu được bật. </p>
280
281<p>Khi người dùng bật Tiết kiệm dữ liệu trong <strong>Settings</strong> và thiết bị đang
282sử dụng một mạng có đo lưu lượng thì hệ thống sẽ chặn việc sử dụng dữ liệu chạy ngầm và truyền tín hiệu cho ứng dụng
283để sử dụng ít dữ liệu hơn ở tiền cảnh bất cứ khi nào có thể &mdash; chẳng hạn như bằng cách giới hạn
284bit rate để truyền phát, giảm chất lượng hình ảnh, trì hoãn tạo trước bộ đệm để tối ưu,
285v.v. Người dùng có thể lập danh sách các ứng dụng cụ thể được phép sử dụng
286dữ liệu có tính lưu lượng được chạy ngầm ngay cả khi Tiết kiệm dữ liệu được bật.</p>
287
288<p>Android N mở rộng lớp {@link android.net.ConnectivityManager} để cung cấp cho các ứng dụng một
289cách thức <a href="{@docRoot}preview/features/data-saver.html#status">truy xuất
290các tùy chọn Tiết kiệm dữ liệu của người dùng</a> và <a href="{@docRoot}preview/features/data-saver.html#monitor-changes">theo dõi
291các thay đổi của tùy chọn</a>. Mọi ứng dụng cần kiểm tra xem người dùng đó đã bật Tiết kiệm
292Dữ liệu hay chưa và cố gắng giới hạn sử dụng dữ liệu chạy ở tiền cảnh và chạy ngầm.</p>
293
294
295<h2 id="tile_api">API cho ô Cài đặt nhanh</h2>
296
297
298<div style="float:right;max-width:320px">
299<img src="{@docRoot}images/android-7.0/quicksettings.png" style="padding-left:1.5em;">
300
301<p class="img-caption" style="padding-left:2em;">
302  <strong>Hình 5.</strong> Các ô Cài đặt nhanh trong vùng hiển thị thông báo.
303</p>
304
305
306  </div><p>Cài đặt nhanh là một cách phổ biến và đơn giản để hiển thị các cài đặt và hành động quan trọng,
307trực tiếp từ khu vực thông báo. Trong Android N, chúng tôi đã mở rộng phạm vi của
308Cài đặt nhanh để khiến nó trở nên hữu ích và thuận tiện hơn nữa. </p>
309
310<p>Chúng tôi đã thêm không gian cho các ô Cài đặt nhanh mà người dùng có thể
311truy cập trên toàn bộ một vùng hiển thị được phân trang bằng cách vuốt sang trái hoặc phải. Chúng tôi cũng
312cho người dùng kiểm soát những ô Cài đặt nhanh nào sẽ xuất hiện và vị trí xuất hiện
313của chúng &mdash; người dùng chỉ cần kéo và thả để thêm hoặc di chuyển các ô. </p>
314
315<p>Đối với nhà phát triển, Android N cũng bổ sung một API mới cho phép định nghĩa các ô
316  Cài đặt nhanh của riêng bạn giúp người dùng dễ dàng truy cập tới các điều khiển và hành động quan trọng trong ứng dụng của bạn.</p>
317
318<p>
319  Các ô Cài đặt nhanh được dành riêng cho các điều khiển hoặc hành động
320   khẩn cấp hoặc thường xuyên được sử dụng, không nên dùng làm lối tắt để
321   khởi chạy một ứng dụng.
322</p>
323
324<p>
325  Một khi đã định nghĩa các ô của mình bạn có thể làm nổi chúng lên trước người dùng để họ có thể thêm
326  các ô này vào Cài đặt nhanh bằng cách chỉ cần kéo và thả.
327</p>
328
329<p>
330  Để biết thêm thông tin về việc tạo một ô ứng dụng, hãy xem
331  <code>android.service.quicksettings.Tile</code> trong tài liệu <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Tham khảo API</a> có thể tải xuống.
332</p>
333
334
335
336<h2 id="number-blocking">Chặn số</h2>
337
338<p>Android N đã hỗ trợ chặn số điện thoại trong nền tảng này và cung cấp một
339 API khuôn khổ cho phép các nhà cung cấp dịch vụ duy trì một danh sách số bị chặn.
340Ứng dụng SMS mặc định, ứng dụng gọi điện mặc định và các ứng dụng của nhà cung cấp có thể đọc và
341ghi vào danh sách số bị chặn. Các ứng dụng khác không thể truy cập vào danh sách này.</p>
342
343<p>Thông qua việc đưa chặn số thành một tính năng tiêu chuẩn của nền tảng, Android sẽ cung cấp
344cách thức thống nhất để các ứng dụng hỗ trợ chặn số trên một loạt các
345thiết bị. Những lợi ích mà ứng dụng có thể tận dụng gồm:</p>
346
347<ul>
348  <li> Số bị chặn cuộc gọi cũng sẽ bị chặn tin nhắn văn bản
349  <li> Số bị chặn có thể được duy trì qua các lần thiết lập lại và qua nhiều thiết bị thông qua tính năng Sao lưu &amp;
350Khôi phục
351  <li> Nhiều ứng dụng có thể sử dụng cùng một danh sách số bị chặn
352</ul>
353
354<p>Ngoài ra, việc tích hợp ứng dụng của nhà mạng thông qua Android cũng đồng nghĩa là các nhà mạng có thể
355đọc danh sách số bị chặn trên thiết bị và thực hiện chặn số từ phía nhà cung cấp dịch vụ
356cho người dùng để ngăn các cuộc gọi và tin nhắn văn bản không mong muốn tiếp cận người dùng
357thông qua bất kỳ phương tiện nào, ví dụ như điểm cuối VOIP hoặc điện thoại chuyển cuộc gọi.</p>
358
359<p>
360  Để biết thêm thông tin, hãy xem <code>android.provider.BlockedNumberContract</code>
361  trong tài liệu <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Tham khảo
362 API</a> có thể tải xuống.
363</p>
364
365<h2 id="call_screening">Sàng lọc cuộc gọi</h2>
366
367<p>
368  Android N cho phép ứng dụng gọi điện mặc định sàng lọc các cuộc gọi đến. Ứng dụng
369  gọi điện thực hiện điều này bằng cách thực thi <code>CallScreeningService</code> mới,
370  cho phép ứng dụng gọi điện thực hiện một số hành động dựa trên
371   {@link android.telecom.Call.Details Call.Details} của cuộc gọi đến như:
372</p>
373
374<ul>
375  <li> Từ chối cuộc gọi đến
376  <li> Không cho phép cuộc gọi lưu trong nhật ký cuộc gọi
377  <li> Không hiển thị thông báo về cuộc gọi cho người dùng
378</ul>
379
380<p>
381  Để biết thêm thông tin, hãy xem <code>android.telecom.CallScreeningService</code>
382  trong tài liệu <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Tham khảo
383 API</a> có thể tải xuống.
384</p>
385
386
387<h2 id="multi-locale_languages">Hỗ trợ đa bản địa, thêm nhiều ngôn ngữ</h2>
388
389
390<p>Android N cho phép người dùng chọn <strong>đa bản địa</strong> trong Settings,
391để hỗ trợ tốt hơn cho các trường hợp song ngữ. Các ứng dụng có thể sử dụng
392một API mới để truy xuất các bản địa được chọn của người dùng và sau đó mang đến
393trải nghiệm người dùng tinh tế hơn cho người dùng đa bản địa &mdash; như hiển thị các kết quả tìm kiếm bằng
394nhiều ngôn ngữ và không yêu cầu dịch các trang web sang ngôn ngữ mà
395người dùng đã biết.</p>
396
397<p>Ngoài hỗ trợ đa bản địa, Android N cũng mở rộng danh sách các ngôn ngữ
398khả dụng đối với người dùng. Nền tảng này cung cấp hơn 25 biến thể cho các ngôn ngữ
399được sử dụng phổ biến như Tiếng Anh, Tây Ban Nha, Pháp và Ả-rập. Nó cũng bổ sung hỗ trợ
400một phần cho hơn 100 ngôn ngữ mới.</p>
401
402<p>Các ứng dụng có thể truy xuất danh sách bộ bản địa theo người dùng bằng cách gọi <code>LocaleList.GetDefault()</code>. Để hỗ trợ số lượng bản địa mở rộng, Android N đang thay đổi cách thức
403phân giải tài nguyên. Hãy đảm bảo bạn kiểm tra và xác minh rằng ứng dụng của mình
404đang hoạt động như mong muốn theo lô-gic phân giải tài nguyên mới này.</p>
405
406<p>Để tìm hiểu về hành vi phân giải tài nguyên mới và các thực hành tốt nhất bạn nên
407thực hiện theo, hãy xem mục <a href="{@docRoot}preview/features/multilingual-support.html">Hỗ trợ đa ngôn ngữ</a>.</p>
408
409<h2 id="icu4">API ICU4J trong Android</h2>
410
411<p>
412  Android N đã cung cấp một tập nhỏ các API <a href="http://site.icu-project.org/">ICU4J</a> trong khuôn khổ Android thuộc
413  gói <code>android.icu</code>. Việc chuyển nhập sang rất dễ dàng và hầu hết chỉ liên quan đến
414  việc đổi từ không gian tên <code>com.java.icu</code> thành
415  <code>android.icu</code>. Nếu bạn đang sử dụng gói ICU4J trong ứng dụng
416  của mình thì việc chuyển đổi sang các API <code>android.icu</code> được cung cấp trong khuôn khổ
417   Android có thể giúp làm giảm đáng kể kích thước của tệp APK.
418</p>
419
420<p>
421  Để tìm hiểu thêm về API ICU4J trên Android, hãy xem <a href="{@docRoot}preview/features/icu4j-framework.html">Hỗ trợ ICU4J</a>.
422</p>
423
424
425
426<h2 id="gles_32">API OpenGL&trade; ES 3.2</h2>
427
428<p>Android N bổ sung các giao diện khuôn khổ và hỗ trợ nền tảng cho OpenGL ES 3.2, bao gồm:</p>
429
430<ul>
431  <li> Mọi phần mở rộng trong <a class="external-link" href="https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt">Gói Tiện ích mở rộng Android</a></a> (AEP) ngoại trừ <code>EXT_texture_sRGB_decode</code>
432  <li> Bộ đệm khung hình dấu chấm động cho HDR và tạo bóng trì hoãn.
433  <li> Các lệnh vẽ BaseVertex cho phép chia gói và truyền phát hiệu quả hơn.
434  <li> Kiểm soát truy cập bộ đệm mạnh mẽ để giảm phí tổn quản lý của WebGL.
435</ul>
436
437<p>API khuôn khổ cho OpenGL ES 3.2 trên Android N được cung cấp với lớp
438<code>GLES32</code>. Khi sử dụng OpenGL ES 3.2, hãy đảm bảo khai báo
439yêu cầu trong tệp bản kê khai của bạn bằng thẻ <code>&lt;uses-feature&gt;</code> và
440thuộc tính <code>android:glEsVersion</code>. </p>
441
442<p>Để biết thông tin về sử dụng OpenGL ES, bao gồm cách kiểm tra phiên bản
443 OpenGL ES được hỗ trợ của thiết bị tại thời gian chạy, hãy xem mục <a href="{@docRoot}guide/topics/graphics/opengl.html">Hướng dẫn API OpenGL ES</a>.</p>
444
445
446<h2 id="android_tv_recording">Ghi lại trên Android TV</h2>
447
448<p>Android N bổ sung khả năng ghi và phát lại nội dung từ các dịch vụ
449nguồn vào của Android TV thông qua các API ghi lại. Được xây dựng dựa trên các API
450chuyển dịch thời gian sẵn có, các dịch vụ nguồn vào TV có thể kiểm soát dữ liệu của kênh nào được phép ghi lại, cách thức
451lưu trữ các phiên được ghi lại cũng như quản lý tương tác của người dùng với nội dung ghi lại. </p>
452
453<p>Để biết thêm thông tin, hãy xem <a href="{@docRoot}preview/features/tv-recording-api.html">API ghi lại của Android TV</a>.</p>
454
455
456<h2 id="android_for_work">Android cho Công việc</h2>
457
458<p>Android cho Công việc bổ sung nhiều tính năng mới và các API cho thiết bị chạy Android N.
459Dưới đây là một số điểm nổi bật &mdash; để xem danh sách đầy đủ các cập nhật của Android N
460liên quan đến Android cho Công việc, vui lòng xem Các thay đổi của Android cho Công việc.</p>
461
462<h3 id="work_profile_security_challenge">Thử thách bảo mật cấu hình công việc </h3>
463
464<p>
465  Người sở hữu cấu hình có thể chỉ định một thử thách bảo mật riêng cho các ứng dụng đang chạy trong
466  cấu hình công việc. Thử thách công việc được hiển thị khi người dùng cố gắng mở
467  bất kỳ ứng dụng công việc nào. Hoàn tất thành công thử thách bảo mật sẽ mở khóa
468  cấu hình công việc và giải mã nó nếu cần. Đối với người sở hữu cấu hình,
469  <code>ACTION_SET_NEW_PASSWORD</code> sẽ yêu cầu người dùng đặt một thử thách
470  công việc và <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> sẽ yêu cầu
471  người dùng đặt khóa thiết bị.
472</p>
473
474<p>
475  Người sở hữu cấu hình có thể đặt các chính sách mật khẩu riêng biệt cho thử thách công việc
476  (như độ dài mã PIN cần thiết hoặc có thể sử dụng dấu vân tay
477   để mở khóa cấu hình hay không) bằng <code>setPasswordQuality()</code>,
478 <code>setPasswordMinimumLength()</code> và các phương thức liên quan. Người sở hữu
479  cấu hình cũng có thể cài khóa thiết bị bằng thực thể <code>DevicePolicyManager</code>
480 được trả về bởi phương thức <code>getParentProfileInstance()</code> mới.
481  Ngoài ra, người sở hữu cấu hình có thể tùy chỉnh màn hình xác thực thông tin cho
482  thử thách công việc bằng các phương thức <code>setOrganizationColor()</code> và
483   <code>setOrganizationName()</code> mới.
484</p>
485<h3 id="turn_off_work">Tắt công việc </h3>
486
487<p>Trên một thiết bị có cấu hình công việc, người dùng có thể bật hoặc tắt chế độ công việc. Khi chế độ công việc được
488tắt người dùng được quản lý sẽ tạm thời bị tắt, khiến vô hiệu hóa các ứng dụng
489cấu hình công việc, đồng bộ chạy ngầm và các thông báo. Điều này bao gồm cả ứng dụng
490của người sở hữu cấu hình. Khi chế độ công việc bị tắt, hệ thống sẽ hiển thị biểu tượng
491trạng thái liên tục để nhắc người dùng đó rằng họ không thể khởi chạy các ứng dụng công việc. Trình khởi chạy
492sẽ chỉ báo rằng các ứng dụng và widget công việc không khả dụng. </p>
493
494<h3 id="always_on_vpn">VPN luôn bật </h3>
495
496<p>Người sở hữu thiết bị và người sở hữu cấu hình có thể đảm bảo rằng những ứng dụng công việc luôn kết nối
497thông qua một VPN chỉ định. Hệ thống sẽ tự động khởi động VPN đó sau khi
498thiết bị khởi động.</p>
499
500<p>
501  Các phương thức <code>DevicePolicyManager</code> mới gồm
502  <code>setAlwaysOnVpnPackage()</code> và
503  <code>getAlwaysOnVpnPackage()</code>.
504</p>
505
506<p>Do các dịch vụ VPN có thể được gắn kết trực tiếp bởi hệ thống mà không cần tương tác
507của ứng dụng, các máy khách VPN cần xử lý các điểm bắt đầu cho VPN luôn bật. Giống
508trước đây, các dịch vụ được chỉ định tới hệ thống bằng một bộ lọc ý định phù hợp với
509hành động <code>android.net.VpnService</code>. </p>
510
511<p>
512  Người dùng cũng có thể đặt thủ công các máy khách VPN luôn bật có cài đặt các phương thức
513   <code>VPNService</code> trong người dùng chính bằng
514  <strong>Settings&gt;More&gt;Vpn</strong>.
515</p>
516
517<h2 id="accessibility_enhancements">Cải tiến trợ năng</h2>
518
519<p>Android N nay đã hỗ trợ Cài đặt Khả năng nhìn trực tiếp trên màn hình Chào mừng khi thiết lập
520thiết bị mới. Điều này giúp người dùng rất dễ dàng khám phá và cấu hình
521các tính năng trợ năng trên thiết bị của họ, bao gồm cử chỉ phóng đại, cỡ
522phông chữ, kích thước hiển thị và TalkBack. </p>
523
524<p>Với các tính năng trợ năng được bố trí ngày càng dễ thấy hơn, khi được bật
525khả năng người dùng sẽ thử ứng dụng của bạn sẽ cao hơn. Hãy đảm bảo bạn kiểm thử ứng dụng của mình
526trước với các cài đặt này được bật. Bạn có thể bật chúng trong Settings &gt;
527Accessibility.</p>
528
529<p>Ngoài ra, trong Android N, các dịch vụ trợ năng đã có thể trợ giúp người dùng bị các tổn thương
530vận động chạm vào màn hình. API mới cho phép xây dựng các dịch vụ với những
531tính năng như theo dõi chuyển động của khuôn mặt, theo dõi chuyển động của mắt, quét điểm, v.v. nhằm
532đáp ứng nhu cầu những người dùng này.</p>
533
534<p>Để biết thêm thông tin, hãy xem <code>android.accessibilityservice.GestureDescription</code>
535	  trong tài liệu <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Tham khảo API</a> có thể tải xuống.</p>
536
537
538<h2 id="direct_boot">Khởi động Trực tiếp</h2>
539
540<p>Khởi động Trực tiếp cải thiện thời gian khởi động của thiết bị và cho phép các ứng dụng
541đã đăng ký có chức năng hạn chế ngay cả sau khi khởi động lại ngoài dự kiến.
542Ví dụ, nếu một thiết bị được mã hóa khởi động lại khi người dùng đang ngủ thì
543báo thức, tin nhắn và các cuộc gọi đến đã đăng ký có thể tiếp tục thông báo
544cho người dùng như thường lệ. Điều này cũng có nghĩa là các dịch vụ trợ năng cũng sẽ
545   khả dụng ngay sau khi khởi động xong.</p>
546
547<p>Khởi động Trực tiếp sử dụng mã hóa theo tệp trong Android N
548để bật các chính sách mã hóa chi tiết cho cả dữ liệu của hệ thống và ứng dụng.
549Hệ thống sẽ sử dụng một bộ lưu trữ mã hóa thiết bị cho dữ liệu hệ thống được chọn và dữ liệu ứng dụng
550đã đăng ký công khai. Theo mặc định, một bộ lưu trữ mã hóa thông tin xác thực sẽ được sử dụng cho mọi
551   dữ liệu hệ thống, dữ liệu người dùng, ứng dụng và dữ liệu của ứng dụng khác. </p>
552
553<p>Trong quá trình khởi động, hệ thống sẽ khởi động vào chế độ hạn chế và chỉ có quyền truy cập tới
554dữ liệu mã hóa thiết bị mà thôi, và không có quyền truy cập thông thường tới ứng dụng hoặc dữ liệu.
555Nếu bạn có các thành phần muốn chạy trong chế độ này thì bạn có thể đăng ký
556chúng bằng cách đặt cờ trong bản kê khai. Sau khi khởi động, hệ thống sẽ kích hoạt
557các thành phần đã đăng ký bằng cách truyền phát ý định <code>LOCKED_BOOT_COMPLETED</code>
558. Hệ thống sẽ đảm bảo cho dữ liệu mã hóa thiết bị đã đăng ký sẽ khả dụng
559trước khi mở khóa. Mọi dữ liệu khác sẽ không khả dụng cho tới khi Người dùng xác nhận thông tin xác thực trên màn hình khóa
560   của họ để giải mã nó. </p>
561
562Để biết thêm thông tin, hãy xem <a href="{@docRoot}preview/features/direct-boot.html">Khởi động Trực tiếp</a>.</p>
563</p>
564
565
566<h2 id="key_attestation">Chứng thực khóa</h2>
567
568<p>Các bộ lưu trữ khóa dựa trên phần cứng cung cấp một phương thức an toàn hơn rất nhiều để tạo, lưu trữ,
569và sử dụng các khóa mật mã trên thiết bị Android. Chúng bảo vệ các khóa trước
570nhân Linux, trước các lỗ hổng bảo mật tiềm tàng của Android và trước việc trích xuất
571từ các máy bị giành quyền điều khiển và bị can thiệp vào các tệp hệ thống (máy bị root).</p>
572
573<p>Android N đã đưa ra tính năng Chứng thực khóa để sử dụng các bộ lưu trữ khóa dựa trên phần cứng một cách
574 dễ dàng và bảo mật hơn. Các ứng dụng và dịch vụ không thuộc thiết bị có thể sử dụng Chứng thực
575khóa để xác định chắc chắn xem một cặp khóa RSA hoặc EC có
576dựa trên phần cứng hay không, các đặc điểm của cặp khóa đó là gì và
577  các ràng buộc nào được áp dụng cho việc sử dụng và tính hợp lệ của cặp khóa đó. </p>
578
579<p>Các ứng dụng và dịch vụ không thuộc thiết bị có thể yêu cầu thông tin về một cặp khóa
580thông qua chứng chỉ chứng thực X.509. Chứng chỉ này phải được ký bởi một khóa
581chứng thực hợp lệ. Khóa chứng thực là một khóa ký ECDSA, được
582đưa vào bộ lưu trữ khóa dựa trên phần cứng của thiết bị tại nhà máy.
583Do đó, một chứng chỉ chứng thực được ký bởi khóa
584chứng thực hợp lệ sẽ xác nhận sự tồn tại của bộ lưu trữ khóa dựa trên phần cứng, kèm theo
585   chi tiết về các cặp khóa trong bộ lưu trữ khóa đó.</p>
586
587<p>Để chắc chắn thiết bị đang sử dụng ảnh
588Android bảo mật, chính thức từ nhà máy, Chứng thực khóa yêu cầu <a class="external-link" href="https://source.android.com/security/verifiedboot/verified-boot.html#bootloader_requirements">bootloader</a>
589 của thiết bị cung cấp thông tin sau cho <a class="external-link" href="https://source.android.com/security/trusty/index.html">Môi trường Thực thi
590  An toàn (TEE)</a>:</p>
591
592<ul>
593<li>Phiên bản HĐH và cấp vá lỗi được cài đặt trên thiết bị</li>
594<li>Khóa công khai <a href="https://source.android.com/security/verifiedboot/index.html" class="external-link">Khởi động được xác thực</a> và trạng thái khóa</li>
595  </ul>
596
597<p>Để biết thêm thông tin về tính năng bộ lưu trữ khóa dựa trên phần cứng,
598hãy xem hướng dẫn <a href="https://source.android.com/security/keystore/" class="external-link">Bộ lưu trữ khóa dựa trên phần cứng</a>.</p>
599
600<p>Ngoài Chứng thực khóa, Android N cũng giới thiệu
601   các khóa dựa vào vân tay mà không được thu hồi khi đăng ký vân tay.</p>
602
603<h2 id="network_security_config">Cấu hình Bảo mật mạng</h2>
604
605<p>Trong Android N, các ứng dụng có thể tùy biến hành vi của các kết nối
606bảo mật (HTTPS, TLS) của chúng một cách an toàn mà không cần chỉnh sửa mã nhờ sử dụng khai báo
607<em>Cấu hình Bảo mật mạng</em> thay vì sử dụng các API lập trình truyền thống
608dễ xảy ra lỗi (vd: X509TrustManager).</p>
609
610  <p>Các tính năng được hỗ trợ:</p>
611<ul>
612<li><b>Nguồn tin cậy tùy chỉnh.</b> Cho phép một ứng dụng tùy chỉnh
613Nhà cung cấp chứng chỉ (CA) nào sẽ được tin cậy cho các kết nối bảo mật của ứng dụng. Ví
614dụ, tin cậy các chứng chỉ tự ký cụ thể hoặc một bộ giới hạn các CA công khai.
615</li>
616<li><b>Chỉ khống chế khi gỡ lỗi.</b> Cho phép nhà phát triển ứng dụng an toàn gỡ lỗi
617các kết nối bảo mật của ứng dụng mà không tạo thêm rủi ro cho phần cơ sở
618đã cài đặt.
619</li>
620<li><b>Không sử dụng truyền gửi văn bản chưa mã hóa.</b> Cho phép một ứng dụng tự bảo vệ mình khỏi việc
621vô tình sử dụng truyền gửi văn bản chưa mã hóa cleartext.</li>
622<li><b>Ghim chứng chỉ.</b> Một tính năng nâng cao cho phép một ứng dụng
623  giới hạn các khóa máy chủ nào là an toàn đối với các kết nối bảo mật.</li>
624</ul>
625
626<p>Để biết thêm thông tin, hãy xem <a href="{@docRoot}preview/features/security-config.html">Cấu hình Bảo mật
627 mạng</a>.</p>
628
629<h2 id="default_trusted_ca">Nhà cung cấp Chứng chỉ An toàn mặc định</h2>
630
631<p>Theo mặc định, các ứng dụng nhắm mục tiêu Android N chỉ tin cậy các chứng chỉ do hệ thống cấp
632và không còn tin cậy các Nhà cung cấp chứng chỉ (CA) do người dùng thêm vào. Các ứng dụng nhắm mục tiêu Android
633N muốn tin cậy các CA do người dùng thêm vào nên sử dụng
634<a href="{@docRoot}preview/features/security-config.html">Cấu hình Bảo mật mạng</a> để
635chỉ định cách thức tin cậy các CA của người dùng.</p>
636
637<h2 id="apk_signature_v2">Lược đồ chữ ký số v2 cho tệp APK</h2>
638
639<p>Lớp PackageManager nay đã hỗ trợ xác thực ứng dụng bằng Lược đồ chữ ký số v2
640APK. Lược đồ chữ ký số v2 APK là một lược đồ chữ ký số trên toàn bộ tệp
641làm tăng đáng kể tốc độ xác thực và tăng cường sự bảo đảm
642   toàn vẹn bằng cách phát hiện các thay đổi trái phép đối với các tệp APK.</p>
643
644<p>Để bảo đảm tương thích ngược, một tệp APK phải được ký bằng lược đồ
645chữ ký số v1 (Lược đồ chữ ký số JAR) trước khi được ký bằng lược đồ chữ ký số v2.
646Với lược đồ chữ ký số v2, quá trình xác thực sẽ thất bại nếu bạn ký tệp APK bằng một
647  chứng chỉ khác sau khi ký bằng lược đồ v2. </p>
648
649<p>Hỗ trợ cho lược đồ chữ ký số v2 cho tệp AKP sẽ có sau trong N Developer
650Preview.</p>
651
652<h2 id="scoped_directory_access">Truy cập thư mục theo phạm vi</h2>
653
654<p>Trong Android N, ứng dụng có thể sử dụng các API mới để yêu cầu truy cập vào các thư mục <a href="{@docRoot}guide/topics/data/data-storage.html#filesExternal">bộ nhớ lưu trữ
655ngoài</a> riêng, bao gồm các thư mục trên phương tiện có thể tháo ra như thẻ
656SD. Các API mới đã tối giản cách thức ứng dụng của bạn truy cập các thư mục lưu trữ ngoài
657tiêu chuẩn như thư mục <code>Pictures</code>. Các ứng dụng
658như ứng dụng quản lý ảnh có thể sử dụng các API này thay vì sử dụng
659<code>READ_EXTERNAL_STORAGE</code> để cấp quyền truy cập tới mọi thư mục
660lưu trữ, hoặc Khuôn khổ Truy cập Lưu trữ để giúp người dùng di chuyển tới
661thư mục đó.</p>
662
663<p>Ngoài ra, các API mới này cũng đơn giản hóa các bước mà người dùng thực hiện để cấp quyền truy cập
664bộ nhớ lưu trữ ngoài cho ứng dụng của bạn. Khi bạn sử dụng các API mới, hệ thống sẽ sử dụng một UI cấp quyền
665đơn giản cung cấp các thông tin chi tiết rõ ràng về thư mục nào ứng dụng đang
666yêu cầu quyền truy cập.</p>
667
668<p>Để biết thêm thông tin, hãy xem tài liệu cho nhà phát triển
669<a href="{@docRoot}preview/features/scoped-folder-access.html">Truy cập
670Thư mục theo Phạm vi</a>.</p>
671
672
673
674
675
676
677