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).
Giới thiệu về android-latest-release
Tại sao tôi không thể gửi đến aosp-main?
Bạn không thể gửi đến aosp-main
vì nhánh đó hiện ở chế độ chỉ có thể đọc.
Tôi nên đề xuất thay đổi đối với AOSP ở đâu?
Bạn nên đề xuất các thay đổi mới cho android-latest-release
(khi sử dụng Repo) hoặc cho nhánh phát hành mới nhất được chỉ định trong tệp kê khai android-latest-release
(khi sử dụng Git trực tiếp). Bạn không cần di chuyển các thay đổi được đề xuất hiện có trên các nhánh khác (chẳng hạn như aosp-main
).
Tôi nên đồng bộ hoá với nhánh nào?
Khi dùng Repo, hãy đồng bộ hoá với
android-latest-release
bằng lệnh sau:repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest
Khi sử dụng Git trực tiếp, hãy đồng bộ hoá với nhánh bản sửa đổi mặc định được chỉ định trong
android-latest-release
manifest.
Hãy xem phần Khởi chạy ứng dụng khách Repo để biết thêm thông tin chi tiết về việc đồng bộ hoá các nhánh.
Mã từ android-latest-release có được hợp nhất với aosp-main không?
Không, mã sẽ không được hợp nhất vào aosp-main
. Đây là một nhánh chỉ đọc kể từ ngày 27 tháng 3 năm 2025.
Mã cho bản phát hành tiếp theo được chuyển đến đâu?
Google sẽ chuyển mã cho bản phát hành tiếp theo sang nhánh phát hành công khai mới nhất và cập nhật android-latest-release
manifest để trỏ đến nhánh đó.
Yêu cầu thay đổi của tôi có được chọn lọc từ nhánh android-latest-release vào Gerrit nội bộ không?
Sau khi bạn tải một thay đổi đề xuất lên, Google sẽ xem xét thay đổi đó và nếu chấp nhận, Google sẽ chọn lọc thay đổi đó vào Gerrit nội bộ.
Làm cách nào để biết yêu cầu thay đổi của tôi đã được chấp nhận hay chưa?
Các thay đổi được chấp nhận và chọn lọc sẽ xuất hiện trong một lần đẩy sau này vào một nhánh phát hành trên máy chủ lưu trữ Android và có thể được đồng bộ hoá với kho lưu trữ bằng android-latest-release
.
Không có cơ chế thông báo khi một thay đổi được đề xuất được chấp nhận hoặc bị từ chối.
Quy trình làm việc chung từ khi một cộng tác viên bên ngoài đề xuất thay đổi cho đến khi thay đổi đó được hợp nhất vào nhánh phát hành mới nhất là gì?
Một cộng tác viên bên ngoài đề xuất thay đổi đối với
android-latest-release
(khi dùng Repo) hoặc đối với nhánh phát hành mới nhất được chỉ định trong tệp kê khaiandroid-latest-release
(khi dùng Git trực tiếp).Google xem xét nội dung thay đổi. Nếu thay đổi là:
Được chấp nhận, Google sẽ chọn lọc thay đổi đó và hợp nhất vào nhánh phát triển nội bộ.
Không được chấp nhận, Google không chọn lọc nội dung thay đổi.
Cộng tác viên bên ngoài kiểm tra thay đổi của họ trong
android-latest-release
.
Nếu tôi không cần thay đổi như đề xuất nữa thì sao?
Nếu không cần thay đổi đề xuất nữa, không muốn hợp nhất thay đổi hoặc biết rằng Google đã xem xét thay đổi, hãy huỷ thay đổi để thay đổi đó vẫn nằm trong nhật ký thay đổi đề xuất trên máy chủ lưu trữ Android.
Câu hỏi nguồn mở
Tại sao Google mở mã nguồn Android?
Google bắt đầu AOSP để đáp lại những trải nghiệm của riêng 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 các nhà mạng, nhà sản xuất thiết bị gốc (OEM) và nhà phát triển luôn có thể sử dụng một nền tảng mở để biến những ý tưởng sáng tạo của họ thành hiện thực. Chúng tôi cũng muốn tránh mọi điểm lỗi trung tâm, vì vậy, không một nhà cung cấp dịch vụ nào trong ngành có thể hạn chế hoặc kiểm soát các hoạt động đổi mới của bất kỳ nhà cung cấp dịch vụ 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ể, vì lợi ích của tất cả mọi người.
Android là loại dự án nguồn mở nào?
Google giám sát quá trình 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 vững mạnh. Phần lớn 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 áp 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 lại quản lý 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 các khoản đầu tư của nhà phát triển và đảm bảo một sân chơi bình đẳng. Nền tảng này 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 Android là một nền tảng phần mềm có tính cạnh tranh cao. Google coi dự án Android là một hoạt động phát triển sản phẩm quy mô lớn và thực hiện các thoả thuận kinh doanh cần thiết để đảm bảo những 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 duy trì 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ở. Xét cho cùng thì 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 để mọi người có thể sửa đổi và phân phối phần mềm này 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 các thiết bị tuyệt vời vào một thị trường cạnh tranh. Sau đó, chúng tôi sẽ tích hợp những điểm cải tiến và đổi mới 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.
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 tiếp theo của phần mềm Android để hỗ trợ những lần ra mắt sản phẩm đó. Những thiết bị hàng đầu này sẽ 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. Cộng đồng này sẽ tiếp tục ra mắt nhiều thiết bị hơn để 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ị 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 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 mà tệp kê khai android-latest-release
trỏ đến.
Đây là nhánh mà các 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.
Cuối cùng, Google sẽ phát triể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.
Tại sao một số phần của Android được phát triển ở chế độ riêng tư?
Thường 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 có sự căng thẳng giữa việc vận chuyển sản phẩm và việc 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ư. Những 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 chúng tôi tạo phiên bản tiếp theo của nền tảng này. Đ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 thành trong tương lai chỉ để bắt kịp.
Khi nào thì mã nguồn được phát hành?
Khi chúng sẵn sàng. Phát hành mã nguồn là một quy trình khá phức tạp. Một số phần của Android, chẳng hạn như nhân, được phát triển 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, các API nền tảng cốt lõi đã sẵn sàng từ trước đó khá lâu để chúng tôi có thể đẩy mã nguồn ra ngoài để xem trước trước khi thiết bị phát hành. Trong các bản phát hành khác, bạn không thể làm việc này. 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ày ổn định và khi quy trình phát triển cho phép.
Quá trình phát hành mã nguồn cho một phiên bản Android mới bao gồm những bước nào?
Việc phát hành mã nguồn cho một 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 một hình ảnh hệ thống cho 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ủ đối với những 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ử của nhà mạng. Đây là một giai đoạn quan trọng của quy trình, vì nó giúp phát hiện các lỗi phần mềm.
Khi bản phát hành được các cơ quan quản lý và nhà mạng phê duyệt, nhà sản xuất sẽ bắt đầu sản xuất hàng loạt thiết bị và chúng tôi sẽ bắt đầu phát hành mã nguồn.
Cùng với quá trình sản xuất hàng loạt, nhóm Google bắt đầu thực hiện một số việ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 về API, cập nhật tài liệu (để phản ánh mọi sửa đổi đã được thực hiện trong quá trình kiểm thử đủ điều kiện, chẳng hạn như), chuẩn bị một SDK cho phiên bản mới và ra mắt thông tin về khả năng tương thích của nền tảng.
Nhóm pháp lý của chúng tôi sẽ ký phê duyệt lần cuối để phát hành mã nguồn mở. Tương tự như việc các cộng tác viên nguồn mở phải ký một Thoả thuận cấp phép cộng tác viên để chứng thực quyền sở hữu trí tuệ đối với nội dung đóng góp của họ, Google phải xác minh rằng nguồn này đã được xoá để đóng góp.
Từ thời điểm bắt đầu sản xuất hàng loạt, quy trình phát hành phần mềm thường mất khoảng một tháng, vì vậy, các bản phát hành mã nguồn thường diễn ra vào khoảng thời gian các thiết bị đến tay 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à mã nguồn mở, nên phần mềm này có thể được dùng cho mọi mục đích, kể cả phát triển các thiết bị không tương thích với những thiết bị khác dựa trên cùng một nguồn.
Chương trình tương thích của Android có chức năng xác định một cách triển khai cơ bản 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 biệt các thiết bị tương thích với Android với những 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 trường hợp sử dụng mã nguồn Android, nhưng để tham gia vào hệ sinh thái Android, chương trình phải xác định một thiết bị là tương thích với Android.
Làm cách nào để đó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.
Có những hạn chế đối với các loại mã mà chúng tôi chấp nhận. 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 đầy đủ dựa trên C++. 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 nội dung đó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.
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 thông 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ề người cam kết. Tất cả nội dung đóng góp (kể cả nội dung do nhân viên Google viết) đều phải thông 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ý các đóng góp mã nguồn một cách gọn gàng.
Người phê duyệt được chỉ định cần xem xét và chấp nhận tất cả các thay đổi được đề xuất. Người phê duyệt thường là nhân viên của Google, nhưng những người phê duyệt này chịu trách nhiệm đối với tất cả các bài dự thi, 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á.