Android Nougat

Android 7.0 "Nougat" ( tên mã phát triển là Android N) là một phiên bản phát hành của hệ điều hành Android. Lần đầu được phát hành dưới dạng một bản dựng beta vào ngày 9 tháng 3 năm 2016, nó đã được chính thức phát hành vào ngày 22 tháng 8 năm 2016, với các thiết bị Nexus được nhận bản cập nhật đầu tiên.

Android 7.0 giới thiệu những thay đổi đáng chú ý tới hệ điều hành và nền tảng phát triển của nó, bao gồm khả năng hiển thị nhiều ứng dụng trên màn hình cùng một lúc bằng cách chia màn hình, hỗ trợ trả lời thông báo trực tiếp trong thẻ thông báo, cũng như một môi trường Java dựa trên OpenJDK và hỗ trợ hàm API vẽ đồ họa Vulkan, và cập nhật hệ thống "liên tục" trên các thiết bị được hỗ trợ. Đối với những dòng Google Pixel thì Android 7.0 đã lột xác về giáo diện màn hình chính

== Lịch sử ==
Vào ngày 9 tháng 3 năm 2016, trước cả hội nghị nhà phát triển Google I/O, Google đã phát hành phiên bản beta đầu tiên của Android "N" như một phần của "Chương trình Android Beta" mới để thử nghiệm dành cho các nhà phát triển và những người tình nguyện trước khi phát hành chính thức vào "mùa hè này". Các bản dựng xem trước cho nhà phát triển chỉ tương thích với các thiết bị Google Nexus hiện tại; chiếc Nexus 5X, Nexus 6P, Nexus 6, Nexus 9, Pixel C, và Nexus Player. "Chương trình Android Beta" được giới thiệu là cho phép người thử nghiệm tham gia cập nhật OTA các phiên bản beta mới ngay khi chúng được phát hành. Google thông báo rằng năm bản xem trước cho nhà phát triển của Android "N" sẽ được phát hành hàng tháng từ tháng 3 đến tháng 7 năm 2016.

Vào ngày 13 tháng 4 năm 2016, Bản xem trước Android N 2 đã được phát hành.

Google tiếp tục thảo luận thêm về Android "N" trong bài phát biểu tại I/O vào ngày 18 tháng 5 năm 2016, và tiết lộ về nền tảng thực tế ảo mới của hãng Daydream. Trong thời gian hội nghị, Bản xem trước Beta 3 được phát hành, cùng với việc Google thông báo nó sẽ chuyển từ gia đoạn beta phát triển sang beta công khai, có nghĩa là bất cứ ai đều có thể dùng thử. Google cũng thông báo rằng hãng sẽ mở một cuộc thị để góp ý tưởng về cái tên phát hành cho hệ điều hành này.

Bản xem trước Developer Preview 4 được phát hành ngày 15 tháng 6 năm 2016. Vào ngày 30 tháng 6 năm 2016, Google thông báo rằng tên phát hành của Android N sẽ là "Nougat"; hãng cũng xác nhận rằng Nougat sẽ là phiên bản 7.0 của Android.

Bản xem trước Beta cuối cùng Beta Preview, 5, được phát hành ngày 18 tháng 7 năm 2016.

Android 7.0 Nougat được chính thức phát hành vào ngày 22 tháng 8 năm 2016, với các thiết bị Google Nexus Nexus 6, Nexus 5X, Nexus 6P, Nexus 9, Nexus Player, Pixel C và được nhận cập nhật đầu tiên.

== Tính năng ==
=== Trải nghiệm người dùng ===
Android N giới thiệu một chế độ hiển thị chia màn hình, trong đó hai ứng dụng có thể chạy cùng lúc, mỗi ứng dụng được hiển thị ở mỗi nửa màn hình. Một chế độ đa cửa sổ thử nghiệm cũng được thêm vào dưới dạng tính năng ẩn, trong đó nhiều ứng dụng có thể xuất hiện cùng lúc trên màn hình trong các cửa sổ chồng xếp lên nhau.

Phần thông báo cũng được thiết kế lại, giới thiệu hàng biểu tượng cài đặt nhỏ hơn, thay thế các thẻ thông báo với thiết kế "sheet", và cho phép phản hồi thông báo trực tiếp (tính năng này được được thêm vào qua các API sẵn có được sử dụng cho chức năng tương tự trên Android Wear). Nhiều thông báo từ một ứng dụng cũng có thể được "gộp chung", và người dùng được kiểm soát thông báo nhiều hơn cho mỗi ứng dụng.

Cơ chế tiết kiệm năng lượng "Doze" được giới thiệu trong Marshmallow được mở rộng thêm một trạng thái được kích hoạt khi thiết bị đang dùng pin và màn hình đã tắt được một thời gian, nhưng không phải là không giữ nguyên. Trong trạng thái này, hoạt động mạng bị giới hạn, và các ứng dụng được cho phép "giữ nguyên cửa sổ", cho phép chúng truy cập vào mạng và tiến hành các tác vụ ngầm. Giống như Marshmallow, trạng thái Doze đầy đủ được kích hoạt nếu thiết bị giữ nguyên với màn hình đã tắt trong một khoảng thời gian. Một chế độ "Data Saver" ("Tiết kiệm dữ liệu") giới hạn sử dụng dữ liệu di động ngầm, và có thể kích hoạt các chức năng trong ứng dụng được thiết kế để giảm sử dụng dữ liệu, ví dụ như giảm chất lượng phương tiện trực tuyến.

=== Nền tảng ===
Vào tháng 12 năm 2015, Google thông báo rằng Android Nougat sẽ chuyển JRE (Java Runtime Environment) của nó từ Apache Harmony đã không còn hoạt động nữa sang OpenJDK—phần thực hiện mã nguồn mở chính thức của nền tảng Java được duy trì bởi Oracle Corporation và cộng đồng Java. Android Runtime (ART) nay có thêm hệ thống biên dịch hướng dẫn qua profile, sử dụng một trình biên dịch JIT và profiling cùng với trình biên dịch AOT hiện tại có sẵn để tối ưu thêm các ứng dụng cho phần cứng của một thiết vị và các điều kiện ngầm khác.

Nougat giới thiệu một hệ thống kích hoạt cập nhật "liên tục", tự động, vừa chia sẻ và dựa trên một số mã của chức năng tương tự trên Chrome OS. Hệ thống sử dụng một cặp phân vùng SquashFS; hệ thống Android thực thi từ một phân vùng "trực tuyến", trong khi các bản cập nhật được áp dụng dưới nền trong một phân vùng "ngoại tuyến" dôi dư. Trong lần khởi động tiếp theo sau quá trình cài đặt bản cập nhật, phân vùng dư sẽ được biểu thị là hoạt động, và từ lúc đó thiết bị sẽ khởi động vào hệ thống đã được cập nhật. Phân vùng hệ thống trước được giữ lại để sao lưu đề phòng khi cập nhật thất bại, và để phục vụ như phân vùng "ngoại tuyến" trong lần cập nhật tiếp theo. Hệ thống này loại bỏ yêu cầu thiết bị phải khởi động lại và môi trường khôi phục hệ thống để áp dụng bản cập nhật (khiến thiết bị không thể sử dụng được trong suốt thời gian cài đặt bản cập nhật), và cũng cho phép một bản cập nhật được tự động gỡ ra và quay lại phiên bản cũ trong trường hợp thất bại. Do yêu cầu phân vùng của hệ thống này, các thiết bị hiện tại sẽ không hỗ trợ cập nhật liên tục. Hơn nữa, do các thay đổi về ART trên Nougat, các ứng dụng không cần phải được biên dịch lại trong lần khởi động đầu tiên sau một bản cập nhật hệ thống nữa.

Bản Developer Preview 2 đã thêm hỗ trợ nền tảng cho Vulkan, API vẽ 3D cấp thấp mới để bổ sung cho OpenGL ES nhưng với hiệu suất đồ họa cao hơn.

Hỗ trợ cho nền tảng VR Daydream được giới thiệu trong Nougat. Các tính năng bao gồm một "chế độ VR" để giảm độ trễ đồ họa, một "chế độ duy trì hiệu suất" để hỗ trợ các nhà phát triển trong việc tối ưu hóa các ứng dụng cho một profile nhiệt của các thiết bị, một thuật toán dò tìm đầu mới kết hợp dữ liệu nhập vào từ nhiều cảm biến thiết bị, và tích hợp thông báo hệ thống vào giao diện người dùng VR.

Nougat là phiên bản đầu tiên hỗ trợ Unicode 9.0 và đi kèm với các emoji đã được cập nhật cộng với hỗ trọ màu da cho emoji.

=== Bảo mật ===
Sau vụ lỗi bảo mật Stagefright được phát hiện và sửa chữa vào năm 2015, một vài thay đổi đã được thực hiện để củng cố lại hệ thống khỏi các mối đe dọa trong tương lai. Một cơ chế phát hiện lỗi tràn số nguyên trong thời gian chạy được thêm vào để ngăn chặn phần lớn các lỗi lập trình tương tự như Stagefright trở thành mối đe dọa, bên cạnh việc giúp sửa và phòng ngừa các lỗi như vậy. Tiến trình nguyên khối "MediaServer" của Android được thiết kế lại để tuân theo quy tắc ưu tiên tối thiểu. "MediaServer" nay được tách thành nhiều quá trình tách biệt, mỗi quá trình chạy trên sandbox không đặc quyền riêng của nó, và chỉ cho phép các quyền được yêu cầu cho tác vụ của nó. Ví dụ, chỉ có "AudioServer" mới có thể truy cập Bluetooth, và "libstagefright" nay chạy trong sandbox "MediaCodecService", trong đó chỉ cấp quyền truy cập GPU. Các giới hạn lớn hơn được đặt thông qua seccomp.

Một vài cơ chế được kích hoạt để giảm khả năng các mã độc có thể xâm nhập và/hoặc thực thi bên trong hạt nhân Linuxl, bao gồm chia bộ nhớ hạt nhân thành các phần riêng biệt cho mã và dữ liệu, với các quyền truy cập trang chỉ đọc và không thực thi được điều chỉnh cho phù hợp. Hạt nhân cũng bị giới hạn việc trực tiếp truy cập bộ nhớ không gian người dùng, và bảo vệ chồng xếp được kích hoạt trong trình biên dịch để giảm phá vỡ ngăn xếp. Để giới hạn độ phơi nhiễm của hạt nhân với các mã độc, perf được vô hiệu hóa theo mặc định, các lệnh ioctl bị giới hạn bởi SELinux, và seccomp-bpf được kích hoạt để cấp quyền giới hạn các cuộc gọi hệ thống cho các quá trình.

Trên các thiết bị được cài đặt sẵn Android Nougat, quy định "Verified Boot" ("Khởi động Xác nhận"—được giới thiệu một phần trên KitKat, và hiển thị thông báo khi khởi động trên Marshmallow) phải được thực thi. Nếu các tập tin hệ thống bị hư hỏng hoặc bị điều chỉnh lại, hệ điều hành sẽ chỉ cho phép các hoạt động trong một chế độ giới hạn sử dụng hoặc từ chối khởi động.

== Tương lai ==
Google nói rằng họ đang làm việc trên một bản phát hành bảo trì đầu tiên và một bản xem trước cho nhà phát triển sẽ được phát hành vào mùa thu (khoảng từ tháng 10 - tháng 12). Các bản phát hành bảo trì này sẽ tiếp tục mang đến các cải tiến mới.

== Xem thêm ==
- Lịch sử các phiên bản Android