Câu hỏi thường gặp về AOSP (Câu hỏi thường gặp)

Tài liệu này chứa câu trả lời cho các câu hỏi chung về Nền tảng nguồn mở Android (AOSP).

Câu hỏi về nguồn mở

Tại sao Google mở mã nguồn Android?

Google đã bắt đầu AOSP dựa trên trải nghiệm của chính chúng tôi khi ra mắt các ứng dụng di động. Chúng tôi muốn đảm bảo rằng luôn có một nền tảng mở để các nhà mạng, nhà sản xuất thiết bị gốc (OEM) và nhà phát triển có thể sử dụng nhằm hiện thực hoá các ý tưởng sáng tạo của họ. Chúng tôi cũng muốn tránh mọi điểm thất bại tập trung, vì vậy, không một bên trong ngành nào có thể hạn chế hoặc kiểm soát hoạt động đổi mới của bất kỳ bên nào khác. Mục tiêu quan trọng nhất của chúng tôi đối với AOSP là đảm bảo phần mềm Android nguồn mở được triển khai rộng rãi và tương thích nhất có thể để mang lại lợi ích cho mọi người.

Android thuộc loại dự án nguồn mở nào?

Google giám sát việc phát triển AOSP cốt lõi và nỗ lực tạo ra các cộng đồng nhà phát triển và người dùng mạnh mẽ. Trong hầu hết trường hợp, mã nguồn Android được cấp phép theo Giấy phép Apache 2.0 cho phép, thay vì giấy phép copyleft. Chúng tôi chọn giấy phép Apache 2.0 vì tin rằng giấy phép này sẽ khuyến khích việc sử dụng rộng rãi phần mềm Android. Để biết thông tin chi tiết, hãy xem phần Giấy phép.

Tại sao Google chịu trách nhiệm về Android?

Việc ra mắt một nền tảng phần mềm là một quá trình phức tạp. Tính cởi mở là yếu tố quan trọng đối với sự thành công lâu dài của một nền tảng, vì tính cởi mở thu hút đầu tư từ các nhà phát triển và đảm bảo một sân chơi bình đẳng. Nền tảng cũng phải là một sản phẩm hấp dẫn đối với người dùng.

Google đã cam kết cung cấp các nguồn lực kỹ thuật chuyên nghiệp cần thiết để đảm bảo rằng Android là một nền tảng phần mềm hoàn toàn cạnh tranh. Google coi dự án Android là một hoạt động phát triển sản phẩm quy mô đầy đủ và thực hiện các thoả thuận kinh doanh cần thiết để đảm bảo các thiết bị tuyệt vời chạy Android có thể ra mắt thị trường.

Bằng cách đảm bảo Android thành công với người dùng, chúng tôi giúp đảm bảo sức sống của Android dưới dạng một nền tảng và một dự án nguồn mở. Xét cho cùng, ai lại muốn mã nguồn của một sản phẩm không thành công?

Mục tiêu của chúng tôi là đảm bảo một hệ sinh thái thành công xung quanh Android. Chúng tôi đã công khai mã nguồn Android để bất kỳ ai cũng có thể sửa đổi và phân phối phần mềm nhằm đáp ứng nhu cầu của riêng họ.

Chiến lược tổng thể của Google về việc phát triển sản phẩm Android là gì?

Chúng tôi phát hành những thiết bị tuyệt vời ra thị trường cạnh tranh. Sau đó, chúng tôi sẽ kết hợp các điểm cải tiến và nâng cao mà chúng tôi đã thực hiện vào nền tảng cốt lõi dưới dạng phiên bản tiếp theo.

Trong thực tế, điều này có nghĩa là nhóm kỹ sư Android tập trung vào một số ít thiết bị "hạng nhất" và phát triển phiên bản tiếp theo của phần mềm Android để hỗ trợ các lần ra mắt sản phẩm đó. Những thiết bị hàng đầu này hấp thụ phần lớn rủi ro sản phẩm và mở đường cho cộng đồng nhà sản xuất thiết bị gốc (OEM) rộng lớn, những người sẽ tiếp nối bằng nhiều thiết bị khác tận dụng các tính năng mới. Bằng cách này, chúng tôi đảm bảo rằng nền tảng Android phát triển theo nhu cầu của các thiết bị thực tế.

Phần mềm Android được phát triển như thế nào?

Mỗi phiên bản nền tảng của Android (chẳng hạn như 1.5 hoặc 8.1) đều có một nhánh tương ứng trong cây nguồn mở. Nhánh gần đây nhất được coi là phiên bản nhánh ổn định hiện tại. Đây là nhánh mà nhà sản xuất chuyển sang thiết bị của họ. Nhánh này luôn phù hợp để phát hành.

Đồng thời, có một nhánh thử nghiệm hiện tại, nơi các nội dung đóng góp mang tính suy đoán (chẳng hạn như các tính năng lớn thế hệ mới) được phát triển. Các bản sửa lỗi và nội dung đóng góp khác có thể được đưa vào nhánh ổn định hiện tại từ nhánh thử nghiệm nếu thích hợp.

Cuối cùng, Google sẽ phát triển phiên bản tiếp theo của nền tảng Android cùng với việc phát triển một thiết bị hàng đầu. Nhánh này sẽ lấy các thay đổi từ nhánh thử nghiệm và nhánh ổn định khi thích hợp.

Để biết thông tin chi tiết về các nhánh và bản phát hành, hãy xem phần Vòng đời bản phát hành.

Tại sao một số phần của Android được phát triển ở chế độ riêng tư?

Thông thường, phải mất hơn một năm để đưa một thiết bị ra thị trường. Và tất nhiên, các nhà sản xuất thiết bị đều muốn cung cấp phần mềm mới nhất có thể. Trong khi đó, nhà phát triển không muốn liên tục theo dõi các phiên bản mới của nền tảng khi viết ứng dụng. Cả hai nhóm đều gặp phải sự căng thẳng giữa việc vận chuyển sản phẩm và không muốn bị tụt lại phía sau.

Để giải quyết vấn đề này, một số phần của phiên bản Android tiếp theo, bao gồm cả các API nền tảng cốt lõi, được phát triển trong một nhánh riêng tư. Các API này tạo nên phiên bản Android tiếp theo. Mục tiêu của chúng tôi là tập trung vào phiên bản ổn định hiện tại của mã nguồn Android trong khi tạo phiên bản tiếp theo của nền tảng. Điều này cho phép nhà phát triển và OEM sử dụng một phiên bản duy nhất mà không cần theo dõi công việc chưa hoàn tất trong tương lai chỉ để bắt kịp. Các phần khác của hệ thống Android không liên quan đến khả năng tương thích của ứng dụng được phát triển công khai. Chúng tôi dự định sẽ chuyển nhiều phần hơn trong số này sang phát triển mở theo thời gian.

Khi nào bản phát hành mã nguồn được phát hành?

Khi họ đã sẵn sàng. Giải phóng mã nguồn là một quá trình khá phức tạp. Một số phần của Android được phát triển dưới dạng công khai và mã nguồn đó luôn có sẵn. Các phần khác được phát triển trước trong một cây riêng tư và mã nguồn đó sẽ được phát hành khi phiên bản nền tảng tiếp theo đã sẵn sàng.

Trong một số bản phát hành, API nền tảng cốt lõi đã sẵn sàng đủ xa để chúng tôi có thể đẩy mã nguồn ra trước khi phát hành thiết bị. Trong các bản phát hành khác, điều này là không thực hiện được. Trong mọi trường hợp, chúng tôi sẽ phát hành nguồn nền tảng khi cảm thấy phiên bản đó ổn định và khi quá trình phát triển cho phép.

Việc phát hành mã nguồn cho một phiên bản Android mới bao gồm những gì?

Việc phát hành mã nguồn cho phiên bản mới của nền tảng Android là một quy trình quan trọng. Trước tiên, phần mềm được tích hợp vào hình ảnh hệ thống cho một thiết bị và trải qua nhiều hình thức chứng nhận, bao gồm cả chứng nhận theo quy định của chính phủ cho các khu vực mà điện thoại sẽ được triển khai. Mã này cũng trải qua quy trình kiểm thử toán tử. Đây là một giai đoạn quan trọng của quy trình này vì giúp phát hiện lỗi phần mềm.

Khi bản phát hành được các cơ quan quản lý và nhà vận hành phê duyệt, nhà sản xuất bắt đầu sản xuất hàng loạt thiết bị và chúng tôi bắt đầu phát hành mã nguồn.

Đồng thời với việc sản xuất hàng loạt, nhóm Google cũng bắt đầu một số nỗ lực để chuẩn bị cho bản phát hành nguồn mở. Những nỗ lực này bao gồm việc thực hiện các thay đổi cuối cùng đối với API, cập nhật tài liệu (ví dụ: để phản ánh mọi nội dung sửa đổi đã thực hiện trong quá trình kiểm thử năng lực), chuẩn bị SDK cho phiên bản mới và phát hành thông tin về khả năng tương thích với nền tảng.

Nhóm pháp lý của chúng tôi sẽ ký duyệt lần cuối để phát hành mã nguồn mở. Cũng giống như việc các cộng tác viên nguồn mở phải ký Thoả thuận cấp phép cho cộng tác viên để chứng thực quyền sở hữu tài sản trí tuệ đối với nội dung đóng góp của họ, Google phải xác minh rằng nguồn đó đã được cấp phép để đóng góp.

Kể từ khi bắt đầu sản xuất hàng loạt, quá trình phát hành phần mềm thường mất khoảng một tháng. Vì vậy, việc phát hành mã nguồn thường diễn ra vào cùng thời điểm thiết bị tiếp cận người dùng.

AOSP có liên quan như thế nào đến Chương trình tương thích của Android?

AOSP duy trì phần mềm Android và phát triển các phiên bản mới. Vì là phần mềm nguồn mở nên bạn có thể sử dụng phần mềm này cho bất kỳ mục đích nào, bao gồm cả việc phát triển các thiết bị không tương thích với các thiết bị khác dựa trên cùng một nguồn.

Chức năng của Chương trình tương thích với Android là xác định phương thức triển khai cơ sở của Android tương thích với các ứng dụng bên thứ ba do nhà phát triển viết. Những thiết bị tương thích với Android đủ điều kiện tham gia hệ sinh thái Android, bao gồm cả Google Play; những thiết bị không đáp ứng các yêu cầu về khả năng tương thích sẽ nằm ngoài hệ sinh thái đó.

Nói cách khác, Chương trình tương thích của Android là cách chúng tôi phân tách các thiết bị tương thích với Android với các thiết bị chỉ chạy các dẫn xuất của mã nguồn. Chúng tôi hoan nghênh mọi trường hợp sử dụng mã nguồn Android. Tuy nhiên, để tham gia vào hệ sinh thái Android, thiết bị phải được chương trình xác định là tương thích với Android.

Làm cách nào để tôi đóng góp cho Android?

Bạn có thể báo cáo lỗi, viết ứng dụng cho Android hoặc đóng góp mã nguồn cho AOSP.

Chúng tôi có giới hạn về các loại nội dung đóng góp mã. Ví dụ: một người có thể muốn đóng góp một API ứng dụng thay thế, chẳng hạn như một môi trường dựa trên C++ đầy đủ. Chúng tôi sẽ từ chối đóng góp đó vì Android khuyến khích các ứng dụng chạy trong môi trường thời gian chạy ART. Tương tự, chúng tôi sẽ không chấp nhận các nội dung đóng góp như thư viện GPL hoặc LGPL không phù hợp với mục tiêu cấp phép của chúng tôi.

Những người quan tâm đến việc đóng góp mã nguồn nên liên hệ với chúng tôi qua các kênh được liệt kê trong Cộng đồng Android trước khi bắt đầu bất kỳ công việc nào. Để biết thông tin chi tiết, hãy xem phần Đóng góp.

Làm cách nào để trở thành người đóng góp cho Android?

AOSP không thực sự có khái niệm về uỷ quyền. Tất cả nội dung đóng góp (bao gồm cả nội dung do nhân viên Google viết) đều phải trải qua một hệ thống dựa trên web có tên là Gerrit. Đây là một phần của quy trình kỹ thuật Android. Hệ thống này hoạt động song song với hệ thống quản lý mã nguồn Git để quản lý một cách rõ ràng các phần đóng góp cho mã nguồn.

Người phê duyệt được chỉ định cần phải chấp nhận tất cả các thay đổi được gửi. Người phê duyệt thường là nhân viên của Google, nhưng cùng một người phê duyệt sẽ chịu trách nhiệm cho tất cả nội dung gửi, bất kể nguồn gốc.

Để biết thông tin chi tiết, hãy xem phần Gửi bản vá.