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 nguồn mở
Tại sao Google lại mở mã nguồn Android?
Google bắt đầu AOSP nhằm đáp lại trải nghiệm của chúng tôi khi khởi chạy ứng dụng dành cho thiết bị di động. Chúng tôi muốn đảm bảo rằng sẽ luôn có sẵn một nền tảng mở cho các nhà cung cấp dịch vụ, OEM và nhà phát triển sử dụng để biến ý tưởng đổi mới của họ thành hiện thực. Chúng tôi cũng muốn tránh bất kỳ điểm thất bại trọng tâm nào, để không một công ty đơn lẻ nào trong ngành có thể hạn chế hoặc kiểm soát những đổi mới của bất kỳ công ty nào khác. Mục tiêu quan trọng nhất của chúng tôi với AOSP là đảm bảo rằng 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ể, vì lợi ích của mọi người.
Android là loại dự án nguồn mở nào?
Google giám sát sự phát triển của AOSP cốt lõi và nỗ lực tạo ra cộng đồng người dùng và nhà phát triển mạnh mẽ. Phần lớn, mã nguồn Android được cấp phép theo Giấy phép Apache 2.0 dễ dãi, thay vì giấy phép copyleft . Chúng tôi chọn giấy phép Apache 2.0 vì chúng tôi tin rằng nó khuyến khích việc áp dụng rộng rãi phần mềm Android. Để biết chi tiết, xem Giấy phép .
Tại sao Google lại phụ trách Android?
Việc ra mắt một nền tảng phần mềm rất phức tạp. Tính mở là rất quan trọng đối với sự thành công lâu dài của một nền tảng, bởi 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 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 có tính cạnh tranh hoàn toàn. Google coi dự án Android là một hoạt động phát triển sản phẩm toàn diện và đạt được các thỏa thuận kinh doanh cần thiết để đảm bảo các thiết bị tuyệt vời chạy Android sẽ được đưa ra 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 với tư cách là một nền tảng và một dự án nguồn mở. Suy 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 đã mở 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 để phát triển sản phẩm Android là gì?
Chúng tôi phát hành các thiết bị tuyệt vời vào một thị trường cạnh tranh. Sau đó, chúng tôi kết hợp những cải tiến và cải tiến mà chúng tôi đã thực hiện vào nền tảng cốt lõi để tạo thành phiên bản tiếp theo.
Trên thực tế, điều này có nghĩa là nhóm kỹ thuật Android tập trung vào một số ít thiết bị "hàng đầu" và phát triển phiên bản phần mềm Android tiếp theo để hỗ trợ các lần ra mắt sản phẩm đó. Những thiết bị hàng đầu này giúp giảm thiểu phần lớn rủi ro về sản phẩm và mở đường cho cộng đồng OEM rộng lớn, những người theo dõi nhiều thiết bị tận dụng các tính năng mới hơn. 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ị trong thế giới thực.
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à các nhà sản xuất chuyển sang thiết bị của họ. Chi nhánh này được giữ phù hợp để phát hành mọi lúc.
Đồng thời, có một nhánh thử nghiệm hiện tại , nơi mà những đóng góp mang tính suy đoán, chẳng hạn như các tính năng lớn của thế hệ tiếp theo, được phát triển. Các bản sửa lỗi và đó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 làm việc trên phiên bản tiếp theo của nền tảng Android song song với việc phát triển một thiết bị hàng đầu. Nhánh này thu hút những thay đổi từ các nhánh thử nghiệm và ổn định khi thích hợp.
Để biết chi tiết về dòng mã, nhánh và bản phát hành, hãy xem Quản lý phần mềm Android .
Tại sao các bộ phận của Android được phát triển 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ị muốn cung cấp phần mềm mới nhất có thể. Trong khi đó, các 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 tiếp theo của Android bao gồm các API nền tảng cốt lõi được phát triển ở một nhánh riêng. Các API này tạo thành phiên bản tiếp theo của Android. Mục đích của chúng tôi là tập trung sự chú ý 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 các 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 thành trong tương lai chỉ để theo 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 sẽ được phát triển mở. Chúng tôi dự định sẽ chuyển nhiều bộ phận này hơn để phát triển mở theo thời gian.
Khi nào việc phát hành mã nguồn được thực hiện?
Khi họ đã sẵn sàng. Phát hành 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 mở và mã nguồn đó luôn có sẵn. Các phần khác trước tiên được phát triển trên 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 đủ lâu để chúng tôi có thể đẩy mã nguồn ra để xem sớm trước khi phát hành thiết bị. Trong các phiên bản khác, điều này là không thể. Trong mọi trường hợp, chúng tôi phát hành nguồn nền tảng khi chúng tôi 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 phiên bản Android mới có liên quan gì?
Phát hành mã nguồn cho phiên bản mới của nền tảng Android là một quá trình quan trọng. Đầu tiên, phần mềm được tích hợp vào hình ảnh hệ thống của thiết bị và trải qua nhiều hình thức chứng nhận khác nhau, bao gồm chứng nhận theo quy định của chính phủ đối với các khu vực mà điện thoại sẽ được triển khai. Mã này cũng trải qua quá trình kiểm tra của nhà điều hành. Đây là giai đoạn quan trọng của quy trình vì nó giúp phát hiện lỗi phần mềm.
Khi việc phát hành được các cơ quan quản lý và nhà điều hành chấp thuận, 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 quá trình sản xuất hàng loạt, nhóm Google khởi động một số nỗ lực nhằm chuẩn bị phát hành nguồn mở. Những nỗ lực này bao gồm thực hiện các thay đổi API cuối cùng, cập nhật tài liệu (chẳng hạn như để phản ánh bất kỳ sửa đổi nào được thực hiện trong quá trình kiểm tra chất lượng), chuẩn bị SDK cho phiên bản mới và khởi chạy thông tin tương thích nền tảng.
Nhóm pháp lý của chúng tôi thực hiện bước phê duyệt cuối cùng để phát hành mã thành nguồn mở. Giống như những người đóng góp nguồn mở được yêu cầu ký Thỏa thuận cấp phép dành cho người đóng góp để chứng thực quyền sở hữu trí tuệ đối với đóng góp của họ, Google phải xác minh rằng nguồn đó đã được chứng minh rõ ràng để thực hiện đóng góp.
Tính từ thời điểm 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, do đó việc phát hành mã nguồn thường diễn ra vào khoảng thời điểm thiết bị đến tay người dùng.
AOSP liên quan như thế nào đến Chương trình tương thích với Android?
AOSP duy trì phần mềm Android và phát triển các phiên bản mới. Vì là nguồn mở nên phần mềm này có thể được sử dụng cho mọi mục đích, 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 cách triển khai cơ bản của Android tương thích với các ứng dụng của bên thứ ba do nhà phát triển viết. Các thiết bị tương thích với Android sẽ đủ điều kiện tham gia vào hệ sinh thái Android, bao gồm Google Play; các thiết bị không đáp ứng yêu cầu tương thích tồn tại bên ngoài hệ sinh thái đó.
Nói cách khác, Chương trình tương thích với Android là cách chúng tôi tách biệt các thiết bị tương thích với Android khỏi các thiết bị chỉ chạy các phiên bản phái sinh của mã nguồn. Chúng tôi hoan nghênh mọi hoạt động sử dụng mã nguồn Android nhưng để 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.
Tôi có thể đóng góp cho Android bằng cách nào?
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.
Có những giới hạn đối với các loại đóng góp mã mà chúng tôi chấp nhận. Ví dụ: ai đó có thể muốn đóng góp một API ứng dụng thay thế, chẳng hạn như 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 thời gian chạy ART. Tương tự, chúng tôi sẽ không chấp nhận những đóng góp như thư viện GPL hoặc LGPL không tương thích với mục tiêu cấp phép của chúng tôi.
Chúng tôi khuyến khích những người quan tâm đến việc đóng góp mã nguồn hãy 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 chi tiết, xem Đóng góp .
Làm cách nào để trở thành người cam kết Android?
AOSP không thực sự có khái niệm về người cam kết. Tất cả các đóng góp (bao gồm cả những đóng góp của nhân viên Google) đều đi qua một hệ thống dựa trên web có tên là Gerrit, 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ý rõ ràng các khoản đóng góp 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 đã gửi. Người phê duyệt thường là nhân viên của Google nhưng cũng chính những người phê duyệt đó lại chịu trách nhiệm về tất cả nội dung gửi, bất kể nguồn gốc.
Để biết chi tiết, xem Gửi bản vá .