Android 7.0 Nougat giới thiệu nhiều tính năng các tính năng và chức năng mới cho người dùng và nhà phát triển. Tài liệu này nêu bật những tính năng mới dành cho nhà phát triển.
Đừng quên xem Các thay đổi về hành vi của Android 7.0 để tìm hiểu về những khía cạnh thay đổi của nền tảng có thể ảnh hưởng đến ứng dụng của bạn.
Để tìm hiểu thêm về các tính năng dành cho người tiêu dùng của Android 7.0, hãy truy cập vào www.android.com.
Hỗ trợ nhiều cửa sổ
Trong Android 7.0, chúng tôi giới thiệu một giao diện mới và được yêu cầu nhiều tính năng đa nhiệm vào nền tảng — hỗ trợ nhiều cửa sổ.
Giờ đây, người dùng có thể mở 2 ứng dụng trên màn hình cùng một lúc.
- Trên điện thoại và máy tính bảng khi chạy Android 7.0, người dùng có thể chạy 2 ứng dụng song song hoặc với nhau ở chế độ chia đôi màn hình. Người dùng có thể đổi kích thước ứng dụng bằng cách kéo dải phân cách giữa chúng.
- Trên thiết bị Android TV, các ứng dụng có thể chuyển sang chế độ hình trong hình , cho phép chúng tiếp tục hiển thị nội dung trong khi người dùng duyệt hoặc tương tác với các ứng dụng khác.
![Các ứng dụng di động chạy ở chế độ chia đôi màn hình](https://developer.android.google.cn/static/images/android-7.0/mw-portrait.png?authuser=19&hl=vi)
Hình 1. Các ứng dụng chạy ở chế độ chia đôi màn hình.
Đặc biệt là trên máy tính bảng và các thiết bị có màn hình lớn hơn khác, tính năng hỗ trợ nhiều cửa sổ cung cấp cho bạn các cách mới để thu hút người dùng. Bạn thậm chí có thể bật tính năng kéo và thả ứng dụng của bạn để cho phép người dùng kéo nội dung vào hoặc từ ứng dụng một cách thuận tiện — tính năng nâng cao trải nghiệm người dùng.
Bạn có thể dễ dàng thêm tính năng hỗ trợ nhiều cửa sổ vào ứng dụng và định cấu hình cách tính năng này xử lý chế độ hiển thị nhiều cửa sổ. Ví dụ: bạn có thể chỉ định kích thước tối thiểu cho phép, ngăn người dùng đổi kích thước hoạt động dưới đây kích thước đó. Bạn cũng có thể tắt chế độ hiển thị nhiều cửa sổ cho ứng dụng. Việc này đảm bảo rằng 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 bài viết Hỗ trợ nhiều cửa sổ tài liệu dành cho nhà phát triển.
Các tính năng nâng cao về thông báo
Trên Android 7.0, chúng tôi đã thiết kế lại thông báo để giúp việc nhận thông báo trở nên dễ dàng hơn và nhanh hơn. Có thể kể đến một số thay đổi như sau:
- Nội dung cập nhật về mẫu: Chúng tôi đang cập nhật các mẫu thông báo thành nhấn mạnh mới hình ảnh chính và hình đại diện. Nhà phát triển sẽ có thể tận dụng các mẫu mới với những điều chỉnh tối thiểu trong mã của chúng.
-
Tuỳ chỉnh kiểu nhắn tin: Bạn có thể tuỳ chỉnh thêm
các nhãn giao diện người dùng được liên kết với thông báo của bạn bằng cách sử dụng
MessagingStyle
. Bạn có thể định cấu hình thông báo, tiêu đề cuộc trò chuyện và chế độ xem nội dung. - Thông báo theo gói: Hệ thống có thể nhóm các tin nhắn với nhau (chẳng hạn như theo chủ đề của thư) và hiển thị nhóm. Người dùng có thể thực hiện các thao tác chẳng hạn như Đóng hoặc Lưu trữ, trên các thiết bị đó. Nếu bạn đã triển khai thông báo cho Android Wear, thì bạn đã quen thuộc với mô hình này.
- Trả lời trực tiếp: Đối với các ứng dụng liên lạc theo thời gian thực, Hệ thống Android hỗ trợ tính năng trả lời cùng dòng để người dùng có thể nhanh chóng trả lời SMS hoặc tin nhắn văn bản ngay trong giao diện thông báo.
- Khung hiển thị tuỳ chỉnh: Hai API mới cho phép bạn tận dụng hệ thống trang trí, chẳng hạn như tiêu đề thông báo và hành động, khi sử dụng tuỳ chỉnh lượt xem trong phần thông báo.
![Thiết bị di động đang hiển thị các thông báo tin nhắn theo gói](https://developer.android.google.cn/static/images/android-7.0/notifications-1.png?authuser=19&hl=vi)
![Thiết bị di động đang hiển thị thông báo về một tin nhắn](https://developer.android.google.cn/static/images/android-7.0/notifications-3.png?authuser=19&hl=vi)
![Thiết bị di động hiển thị tin nhắn trả lời cùng dòng trong giao diện thông báo](https://developer.android.google.cn/static/images/android-7.0/notifications-2.png?authuser=19&hl=vi)
Hình 2. Thông báo theo gói và tin nhắn trả lời trực tiếp.
Để tìm hiểu cách triển khai các tính năng mới, hãy xem Thông báo của chúng tôi.
Biên dịch JIT/AOT theo hướng dẫn của hồ sơ
Trong Android 7.0, chúng tôi đã thêm trình biên dịch Đúng trong thời gian (JIT) có mã lập hồ sơ cho ART, cho phép công cụ này liên tục cải thiện hiệu suất của các ứng dụng Android khi chúng chạy. Trình biên dịch JIT bổ sung cho trình biên dịch hiện tại của ART Trình biên dịch AOT (Trước) và giúp cải thiện hiệu suất thời gian chạy, tiết kiệm dung lượng lưu trữ lớn hơn, đồng thời tăng tốc độ cập nhật ứng dụng và cập nhật hệ thống.
Quy trình biên dịch theo hướng dẫn của hồ sơ cho phép ART quản lý quá trình biên dịch AOT/JIT cho từng ứng dụng theo mức sử dụng thực tế cũng như các điều kiện trên thiết bị. Ví dụ: ART duy trì hồ sơ về các phương thức nổi bật của từng ứng dụng và có thể biên dịch trước và lưu các phương thức đó vào bộ nhớ đệm để có hiệu suất tốt nhất. Điện thoại sẽ rời khỏi các phần khác của ứng dụng không được biên dịch cho đến khi chúng thực sự được sử dụng.
Bên cạnh việc cải thiện hiệu suất cho các phần chính của ứng dụng, giải pháp dựa trên hồ sơ giúp giảm tổng mức sử dụng RAM của ứng dụng, bao gồm cả tệp nhị phân. Tính năng này đặc biệt quan trọng trên các thiết bị có bộ nhớ thấp.
ART quản lý việc biên dịch theo hướng dẫn của hồ sơ theo cách giảm thiểu tác động đến pin thiết bị. Tính năng này chỉ biên dịch trước khi thiết bị ở trạng thái rảnh và sạc, tiết kiệm thời gian và pin bằng cách thực hiện trước công việc đó.
Đường dẫn nhanh đến lượt cài đặt ứng dụng
Một trong những lợi ích rõ ràng nhất của trình biên dịch JIT của ART là tốc độ của ứng dụng cài đặt và cập nhật hệ thống. Ngay cả những ứng dụng lớn đòi hỏi vài phút để tối ưu hóa và cài đặt trong Android 6.0 giờ đây có thể cài đặt chỉ trong một lần truy cập giây. Quá trình cập nhật hệ thống cũng diễn ra nhanh hơn vì không cần thực hiện bước tối ưu hoá nào nữa.
Nghỉ khi di chuyển...
Android 6.0 giới thiệu Doze, một chế độ hệ thống giúp tiết kiệm pin bằng cách trì hoãn ứng dụng Các hoạt động của CPU và mạng khi thiết bị ở trạng thái rảnh, chẳng hạn như khi thiết bị ở trạng thái rảnh đặt trên bàn hoặc trong ngăn kéo.
Giờ đây đã có trong Android 7.0, Doze tiến thêm một bước và tiết kiệm pin khi di chuyển. Bất cứ khi nào màn hình tắt trong một khoảng thời gian và thiết bị không cắm sạc, Chế độ Nghỉ áp dụng một tập hợp con các hạn chế quen thuộc về CPU và mạng cho 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 mang thiết bị bên trong túi.
![Hình minh hoạ cách chế độ Nghỉ áp dụng cấp độ đầu tiên các hạn chế về hoạt động của hệ thống để cải thiện thời lượng pin](https://developer.android.google.cn/static/images/android-7.0/doze-diagram-1.png?authuser=19&hl=vi)
Hình 3. Đã áp dụng chế độ Nghỉ các hạn chế nhằm cải thiện thời lượng pin ngay cả khi thiết bị không đứng yên.
Trong một khoảng thời gian ngắn sau khi màn hình tắt trong khi thiết bị đang chạy pin, chế độ Nghỉ hạn chế quyền truy cập mạng và trì hoãn công việc cũng như đồng bộ hoá. Trong thời gian bảo trì ngắn cửa sổ, các ứng dụng đều được phép truy cập mạng và bất kỳ chế độ cài đặt nào bị trì hoãn công việc/đồng bộ hoá được thực thi. Việc bật màn hình hoặc cắm thiết bị sẽ mang lại thiết bị khỏi chế độ Nghỉ.
Khi thiết bị đứng yên lần nữa, màn hình tắt và bật pin trong
trong một khoảng thời gian nhất định, chế độ Nghỉ sẽ áp dụng toàn bộ các hạn chế về CPU và mạng cho PowerManager.WakeLock
, AlarmManager
chuông báo và
Quét tìm GPS/Wi-Fi.
Các phương pháp hay nhất để điều chỉnh ứng dụng của bạn sang chế độ Nghỉ là như nhau cho dù thiết bị của bạn có đang di chuyển hay không, vì vậy nếu bạn đã cập nhật ứng dụng lên hãy điều khiển chế độ Nghỉ, bạn đã hoàn tất. Nếu không, hãy bắt đầu điều chỉnh ứng dụng của bạn vào chế độ Nghỉ ngay bây giờ.
Project Svelte: Tối ưu hoá ở chế độ nền
Project Svelte đang nỗ lực không ngừng nhằm giảm thiểu mức sử dụng RAM của hệ thống và các ứng dụng trên nhiều thiết bị Android trong hệ sinh thái. Trong Android 7.0, dự án Svelte tập trung vào việc tối ưu hoá cách ứng dụng chạy ở chế độ nền.
Xử lý nền là một phần thiết yếu trong hầu hết các ứng dụng. Khi xử lý đúng cách, có thể làm cho trải nghiệm người dùng tuyệt vời — tức thì, nhanh chóng và nhận biết theo ngữ cảnh. Khi không được xử lý đúng cách, quá trình xử lý ở chế độ nền có thể tiêu tốn RAM một cách không cần thiết (và pin) và ảnh hưởng đến hiệu suất hệ thống của các ứng dụng khác.
Kể từ Android 5.0, JobScheduler
đã là
ưu tiên để thực hiện công việc ở chế độ nền theo cách thú vị
cho người dùng. Các ứng dụng có thể lên lịch công việc trong khi cho phép hệ thống tối ưu hoá dựa trên
điều kiện bộ nhớ, nguồn điện và khả năng kết nối. JobScheduler cung cấp quyền kiểm soát và
tính đơn giản và chúng tôi muốn
tất cả các ứng dụng sử dụng công nghệ này.
Một lựa chọn thích hợp khác là
GCMNetworkManager
thuộc Dịch vụ Google Play
cung cấp khả năng lên lịch công việc tương tự
và khả năng tương thích giữa các phiên bản cũ của
Android.
Chúng tôi sẽ tiếp tục mở rộng phạm vi cung cấp JobScheduler
và
GCMNetworkManager
để gặp gỡ thêm
các trường hợp sử dụng của mình, ví dụ: trong Android 7.0, giờ đây bạn có thể đặt lịch biểu ở chế độ nền
hoạt động dựa trên những thay đổi trong Trình cung cấp nội dung. Đồng thời, chúng tôi bắt đầu
không dùng một số mẫu cũ có thể làm giảm hiệu suất hệ thống,
đặc biệt là trên các thiết bị có bộ nhớ thấp.
Trong Android 7.0, chúng ta sẽ xoá 3 thông báo truyền phát ngầm thường dùng –
CONNECTIVITY_ACTION
, ACTION_NEW_PICTURE
và ACTION_NEW_VIDEO
— vì chúng có thể đánh thức
các quá trình chạy trong nền của nhiều ứng dụng cùng một lúc, gây quá tải bộ nhớ và pin. Nếu
mà ứng dụng của bạn đang nhận được, hãy tận dụng Android 7.0 để
hãy di chuyển sang JobScheduler
và các API có liên quan.
Hãy xem phần Thông tin nền Tài liệu về các hoạt động tối ưu hoá để biết thông tin chi tiết.
SurfaceView
Android 7.0 mang đến chuyển động đồng bộ cho SurfaceView
class, giúp tiết kiệm pin hơn
hơn TextureView
trong một số trường hợp nhất định: Khi hiển thị video hoặc
Nội dung 3D, các ứng dụng có chức năng cuộn và vị trí video động sử dụng ít pin hơn với
SurfaceView
so với TextureView
.
SurfaceView
cho phép kết hợp tiết kiệm pin hơn trên
màn hình vì nó được kết hợp trong phần cứng chuyên dụng, tách biệt với ứng dụng
nội dung trong cửa sổ. Do đó, làm giảm mức trung gian
bản sao hơn TextureView
.
Vị trí nội dung của đối tượng SurfaceView
hiện được cập nhật đồng bộ
với nội dung ứng dụng chứa nội dung. Một kết quả của thay đổi này là đơn giản
bản dịch hoặc tỷ lệ của một video phát trong SurfaceView
không còn tạo ra các thanh màu đen dọc theo khung hiển thị khi khung hiển thị này di chuyển.
Kể từ Android 7.0, bạn nên tiết kiệm pin bằng cách sử dụng
SurfaceView
thay vì TextureView
.
Trình tiết kiệm dữ liệu
![Trình tiết kiệm dữ liệu trong phần Cài đặt](https://developer.android.google.cn/static/images/android-7.0/datasaver.png?authuser=19&hl=vi)
Hình 4. Trình tiết kiệm dữ liệu trong phần Cài đặt.
Trong suốt vòng đời của thiết bị di động, chi phí của gói dữ liệu di động thường cao hơn chi phí mua chính thiết bị đó. Đối với nhiều người dùng, dữ liệu di động là tài nguyên đắt đỏ mà họ muốn bảo toàn.
Android 7.0 giới thiệu chế độ Trình tiết kiệm dữ liệu, một dịch vụ hệ thống mới giúp giảm mức sử dụng dữ liệu di động của ứng dụng, cho dù là chuyển vùng, khi gần kết thúc chu kỳ thanh toán, hoặc một gói dữ liệu trả trước nhỏ. Trình tiết kiệm dữ liệu cho phép người dùng kiểm soát cách ứ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 Dữ liệu Trình tiết kiệm đang bật.
Khi người dùng bật Trình tiết kiệm dữ liệu trong phần Cài đặt và thiết bị trên mạng có đo lượng dữ liệu, hệ thống sẽ chặn việc sử dụng dữ liệu nền và báo hiệu cho các ứng dụng để dùng ít dữ liệu hơn ở nền trước bất cứ khi nào có thể, chẳng hạn như bằng cách giới hạn tốc độ bit khi phát trực tuyến, giảm chất lượng ảnh, trì hoãn quá trình lưu trữ lạc quan, và cứ tiếp tục như vậy. Người dùng có thể cho phép một số ứng dụng dùng dữ liệu có đo lượng dữ liệu nền ngay cả khi bạn bật Trình tiết kiệm dữ liệu.
Android 7.0 mở rộng ConnectivityManager
để cung cấp cho các ứng dụng một
để truy xuất
các lựa chọn ưu tiên về Trình tiết kiệm dữ liệu và màn hình của người dùng
các thay đổi về lựa chọn ưu tiên. Tất cả ứng dụng đều phải kiểm tra xem người dùng có bật chế độ Dữ liệu hay không
Trình tiết kiệm và cố gắng hạn chế mức sử dụng dữ liệu nền và nền trước.
Vulkan API
Android 7.0 tích hợp VulkanTM, một API kết xuất 3D mới vào nền tảng. Thích OpenGLTM ES, Vulkan là một tiêu chuẩn mở cho việc duy trì đồ hoạ và hoạt động kết xuất 3D của Khronos Group.
Vulkan được thiết kế từ đầu để giảm thiểu mức hao tổn CPU cho người điều khiển, và cho phép ứng dụng của bạn kiểm soát hoạt động của GPU một cách trực tiếp hơn. Vulkan cũng giúp song song hoá hiệu quả hơn bằng cách cho phép nhiều luồng thực hiện chẳng hạn như tạo vùng đệm lệnh cùng một lúc.
Các công cụ và thư viện phát triển Vulkan được triển khai vào SDK Android 7.0. Chúng bao gồm:
- Tiêu đề
- Lớp xác thực (thư viện gỡ lỗi)
- Trình biên dịch chương trình đổ bóng SPIR-V
- Thư viện biên dịch chương trình đổ bóng trong thời gian chạy SPIR-V
Vulkan chỉ dành cho các ứng dụng trên thiết bị có phần cứng hỗ trợ Vulkan, chẳng hạn như Nexus 5X, Nexus 6P và Nexus Player. Chúng tôi sẽ hợp tác chặt chẽ với đối tác nhằm tích hợp Vulkan vào nhiều thiết bị hơn trong thời gian sớm nhất có thể.
Để biết thêm thông tin, hãy xem tài liệu về API.
API Thẻ thông tin cài đặt nhanh
![Ô Cài đặt nhanh trong ngăn thông báo](https://developer.android.google.cn/static/images/android-7.0/quicksettings.png?authuser=19&hl=vi)
Hình 5. Ô Cài đặt nhanh trong ngăn thông báo.
Cài đặt nhanh là một cách phổ biến và đơn giản để hiển thị các thao tác và chế độ cài đặt chính, ngay từ ngăn thông báo. Trong Android 7.0, chúng tôi đã mở rộng phạm vi Trình đơn Cài đặt nhanh giúp bạn trở nên hữu ích và thuận tiện hơn nữa.
Chúng tôi đã bổ sung không gian cho các ô Cài đặt nhanh khác mà người dùng có thể truy cập qua khu vực hiển thị được phân trang bằng cách vuốt sang trái hoặc sang phải. Chúng tôi cũng đã cấp cho người dùng quyền kiểm soát các ô trong trình đơn Cài đặt nhanh xuất hiện và vị trí của chúng được hiển thị — người dùng có thể thêm hoặc di chuyển ô chỉ bằng cách kéo và thả chúng.
Đối với nhà phát triển, Android 7.0 cũng thêm một API mới cho phép bạn xác định Ô Cài đặt nhanh giúp người dùng dễ dàng truy cập vào các chế độ điều khiển và thao tác quan trọng trong ứng dụng của bạn.
Ô Cài đặt nhanh dành riêng cho các chế độ điều khiển hoặc thao tác được yêu cầu khẩn cấp hoặc được sử dụng thường xuyên và không nên được dùng làm lối tắt để khởi chạy ứng dụng.
Sau khi xác định thẻ thông tin, bạn có thể hiển thị chúng cho người dùng, người dùng có thể thêm chỉ cần kéo và thả vào trình đơn Cài đặt nhanh.
Để biết thông tin về cách tạo thẻ thông tin ứng dụng, hãy xem tài liệu tham khảo
với giá Tile
.
Chặn số
Android 7.0 hiện hỗ trợ tính năng chặn số trong nền tảng và cung cấp API khung để cho phép nhà cung cấp dịch vụ duy trì danh sách số bị chặn. Chiến lược phát hành đĩa đơn ứng dụng SMS mặc định, ứng dụng điện thoại mặc định cũng như các ứng dụng của nhà mạng có thể đọc từ 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.
Bằng cách biến việc 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 một cách nhất quán để ứng dụng hỗ trợ chặn số trên nhiều loại thiết bị. Ngoài ra, ứng dụng còn có thể tận dụng những lợi ích sau:
- Số bị chặn khi gọi điện cũng sẽ bị chặn khi nhắn tin
- Số bị chặn vẫn có thể tồn tại khi bạn đặt lại và đặt lại thiết bị thông qua tính năng Sao lưu và Khôi phục tính năng
- Nhiều ứng dụng có thể dùng cùng một danh sách số bị chặn
Ngoài ra, việc tích hợp ứng dụng của nhà mạng thông qua Android có nghĩa là các nhà mạng có thể đọc danh sách số bị chặn trên thiết bị và chặn phía dịch vụ cho người dùng để ngăn người dùng nhận được các cuộc gọi và tin nhắn văn bản không mong muốn thông qua bất kỳ phương tiện nào, chẳng hạn như điểm cuối VOIP hoặc điện thoại chuyển tiếp.
Để biết thêm thông tin, hãy xem tài liệu tham khảo cho
BlockedNumberContract
.
Sàng lọc cuộc gọi
Android 7.0 cho phép ứng dụng điện thoại mặc định sàng lọc cuộc gọi đến. Điện thoại
ứng dụng thực hiện việc này bằng cách triển khai CallScreeningService
mới,
cho phép ứng dụng điện thoại thực hiện một số thao tác dựa trên
Call.Details
của cuộc gọi đến, chẳng hạn như:
- Từ chối cuộc gọi đến
- Không cho phép cuộc gọi đến nhật ký cuộc gọi
- Không hiển thị thông báo cho người dùng về cuộc gọi
Để biết thêm thông tin, hãy xem tài liệu tham khảo cho
CallScreeningService
.
Hỗ trợ đa ngôn ngữ, nhiều ngôn ngữ hơn
Android 7.0 hiện cho phép người dùng chọn nhiều ngôn ngữ trong phần Cài đặt. để hỗ trợ tốt hơn cho trường hợp sử dụng song ngữ. Các ứng dụng có thể sử dụng một API mới để lấy ngôn ngữ mà người dùng đã chọn, sau đó cung cấp các tính năng nâng cao trải nghiệm người dùng phù hợp với người dùng sử dụng nhiều ngôn ngữ, chẳng hạn như hiển thị kết quả tìm kiếm bằng nhiều ngôn ngữ và không đề xuất dịch trang web bằng một ngôn ngữ đã biết.
Cùng với hỗ trợ đa ngôn ngữ, Android 7.0 cũng mở rộng phạm vi ngôn ngữ mà người dùng có thể sử dụng. Google Play cung cấp hơn 25 biến thể, mỗi biến thể cho các sản phẩm chẳng hạn như tiếng Anh, tiếng Tây Ban Nha, tiếng Pháp và tiếng Ả Rập. Thao tác này cũng thêm một phần hỗ trợ hơn 100 ngôn ngữ mới.
Ứng dụng có thể lấy danh sách ngôn ngữ do người dùng đặt bằng cách gọi
LocaleList.GetDefault()
. Để hỗ trợ số lượng ngôn ngữ mở rộng, Android 7.0
thay đổi cách phân giải tài nguyên. Hãy nhớ kiểm thử và xác minh rằng các ứng dụng của bạn
hoạt động như mong đợi với logic phân giải tài nguyên mới.
Để tìm hiểu về hành vi mới để phân giải tài nguyên và các phương pháp hay nhất mà bạn Bạn nên truy cập vào phần Hỗ trợ đa ngôn ngữ.
Biểu tượng cảm xúc mới
Android 7.0 ra mắt các biểu tượng cảm xúc và các tính năng khác liên quan đến biểu tượng cảm xúc, bao gồm biểu tượng cảm xúc cho tông màu da và hỗ trợ biến đổi màu da bộ chọn. Nếu ứng dụng của bạn hỗ trợ biểu tượng cảm xúc, hãy làm theo các nguyên tắc dưới đây để tận dụng các tính năng liên quan đến biểu tượng cảm xúc này.
-
Kiểm tra để đảm bảo thiết bị có chứa biểu tượng cảm xúc trước khi chèn.
Để kiểm tra xem có biểu tượng cảm xúc nào trong
phông chữ của hệ thống, hãy sử dụng phương thức
hasGlyph(String)
. - Kiểm tra để đảm bảo biểu tượng cảm xúc có hỗ trợ bộ chọn biến thể. Bộ chọn biến thể cho phép bạn hiện một số biểu tượng cảm xúc có màu hoặc đen trắng. Trên thiết bị di động, ứng dụng phải thể hiện biểu tượng cảm xúc có màu chứ không phải là đen trắng. Tuy nhiên, nếu ứng dụng của bạn hiển thị biểu tượng cảm xúc cùng dòng với văn bản, thì ứng dụng nên sử dụng biến thể đen trắng. Để xác định xem biểu tượng cảm xúc có biến thể hay không, hãy sử dụng bộ chọn biến thể. Để có danh sách đầy đủ các ký tự kèm theo biến thể, hãy xem lại phần trình tự biến thể biểu tượng cảm xúc của Tài liệu về Unicode về các biến thể.
-
Kiểm tra để đảm bảo biểu tượng cảm xúc hỗ trợ màu da. Android 7.0 cho phép người dùng sửa đổi
thể hiện màu da của biểu tượng cảm xúc theo sở thích của họ. Ứng dụng bàn phím phải cung cấp hình ảnh trực quan
chỉ báo cho những biểu tượng cảm xúc có nhiều màu da và nên cho phép người dùng
chọn màu da họ thích. Để xác định xem biểu tượng cảm xúc hệ thống nào có
đối tượng sửa đổi màu da, sử dụng
hasGlyph(String)
. Bạn có thể xác định biểu tượng cảm xúc nào sử dụng tông màu da bằng cách đọc Tài liệu về Unicode.
API ICU4J trong Android
Android 7.0 hiện cung cấp một tập hợp con các API ICU4J trong khung Android trong
gói android.icu
. Quá trình di chuyển dễ dàng và chủ yếu đòi hỏi
chỉ thay đổi từ không gian tên com.java.icu
sang
android.icu
Nếu bạn đã sử dụng gói ICU4J trong
chuyển sang các API android.icu
được cung cấp trong Android
có thể giúp giảm đáng kể kích thước APK.
Để tìm hiểu thêm về các API ICU4J của Android, hãy xem bài viết Hỗ trợ ICU4J.
WebView
Chrome kết hợp với WebView
Kể từ phiên bản Chrome 51 trên Android 7.0 trở lên, APK Chrome sẽ có trên thiết bị của bạn được dùng để cung cấp và hiển thị WebView của Hệ thống Android. Phương pháp này cải thiện bộ nhớ trên chính thiết bị, đồng thời giảm băng thông cần thiết để duy trì WebView đã được cập nhật (vì APK WebView độc lập sẽ không được cập nhật nữa miễn là Chrome vẫn được bật).
Bạn có thể chọn nhà cung cấp WebView bằng cách bật Tuỳ chọn cho nhà phát triển và chọn WebViewimplementation (Triển khai WebView). Bạn có thể sử dụng bất kỳ Phiên bản Chrome (Nhà phát triển, Thử nghiệm hoặc Bản ổn định) đã được cài đặt trên thiết bị của bạn hoặc một APK WebView độc lập để đóng vai trò là phương thức triển khai WebView.
Nhiều quy trình
Kể từ Chrome phiên bản 51 trong Android 7.0, WebView sẽ chạy nội dung trên web trong một quy trình hộp cát riêng biệt khi tuỳ chọn "đa quy trình WebView" dành cho nhà phát triển đã được bật.
Chúng tôi đang mong nhận được ý kiến phản hồi về khả năng tương thích và hiệu suất trong thời gian chạy trên N trước khi bật WebView đa quy trình trong phiên bản Android sau này. Trong phần này phiên bản, số hồi quy về thời gian khởi động, tổng mức sử dụng bộ nhớ và phần mềm hiệu suất kết xuất như dự kiến.
Nếu bạn phát hiện các vấn đề không mong muốn trong chế độ đa quy trình, chúng tôi rất mong nhận được phản hồi của bạn. chúng. Vui lòng liên hệ với nhóm WebView qua công cụ theo dõi lỗi Chromium.
JavaScript chạy trước khi tải trang
Kể từ những ứng dụng nhắm đến Android 7.0, ngữ cảnh JavaScript sẽ được đặt lại khi một trang mới được tải. Hiện tại, ngữ cảnh được chuyển sang cho trang đầu tiên được tải trong phiên bản WebView mới.
Các nhà phát triển muốn chèn JavaScript vào WebView nên thực thi sau khi trang đã bắt đầu tải.
Định vị vị trí trên các nguồn gốc không an toàn
Bắt đầu với các ứng dụng nhắm mục tiêu Android 7.0, API vị trí địa lý sẽ chỉ được phép trên các nguồn gốc bảo mật (qua HTTPS). Chính sách này được thiết kế để bảo vệ thông tin riêng tư của người dùng khi họ sử dụng kết nối không an toàn.
Thử nghiệm bằng WebView Beta
WebView được cập nhật thường xuyên, vì vậy bạn nên kiểm thử khả năng tương thích với ứng dụng của bạn thường xuyên thông qua kênh beta của WebView. Để bắt đầu thử nghiệm phiên bản phát hành trước của WebView trên Android 7.0, tải xuống và cài đặt Chrome Dev hoặc Chrome Beta và chọn làm triển khai WebView trong như đã mô tả ở trên. Vui lòng báo cáo vấn đề qua Chromium công cụ theo dõi lỗi để chúng tôi có thể khắc phục chúng trước khi có một phiên bản WebView mới phát hành.
API OpenGLTM ES 3.2
Android 7.0 bổ sung giao diện khung và hỗ trợ nền tảng cho OpenGL ES 3.2, bao gồm:
- Tất cả các tiện ích mở rộng từ
Gói tiện ích Android (AEP) ngoại trừ
EXT_texture_sRGB_decode
. - Bộ đệm khung dấu phẩy động cho HDR và chế độ tô bóng trễ.
- Lệnh gọi vẽ BaseVertex để cho phép phân lô và truyền trực tuyến tốt hơn.
- Tính năng kiểm soát truy cập vùng đệm mạnh mẽ giúp giảm mức hao tổn của WebGL.
API khung cho OpenGL ES 3.2 trên Android 7.0 được cung cấp cùng với
Lớp GLES32
. Khi sử dụng OpenGL ES 3.2, hãy nhớ khai báo
yêu cầu trong tệp kê khai, bằng cách sử dụng thẻ <uses-feature>
và
thuộc tính android:glEsVersion
.
Để biết thông tin về cách sử dụng OpenGL ES, bao gồm cả cách kiểm tra phiên bản OpenGL ES được hỗ trợ trong thời gian chạy, hãy xem Hướng dẫn về API OpenGL ES.
Đang ghi trên Android TV
Android 7.0 bổ sung khả năng ghi và phát nội dung từ đầu vào Android TV thông qua các API bản ghi mới. Xây dựng dựa trên tính năng dịch chuyển thời gian hiện có API, dịch vụ đầu vào TV có thể kiểm soát dữ liệu kênh nào có thể được ghi lại, cách các phiên được ghi lại sẽ được lưu và 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 bài viết API Ghi của Android TV.
Android for Work
Android for Work bổ sung nhiều tính năng và API mới dành cho các thiết bị chạy Android 7.0. Dưới đây là một số tính năng nổi bật. Để biết danh sách đầy đủ các tính năng, hãy xem Tính năng của Android Enterprise danh sách.
Thử thách bảo mật hồ sơ công việc
Chủ sở hữu hồ sơ nhắm đến SDK N
có thể chỉ định một thử thách bảo mật riêng cho các ứng dụng chạy trong
hồ sơ công việc. Thử thách công việc xuất hiện khi người dùng cố gắng mở
bất kỳ ứng dụng công việc nào. Khi hoàn thành thành công thử thách bảo mật, bạn sẽ có thể
hồ sơ công việc và giải mã hồ sơ đó nếu cần. Đối với chủ sở hữu trang doanh nghiệp,
ACTION_SET_NEW_PASSWORD
nhắc người dùng đặt một nơi làm việc
thử thách và ACTION_SET_NEW_PARENT_PROFILE_PASSWORD
lời nhắc
người dùng đặt một phương thức khoá thiết bị.
Chủ sở hữu hồ sơ có thể đặt các chính sách mật mã riêng biệt cho thử thách công việc
(chẳng hạn như mã PIN cần trong bao lâu hoặc có thể sử dụng vân tay hay không
để mở khoá hồ sơ) bằng cách sử dụng setPasswordQuality()
,
setPasswordMinimumLength()
và các phương thức liên quan. Trang doanh nghiệp
chủ sở hữu cũng có thể đặt phương thức khoá thiết bị bằng DevicePolicyManager
thực thể được trả về bằng phương thức getParentProfileInstance()
mới.
Ngoài ra, chủ sở hữu hồ sơ có thể tuỳ chỉnh màn hình thông tin đăng nhập cho
thử thách công việc bằng cách sử dụng setOrganizationColor()
mới và
setOrganizationName()
.
Tắt công việc
Trên thiết bị có hồ sơ công việc, người dùng có thể bật/tắt chế độ công việc. Khi chế độ làm việc là người dùng được quản lý tạm thời bị tắt. Thao tác này sẽ vô hiệu hoá hồ sơ công việc ứng dụng, đồng bộ hoá trong nền và thông báo. Điều này bao gồm cả chủ sở hữu trang doanh nghiệp . Khi bạn tắt chế độ làm việc, hệ thống sẽ hiển thị trạng thái liên tục để nhắc người dùng rằng họ không thể chạy các ứng dụng công việc. Trình chạy cho biết rằng không truy cập được các ứng dụng và tiện ích công việc.
VPN luôn bật
Chủ sở hữu thiết bị và chủ sở hữu hồ sơ có thể đảm bảo rằng các ứng dụng công việc luôn kết nối với nhau thông qua VPN được chỉ định. Hệ thống sẽ tự động khởi động VPN đó sau thiết bị.
Các phương thức DevicePolicyManager
mới là
setAlwaysOnVpnPackage()
và
getAlwaysOnVpnPackage()
.
Vì các dịch vụ VPN có thể bị hệ thống liên kết trực tiếp mà không cần ứng dụng
tương tác này, ứng dụng VPN cần xử lý các điểm truy cập mới cho VPN luôn bật. Như
trước đó, các dịch vụ được chỉ báo cho hệ thống bằng cách so khớp bộ lọc ý định
hành động android.net.VpnService
.
Người dùng cũng có thể thiết lập ứng dụng khách VPN luôn bật theo cách thủ công mà triển khai
VPNService
phương thức sử dụng
Cài đặt>Khác>Vpn. Tuỳ chọn bật VPN luôn bật
chỉ dùng được trong phần Cài đặt nếu ứng dụng VPN nhắm đến API cấp 24.
Cấp phép tuỳ chỉnh
Một ứng dụng có thể tuỳ chỉnh việc cấp phép cho chủ sở hữu hồ sơ và chủ sở hữu thiết bị
trôi chảy với màu sắc và biểu trưng của công ty.
DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR
tuỳ chỉnh
màu luồng. DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI
tuỳ chỉnh quy trình bằng biểu trưng của công ty.
Các tính năng hỗ trợ tiếp cận nâng cao
Android 7.0 hiện cung cấp phần Cài đặt thị giác ngay trên màn hình Chào mừng thiết lập thiết bị. Nhờ đó, người dùng có thể khám phá và định cấu hình dễ dàng hơn bộ tính năng hỗ trợ tiếp cận trên thiết bị của họ, bao gồm cả cử chỉ phóng to, phông chữ kích thước, kích thước màn hình và TalkBack.
Với các bộ tính năng hỗ trợ tiếp cận này, người dùng của bạn sẽ có vị trí nổi bật hơn có nhiều khả năng sẽ dùng thử ứng dụng của bạn khi bạn bật tính năng này. Đừng quên kiểm thử các ứng dụng của bạn sớm khi bật các chế độ cài đặt này. Bạn có thể bật các tính năng này trong phần Cài đặt > Hỗ trợ tiếp cận.
Cũng trong Android 7.0, các dịch vụ hỗ trợ tiếp cận giờ đây có thể giúp người dùng vận động khuyết tật khi chạm vào màn hình. API mới cho phép tạo dịch vụ bằng các tính năng như theo dõi khuôn mặt, theo dõi mắt, quét điểm, v.v. đáp ứng nhu cầu của những người dùng đó.
Để biết thêm thông tin, hãy xem tài liệu tham khảo cho
GestureDescription
.
Khởi động trực tiếp
Tính năng khởi động trực tiếp cải thiện thời gian khởi động thiết bị và cho phép người dùng đăng ký các ứng dụng bị hạn chế chức năng ngay cả sau khi khởi động lại ngoài dự kiến. Ví dụ: nếu một thiết bị đã mã hoá khởi động lại trong khi người dùng đang ngủ, giờ đây, chuông báo, tin nhắn và cuộc gọi đến đã đăng ký có thể tiếp tục thông báo cho người dùng như bình thường. Điều này cũng có nghĩa là các dịch vụ hỗ trợ tiếp cận cũng có thể bị sẽ có ngay sau khi khởi động lại.
Tính năng khởi động trực tiếp tận dụng tính năng mã hoá dựa trên tệp trong Android 7.0 để bật chính sách mã hoá chi tiết cho cả dữ liệu hệ thống và dữ liệu ứng dụng. Hệ thống sử dụng kho lưu trữ đã mã hoá thiết bị cho một số dữ liệu hệ thống và hiển thị rõ ràng dữ liệu ứng dụng đã đăng ký. Theo mặc định, kho lưu trữ thông tin xác thực đã mã hoá được sử dụng cho tất cả dữ liệu hệ thống khác, dữ liệu người dùng, ứng dụng và dữ liệu ứng dụng.
Khi khởi động, hệ thống khởi động ở chế độ hạn chế với quyền truy cập vào
chỉ dành cho dữ liệu được mã hoá trên thiết bị mà không có quyền truy cập chung vào ứng dụng hoặc dữ liệu.
Nếu muốn chạy các thành phần ở chế độ này, bạn có thể đăng ký
bằng cách gắn cờ trong tệp kê khai. Sau khi khởi động lại, hệ thống sẽ kích hoạt
các thành phần đã đăng ký bằng cách truyền phát LOCKED_BOOT_COMPLETED
ý định. Hệ thống đảm bảo có dữ liệu ứng dụng đã đăng ký và đã mã hoá cho thiết bị
trước khi mở khoá. Tất cả các dữ liệu khác sẽ không được cung cấp cho đến khi Người dùng xác nhận khoá
thông tin đăng nhập màn hình để giải mã.
Chứng thực khoá
Android 7.0 giới thiệu tính năng chứng thực khoá, một công cụ bảo mật mới giúp bạn đảm bảo rằng các cặp khoá được lưu trữ trong khoá dựa trên phần cứng của thiết bị kho khoá bảo vệ đúng cách thông tin nhạy cảm mà ứng dụng của bạn sử dụng. Bằng cách sử dụng công cụ này, bạn tin tưởng hơn rằng ứng dụng của mình tương tác với các khoá nằm trong phần cứng bảo mật, ngay cả khi thiết bị đang chạy ứng dụng của bạn bị can thiệp vào hệ thống. Nếu bạn sử dụng khoá trong kho khoá dựa trên phần cứng trong ứng dụng của mình, bạn nên sử dụng công cụ này, đặc biệt khi bạn sử dụng các khoá để xác minh thông tin nhạy cảm trong ứng dụng của bạn.
Quy trình chứng thực khoá giúp bạn xác minh rằng một cặp khoá RSA hoặc EC đã được được tạo và lưu trữ trong kho khoá dựa trên phần cứng của thiết bị trong kho khoá môi trường thực thi đáng tin cậy (TEE). Công cụ này cũng cho phép bạn sử dụng dịch vụ bên ngoài thiết bị, chẳng hạn như máy chủ phụ trợ của ứng dụng, để xác định và xác minh chặt chẽ việc sử dụng và tính hợp lệ của cặp khoá. Những tính năng này cung cấp một lớp bảo mật bổ sung giúp bảo vệ cặp khoá, ngay cả khi ai đó can thiệp vào hệ thống của thiết bị hoặc xâm phạm tính bảo mật của nền tảng Android đang chạy trên thiết bị.
Lưu ý: Chỉ một số ít thiết bị chạy Android 7.0
hỗ trợ chứng thực khoá ở cấp độ phần cứng; tất cả thiết bị khác chạy Android 7.0
hãy sử dụng quy trình chứng thực khoá ở cấp phần mềm. Trước khi bạn xác minh các cơ sở lưu trú
của khoá dựa trên phần cứng của thiết bị trong môi trường cấp sản xuất, bạn
phải đảm bảo rằng thiết bị hỗ trợ quy trình chứng thực khoá ở cấp độ phần cứng. Người nhận
để làm như vậy, bạn nên kiểm tra xem chuỗi chứng chỉ chứng thực có chứa một gốc
chứng chỉ được ký bằng khoá gốc chứng thực của Google và
Phần tử attestationSecurityLevel
trong khoá
mô tả cấu trúc dữ liệu được đặt thành bảo mật TrustedEnvironment
cấp độ.
Để biết thêm thông tin, hãy xem Chứng thực khoá tài liệu dành cho nhà phát triển.
Cấu hình bảo mật mạng
Trong Android 7.0, các ứng dụng có thể tuỳ chỉnh hành vi của chế độ bảo mật (HTTPS, TLS) kết nối một cách an toàn mà không cần sửa đổi mã, bằng cách sử dụng hàm khai báo Cấu hình bảo mật mạng thay vì sử dụng cấu hình thông thường các API có lập trình dễ gặp lỗi (ví dụ: X509TrustManager).
Các tính năng được hỗ trợ:
- Neo tin cậy tuỳ chỉnh. Cho phép ứng dụng tuỳ chỉnh Tổ chức phát hành chứng chỉ (CA) được tin cậy vì các kết nối bảo mật của họ. Cho ví dụ: tin tưởng các chứng chỉ tự ký cụ thể hoặc một nhóm CA công khai bị hạn chế.
- Ghi đè chế độ chỉ gỡ lỗi. Cho phép nhà phát triển ứng dụng gỡ lỗi an toàn các kết nối bảo mật của ứng dụng mà không làm tăng rủi ro cho những cơ sở.
- Chọn không sử dụng lưu lượng truy cập qua văn bản thô. Cho phép ứng dụng tự bảo vệ mình khỏi vô tình sử dụng lưu lượng truy cập qua văn bản thô.
- Ghim chứng chỉ. Tính năng nâng cao cho phép ứng dụng giới hạn những khoá máy chủ đáng tin cậy cho các kết nối bảo mật.
Để biết thêm thông tin, hãy xem phần Cấu hình bảo mật mạng.
Tổ chức phát hành chứng chỉ đáng tin cậy mặc định
Theo mặc định, các ứng dụng nhắm đến Android 7.0 chỉ tin tưởng chứng chỉ do hệ thống cung cấp và không còn tin tưởng Tổ chức phát hành chứng chỉ (CA) do người dùng thêm. Ứng dụng nhắm đến Android 7.0 (API cấp 24) muốn tin cậy CA do người dùng thêm nên sử dụng Cấu hình bảo mật mạng thành chỉ định cách đáng tin cậy CA người dùng.
Lược đồ chữ ký APK phiên bản 2
Android 7.0 giới thiệu Lược đồ chữ ký APK v2, lược đồ ký ứng dụng mới giúp bạn cung cấp thời gian cài đặt ứng dụng nhanh hơn và biện pháp bảo vệ tốt hơn trước những ứng dụng trái phép đối với tệp APK. Theo mặc định, Android Studio 2.2 và Android Trình bổ trợ Gradle 2.2 cho Gradle 2.2 ký ứng dụng của bạn bằng cả Lược đồ chữ ký APK v2 và giao thức ký truyền thống sử dụng tính năng ký JAR.
Mặc dù bạn nên áp dụng Lược đồ chữ ký APK v2 cho ứng dụng của mình, nhưng
lược đồ là không bắt buộc. Nếu ứng dụng của bạn không tạo bản dựng đúng cách khi sử dụng APK
Lược đồ chữ ký phiên bản 2, bạn có thể tắt giao thức mới này. Quy trình vô hiệu hoá
khiến Android Studio 2.2 và Trình bổ trợ Android cho Gradle 2.2 ký
chỉ sử dụng giao thức ký truyền thống. Để chỉ ký bằng
lược đồ truyền thống, hãy mở tệp build.gradle
cấp mô-đun, sau đó
thêm dòng v2SigningEnabled false
vào chữ ký phát hành của bạn
cấu hình:
android { ... defaultConfig { ... } signingConfigs { release { storeFile file("myreleasekey.keystore") storePassword "password" keyAlias "MyReleaseKey" keyPassword "password" v2SigningEnabled false } } }
Thận trọng: Nếu bạn ký ứng dụng bằng APK
Lược đồ chữ ký phiên bản 2 và thực hiện các thay đổi khác đối với ứng dụng, chữ ký của ứng dụng
không hợp lệ. Vì lý do này, hãy sử dụng các công cụ như zipalign
trước khi ký ứng dụng bằng Lược đồ chữ ký APK phiên bản 2.
Để biết thêm thông tin, hãy đọc tài liệu Android Studio mô tả cách ký ứng dụng trong Android Studio và cách định cấu hình tệp bản dựng để ký ứng dụng bằng Trình bổ trợ Android cho Gradle.
Quyền truy cập vào thư mục có giới hạn
Trong Android 7.0, ứng dụng có thể dùng các API mới để yêu cầu quyền truy cập vào các công cụ bên ngoài cụ thể
lưu trữ, bao gồm cả các thư mục trên phương tiện di động như SD
các thẻ. API mới đơn giản hoá đáng kể cách ứng dụng của bạn truy cập vào
các thư mục bộ nhớ ngoài, chẳng hạn như thư mục Pictures
. Chiến dịch Quảng cáo ứng dụng
chẳng hạn như ứng dụng ảnh có thể dùng các API này thay vì
READ_EXTERNAL_STORAGE
, cấp quyền truy cập vào toàn bộ bộ nhớ
thư mục hoặc Khung truy cập bộ nhớ, giúp người dùng chuyển đến
thư mục đó.
Ngoài ra, các API mới này giúp đơn giản hoá các bước mà người dùng thực hiện để cấp quyền quyền truy cập vào bộ nhớ ứng dụng của bạn. Khi bạn sử dụng API mới, hệ thống sử dụng giao diện người dùng quyền nêu rõ đây là thư mục nào của ứng dụng yêu cầu quyền truy cập.
Để biết thêm thông tin, hãy xem Có giới hạn Tài liệu dành cho nhà phát triển về Quyền truy cập thư mục.
Trình trợ giúp phím tắt
Trong Android 7.0, người dùng có thể nhấn Meta + / để kích hoạt
Màn hình Phím tắt hiển thị tất cả các phím tắt có sẵn cả
khỏi hệ thống và ứng dụng đang xem. Hệ thống truy xuất các thông tin này
tự động khỏi trình đơn của ứng dụng nếu các lối tắt đó tồn tại. Bạn có thể
cũng như cung cấp danh sách phím tắt được tinh chỉnh của riêng bạn cho màn hình. Bạn có thể
điều này bằng cách ghi đè phương thức onProvideKeyboardShortcuts()
.
Lưu ý: Không phải tất cả các phím Meta đều có bàn phím: trên bàn phím Macintosh, đó là phím Command trên bàn phím Windows, đó là phím Windows và trên Bàn phím trên Pixel C và ChromeOS chính là phím Tìm kiếm.
Để kích hoạt Trình trợ giúp phím tắt từ bất cứ đâu trong ứng dụng, hãy gọi
requestShowKeyboardShortcuts()
khỏi hoạt động liên quan.
API con trỏ tuỳ chỉnh
Android 7.0 giới thiệu Custom Pointer API (API Con trỏ tuỳ chỉnh), cho phép bạn tuỳ chỉnh giao diện, chế độ hiển thị và hành vi của con trỏ. Chức năng này đặc biệt hữu ích khi người dùng sử dụng chuột hoặc bàn di chuột để tương tác Đối tượng giao diện người dùng. Con trỏ mặc định sử dụng biểu tượng chuẩn. API này cũng bao gồm chức năng nâng cao như thay đổi giao diện của biểu tượng con trỏ khi di chuyển chuột hoặc bàn di chuột cụ thể.
Để đặt biểu tượng con trỏ, hãy ghi đè onResolvePointerIcon()
của lớp View
. Phương thức này sử dụng một
PointerIcon
để vẽ biểu tượng tương ứng với
sự kiện chuyển động cụ thể.
API Hiệu suất bền vững
Hiệu suất có thể biến động đáng kể đối với các ứng dụng chạy trong thời gian dài, vì hệ thống điều tiết động cơ hệ thống trên chip khi các thành phần thiết bị đạt đến giới hạn nhiệt độ. Sự biến động này thể hiện một mục tiêu luôn thay đổi cho ứng dụng các nhà phát triển tạo ra các ứng dụng có hiệu suất cao và hoạt động lâu dài.
Để giải quyết những hạn chế này, Android 7.0 có hỗ trợ cho chế độ hiệu suất ổn định, cho phép OEM đưa ra gợi ý về hiệu suất thiết bị đối với các ứng dụng chạy trong thời gian dài. Nhà phát triển ứng dụng có thể dùng những gợi ý này để điều chỉnh ứng dụng sao cho có thể dự đoán mức hiệu suất ổn định của thiết bị trong thời gian dài.
Nhà phát triển ứng dụng có thể dùng thử API mới này trong Android 7.0 trên
Chỉ dành cho thiết bị Nexus 6P. Để sử dụng tính năng này,
đặt cờ giai đoạn hiệu suất duy trì cho cửa sổ
bạn muốn chạy ở chế độ hiệu suất bền vững. Đặt cờ này bằng cách sử dụng
Window.setSustainedPerformanceMode()
. Hệ thống tự động
tắt chế độ này khi cửa sổ không còn được lấy tiêu điểm.
Hỗ trợ thực tế ảo
Android 7.0 bổ sung hỗ trợ và tối ưu hoá nền tảng cho Chế độ thực tế ảo mới để các nhà phát triển có thể tạo dựng trải nghiệm thực tế ảo trên thiết bị di động chất lượng cao cho người dùng. Có một số hiệu suất các tính năng nâng cao, bao gồm quyền truy cập vào lõi CPU độc quyền dành cho ứng dụng thực tế ảo. Trong các ứng dụng của mình, bạn có thể tận dụng tính năng theo dõi chuyển động đầu thông minh, và âm thanh nổi hoạt động đối với VR. Quan trọng nhất, Android 7.0 cung cấp cho đồ hoạ có độ trễ rất thấp. Để biết thông tin đầy đủ về cách tạo ứng dụng thực tế ảo cho Android 7.0, hãy xem SDK Thực tế ảo của Google dành cho Android.
Các tính năng nâng cao cho dịch vụ in
Trong Android 7.0, nhà phát triển dịch vụ in giờ đây có thể đưa ra thông tin bổ sung về từng máy in và lệnh in.
Khi liệt kê các máy in riêng lẻ, dịch vụ in giờ đây có thể đặt cho mỗi máy in biểu tượng theo hai cách:
- Bạn có thể đặt một biểu tượng từ mã nhận dạng tài nguyên bằng cách gọi
setIconResourceId()
. - Bạn có thể hiển thị một biểu tượng từ mạng bằng cách gọi
setHasCustomPrinterIcon()
, và đặt lệnh gọi lại khi biểu tượng được yêu cầu bằng cách sử dụngonRequestCustomPrinterIcon()
Ngoài ra, bạn có thể cung cấp hoạt động cho mỗi máy in để hiển thị
bằng cách gọi setInfoIntent()
.
Bạn có thể cho biết tiến trình và trạng thái của lệnh in trong lệnh in
gửi thông báo bằng cách gọi
setProgress()
và
setStatus()
.
API Chỉ số khung hình
Frame Chỉ số API cho phép một ứng dụng giám sát quá trình kết xuất giao diện người dùng
hiệu suất. API này cung cấp chức năng này bằng cách hiển thị API Pub/Sub truyền trực tuyến để chuyển khung hình
thông tin về thời gian cho cửa sổ hiện tại của ứng dụng. Dữ liệu được trả về là
tương đương với kết quả mà adb shell
dumpsys gfxinfo framestats
hiển thị, nhưng không giới hạn ở 120 khung hình trước.
Bạn có thể dùng Frame Chỉ số API để đo lường giao diện người dùng ở cấp lượt tương tác
hiệu suất trong phiên bản chính thức mà không cần kết nối USB. API này
cho phép thu thập dữ liệu với độ chi tiết cao hơn nhiều so với
adb shell dumpsys gfxinfo
. Độ chi tiết này có thể cao hơn vì
hệ thống có thể thu thập dữ liệu về các lượt tương tác cụ thể trong ứng dụng; hệ thống
không cần ghi lại tóm tắt chung của toàn bộ ứng dụng
hoặc xoá bất kỳ trạng thái chung nào. Bạn có thể dùng
để thu thập dữ liệu hiệu suất và nắm bắt sự hồi quy về hiệu suất của giao diện người dùng
cho các trường hợp sử dụng thực tế trong ứng dụng.
Để giám sát một cửa sổ, hãy triển khai phương thức
OnFrameMetricsAvailableListener.onFrameMetricsAvailable()
phương thức gọi lại và đăng ký trên cửa sổ đó.
API này cung cấp một đối tượng FrameMetrics
chứa dữ liệu thời gian mà hệ thống kết xuất con báo cáo cho các mốc khác nhau
trong vòng đời khung. Các chỉ số được hỗ trợ là: UNKNOWN_DELAY_DURATION
,
INPUT_HANDLING_DURATION
, ANIMATION_DURATION
LAYOUT_MEASURE_DURATION
, DRAW_DURATION
, SYNC_DURATION
COMMAND_ISSUE_DURATION
, SWAP_BUFFERS_DURATION
,
TOTAL_DURATION
và FIRST_DRAW_FRAME
.
Tệp ảo
Trong các phiên bản Android trước, ứng dụng của bạn có thể dùng Quyền truy cập vào bộ nhớ Khung cho phép người dùng chọn tệp từ tài khoản bộ nhớ trên đám mây của họ, như Google Drive. Tuy nhiên, không có cách nào để biểu thị các tệp không có đại diện trực tiếp cho mã byte; mọi tệp đã được yêu cầu cung cấp luồng đầu vào.
Android 7.0 bổ sung khái niệm tệp ảo vào Storage Access (Quyền truy cập vào bộ nhớ)
Khung. Tính năng tệp ảo cho phép
DocumentsProvider
để trả về các URI tài liệu có thể
được dùng với ý định ACTION_VIEW
ngay cả khi chúng
không có mã đại diện trực tiếp cho mã byte. Android 7.0 cũng cho phép bạn
cung cấp định dạng thay thế cho tệp người dùng, tệp ảo hoặc định dạng khác.
Để biết thêm thông tin về cách mở tệp ảo, hãy xem Mở tệp ảo trong Hướng dẫn về Khung truy cập bộ nhớ.