page.title=Android N cho Nhà phát triển meta.tags="preview", "androidn" page.tags="preview", "developer preview" page.image=images/cards/card-n-apis_2x.png @jd:body
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ử dưới dạng N Developer Preview. Các phần dưới đây sẽ nêu bật một số tính năng mới cho nhà phát triển.
Bạn cần xem Các thay đổi Hành vi để biết được 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 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 Tham khảo API để biết chi tiết về các API mới.
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 rất được mong đợi — hỗ trợ đa cửa sổ.
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.
Đặ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ổ cho 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 ứ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 — đây là một cách nâng cao trải nghiệm của người dùng rất hiệu quả.
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 xử 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 tố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 kí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 đả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.
Để biết thêm thông tin, hãy xem tài liệu cho nhà phát triển Hỗ trợ đa cửa sổ .
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 hơn. Một số các thay đổi bao gồm:
Hãy xem hướng dẫn về Thông báo để biết cách triển khai các tính năng mới này.
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 ART, cho phép nó nâng cao hiệu năng của các ứng dụng Android tức thì khi chạ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 và 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 ứng dụng và cập nhật của hệ thống.
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 tùy theo sử dụng thực tế cũng như các điều kiện trên thiết bị. Ví dụ, 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 rồ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 sẽ được giữ nguyên không biên dịch cho đến khi chúng thực sự được sử dụng.
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 theo 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 tệ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ớ.
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 pin 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à đ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.
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 ứ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 để tối ưu và cài đặt trong Android 6.0 thì giờ đây có thể cài đặt chỉ trong một vài giâ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.
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 cá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ị đang nằm trên bàn hoặc trong ngăn kéo.
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. Bấ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ì Chế độ 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. Đ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 của họ.
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 sẽ 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 bả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ộ bị 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 thiết bị thoát khỏi Chế độ Ngủ sâu.
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 khoả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 android.os.PowerManager.WakeLock}, báo thức {@link android.app.AlarmManager} và quét GPS/Wi-Fi.
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ù thiế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ý Chế độ 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 làm cho ứng dụng thích ứng với Chế độ Ngủ sâu ngay.
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 trên khắp hệ sinh thái các thiết bị Android. Trong Android N, dự án Svelte 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.
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ó có thể giúp cho trải nghiệm người dùng của bạn trở nên tuyệt vời — tức thì, nhanh chóng và nhận biết được bối cảnh. Khi không sử dụng đúng cách, xử lý chạy ngầm có thể tiêu tốn RAM (và pin) 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.
Kể từ Android 5.0, {@link android.app.job.JobScheduler} đã trở thành cách thức được ưu tiên để thực hiện công việc chạy ngầm thích hợp cho 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 cá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à sự đơn giản, và chúng tôi muốn mọi ứng dụng đều sử dụng nó.
Một giải pháp hiệu quả khác là
GCMNetworkManager
, thuộc một phần của Dịch vụ Google Play, cho phép
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
cũ.
Chúng tôi đang tiếp tục kế thừa JobScheduler
và
GCMNetworkManager
để đáp ứng nhiều hơn
các trường hợp sử dụng của bạn — ví dụ như trong Android N giờ đây bạn đã có thể lên lịch cho công việc
chạ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
loại bỏ một số mẫu cũ có thể làm giảm hiệu năng hệ thống,
đặc biệt trên các thiết bị ít bộ nhớ.
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 —
{@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, {@link
android.hardware.Camera#ACTION_NEW_PICTURE} và {@link
android.hardware.Camera#ACTION_NEW_VIDEO} — bởi vì các truyền phát này có thể đánh thức
cá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
ứ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 để
chuyển sang JobScheduler
và các API liên quan khác thay thế.
Hãy xem tài liệu Tối ưu hóa Chạy ngầm để biết thêm chi tiết.
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 sẽ 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 tài nguyên đắt đỏ họ muốn sử dụng tiết kiệm.
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 sử dụng dữ liệu di động, cho dù là chuyển vùng, gần đến kỳ thanh toán cước, hoặ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 sử 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 dữ liệu được bật.
Khi người dùng bật Tiết kiệm dữ liệu trong Settings và thiết bị đang sử 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 để sử dụng ít dữ liệu hơn ở tiền cảnh bất cứ khi nào có thể — chẳng hạn như bằng cách giới hạn bit 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, v.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 dữ 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.
Android N mở rộng lớp {@link android.net.ConnectivityManager} để cung cấp cho các ứng dụng một cách thức truy xuất các tùy chọn Tiết kiệm dữ liệu của người dùng và theo dõi các thay đổi của tùy chọn. Mọi ứng dụng cần kiểm tra xem người dùng đó đã bật Tiết kiệm Dữ 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.
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, trự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 Cài đặt nhanh để khiến nó trở nên hữu ích và thuận tiện hơn nữa.
Chúng tôi đã thêm không gian cho các ô Cài đặt nhanh mà người dùng có thể truy 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 cho 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 của chúng — người dùng chỉ cần kéo và thả để thêm hoặc di chuyển các ô.
Đố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 ô 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.
Các ô Cài đặt nhanh được dành riêng cho các điều khiển hoặc hành động 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 để khởi chạy một ứng dụng.
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 các ô này vào Cài đặt nhanh bằng cách chỉ cần kéo và thả.
Để biết thêm thông tin về việc tạo một ô ứng dụng, hãy xem
android.service.quicksettings.Tile
trong tài liệu Tham khảo API có thể tải xuống.
Android N đã hỗ trợ chặn số điện thoại trong nền tảng này và cung cấp một 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. Ứ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à ghi 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.
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 cá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 thiết bị. Những lợi ích mà ứng dụng có thể tận dụng gồm:
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ể đọ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ụ cho 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 thô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.
Để biết thêm thông tin, hãy xem android.provider.BlockedNumberContract
trong tài liệu Tham khảo
API có thể tải xuống.
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
gọi điện thực hiện điều này bằng cách thực thi CallScreeningService
mới,
cho phép ứng dụng gọi điện thực hiện một số hành động dựa trên
{@link android.telecom.Call.Details Call.Details} của cuộc gọi đến như:
Để biết thêm thông tin, hãy xem android.telecom.CallScreeningService
trong tài liệu Tham khảo
API có thể tải xuống.
Android N cho phép người dùng chọn đa bản địa trong Settings, để 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 mộ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 trải nghiệm người dùng tinh tế hơn cho người dùng đa bản địa — như hiển thị các kết quả tìm kiếm bằng nhiều ngôn ngữ và không yêu cầu dịch các trang web sang ngôn ngữ mà người dùng đã biết.
Ngoài hỗ trợ đa bản địa, Android N cũng mở rộng danh sách các ngôn ngữ khả 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ữ đượ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ợ một phần cho hơn 100 ngôn ngữ mới.
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 LocaleList.GetDefault()
. Để hỗ trợ số lượng bản địa mở rộng, Android N đang thay đổi cách thức
phâ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
đang hoạt động như mong muốn theo lô-gic phân giải tài nguyên mới này.
Để 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 thực hiện theo, hãy xem mục Hỗ trợ đa ngôn ngữ.
Android N đã cung cấp một tập nhỏ các API ICU4J trong khuôn khổ Android thuộc
gói android.icu
. Việc chuyển nhập sang rất dễ dàng và hầu hết chỉ liên quan đến
việc đổi từ không gian tên com.java.icu
thành
android.icu
. Nếu bạn đang sử dụng gói ICU4J trong ứng dụng
của mình thì việc chuyển đổi sang các API android.icu
được cung cấp trong khuôn khổ
Android có thể giúp làm giảm đáng kể kích thước của tệp APK.
Để tìm hiểu thêm về API ICU4J trên Android, hãy xem Hỗ trợ ICU4J.
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:
EXT_texture_sRGB_decode
API khuôn khổ cho OpenGL ES 3.2 trên Android N được cung cấp với lớp
GLES32
. Khi sử dụng OpenGL ES 3.2, hãy đảm bảo khai báo
yêu cầu trong tệp bản kê khai của bạn bằng thẻ <uses-feature>
và
thuộc tính android:glEsVersion
.
Để biết thông tin về sử dụng OpenGL ES, bao gồm cách kiểm tra phiên bản OpenGL ES được hỗ trợ của thiết bị tại thời gian chạy, hãy xem mục Hướng dẫn API OpenGL ES.
Android N bổ sung khả năng ghi và phát lại nội dung từ các dịch vụ nguồ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 chuyể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 lư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.
Để biết thêm thông tin, hãy xem API ghi lại của Android TV.
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. Dưới đây là một số điểm nổi bật — để xem danh sách đầy đủ các cập nhật của Android N liê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.
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
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ở
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
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,
ACTION_SET_NEW_PASSWORD
sẽ yêu cầu người dùng đặt một thử thách
công việc và ACTION_SET_NEW_PARENT_PROFILE_PASSWORD
sẽ yêu cầu
người dùng đặt khóa thiết bị.
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
(như độ dài mã PIN cần thiết hoặc có thể sử dụng dấu vân tay
để mở khóa cấu hình hay không) bằng setPasswordQuality()
,
setPasswordMinimumLength()
và các phương thức liên quan. Người sở hữu
cấu hình cũng có thể cài khóa thiết bị bằng thực thể DevicePolicyManager
được trả về bởi phương thức getParentProfileInstance()
mới.
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
thử thách công việc bằng các phương thức setOrganizationColor()
và
setOrganizationName()
mới.
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 tắ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 cấ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 củ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 trạ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 sẽ chỉ báo rằng các ứng dụng và widget công việc không khả dụng.
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 thông qua một VPN chỉ định. Hệ thống sẽ tự động khởi động VPN đó sau khi thiết bị khởi động.
Các phương thức DevicePolicyManager
mới gồm
setAlwaysOnVpnPackage()
và
getAlwaysOnVpnPackage()
.
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
củ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
trướ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
hành động android.net.VpnService
.
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
VPNService
trong người dùng chính bằng
Settings>More>Vpn.
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 thiế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 cá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ỡ phông chữ, kích thước hiển thị và TalkBack.
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 khả 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 trước với các cài đặt này được bật. Bạn có thể bật chúng trong Settings > Accessibility.
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 vậ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 tí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 đáp ứng nhu cầu những người dùng này.
Để biết thêm thông tin, hãy xem android.accessibilityservice.GestureDescription
trong tài liệu Tham khảo API có thể tải xuống.
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 đã đăng ký có chức năng hạn chế ngay cả sau khi khởi động lại ngoài dự kiến. Ví 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ì bá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 cho 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ẽ khả dụng ngay sau khi khởi động xong.
Khởi động Trực tiếp sử dụng mã hóa theo tệp trong Android N để 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. Hệ 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 đã đă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 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.
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
dữ 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.
Nế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ý
chú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
các thành phần đã đăng ký bằng cách truyền phát ý định LOCKED_BOOT_COMPLETED
. Hệ thống sẽ đảm bảo cho dữ liệu mã hóa thiết bị đã đăng ký sẽ khả dụng
trướ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
của họ để giải mã nó.
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ữ, và 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 nhâ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 từ 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).
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 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 khóa để xác định chắc chắn xem một cặp khóa RSA hoặc EC có dựa trên phần cứng hay không, các đặc điểm của cặp khóa đó là gì và 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 đó.
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 thô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 chứng thực hợp lệ. Khóa chứng thực là một khóa ký ECDSA, được đư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. Do đó, một chứng chỉ chứng thực được ký bởi khóa chứ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 chi tiết về các cặp khóa trong bộ lưu trữ khóa đó.
Để chắc chắn thiết bị đang sử dụng ảnh Android bảo mật, chính thức từ nhà máy, Chứng thực khóa yêu cầu bootloader của thiết bị cung cấp thông tin sau cho Môi trường Thực thi An toàn (TEE):
Để 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, hãy xem hướng dẫn Bộ lưu trữ khóa dựa trên phần cứng.
Ngoài Chứng thực khóa, Android N cũng giới thiệu các khóa dựa vào vân tay mà không được thu hồi khi đăng ký vân tay.
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 bả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 Cấu hình Bảo mật mạng thay vì sử dụng các API lập trình truyền thống dễ xảy ra lỗi (vd: X509TrustManager).
Các tính năng được hỗ trợ:
Để biết thêm thông tin, hãy xem Cấu hình Bảo mật mạng.
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 và 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 N muốn tin cậy các CA do người dùng thêm vào nên sử dụng Cấu hình Bảo mật mạng để chỉ định cách thức tin cậy các CA của người dùng.
Lớp PackageManager nay đã hỗ trợ xác thực ứng dụng bằng Lược đồ chữ ký số v2 APK. Lược đồ chữ ký số v2 APK là một lược đồ chữ ký số trên toàn bộ tệp làm tăng đáng kể tốc độ xác thực và tăng cường sự bảo đảm 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.
Để bảo đảm tương thích ngược, một tệp APK phải được ký bằng lược đồ chữ ký số v1 (Lược đồ chữ ký số JAR) trước khi được ký bằng lược đồ chữ ký số v2. Vớ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 chứng chỉ khác sau khi ký bằng lược đồ v2.
Hỗ trợ cho lược đồ chữ ký số v2 cho tệp AKP sẽ có sau trong N Developer Preview.
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 bộ nhớ lưu trữ
ngoài riêng, bao gồm các thư mục trên phương tiện có thể tháo ra như thẻ
SD. 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
tiêu chuẩn như thư mục Pictures
. Các ứng dụng
như ứng dụng quản lý ảnh có thể sử dụng các API này thay vì sử dụng
READ_EXTERNAL_STORAGE
để cấp quyền truy cập tới mọi thư mục
lưu trữ, hoặc Khuôn khổ Truy cập Lưu trữ để giúp người dùng di chuyển tới
thư mục đó.
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 bộ 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 đơ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 yêu cầu quyền truy cập.
Để biết thêm thông tin, hãy xem tài liệu cho nhà phát triển Truy cập Thư mục theo Phạm vi.