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ế độ chỉ đọc.
Tôi nên đề xuất các thay đổi cho 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 sửa đổi mặc định được chỉ định trong tệp kê khai android-latest-release (khi sử dụng trực tiếp Git). 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).
Để biết thêm thông tin, hãy xem bài viết Tải nội dung thay đổi lên để xem xét.
Tôi nên đồng bộ hoá với nhánh nào?
Khi sử dụng Repo, hãy đồng bộ hoá với
android-latest-releasebằng lệnh sau:repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifestKhi sử dụng trực tiếp Git, hãy đồng bộ hoá với nhánh sửa đổi mặc định được chỉ định trong tệp kê khai
android-latest-release.
Hãy xem bài viết Khởi chạy ứng dụng Repo để biết thêm thông tin về cách đồng bộ hoá các nhánh.
Liệu 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ới 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 đẩy lên ở đâu?
Google đẩy mã cho bản phát hành tiếp theo lên nhánh phát hành công khai mới nhất
và cập nhật android-latest-release tệp kê khai để 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 được đề xuất lên, Google sẽ xem xét thay đổi đó và nếu được chấp nhận, 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ó được chấp nhận không?
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 trong tương lai vào một nhánh phát hành trên máy chủ 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 đế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 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ê khaiandroid-latest-release(khi sử dụng trực tiếp Git).Google xem xét thay đổi đó. Nếu thay đổi đó:
Đượ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 sẽ không chọn lọc thay đổi đó.
Cộng tác viên bên ngoài kiểm tra thay đổi của họ trong
android-latest-release.
Tôi phải làm gì nếu không cần thay đổi được đề xuất nữa?
Nếu bạn không cần thay đổi được đề 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 được đề xuất trên máy chủ Android.
Câu hỏi về nguồn mở
Tại sao Google mở mã nguồn Android?
Google bắt đầu AOSP để đáp lại trải nghiệm của chính chúng tôi khi ra mắt ứng dụng di động. Chúng tôi muốn đảm bảo rằng sẽ luôn có một nền tảng mở để nhà mạng, OEM và nhà phát triển sử dụng để 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 để không một công ty nào trong ngành có thể hạn chế hoặc kiểm soát sự đổ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à dự án nguồn mở thuộc loại 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ì một 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 khuyến khích việc áp dụng phần mềm Android rộng rãi. Để biết thông tin chi tiết, hãy xem bài viết 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 rất phức tạp. Tính 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 mở thu hút đầu tư từ 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 tài nguyên 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 đư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ự phát triển của Android với tư cách là một nền tảng và một dự án nguồn mở. Sau cùng, ai 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 để đá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 kết hợp các 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ỹ 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 đó. Các thiết bị hàng đầu này hấp thụ 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 tiếp tục phát triển thêm các thiết bị 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 của Android (chẳng hạn như 1.5 hoặc 8.1) 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à 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 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 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, nhà sản xuất thiết bị muốn vận chuyển phần mềm mới nhất mà họ 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 tình trạng căng thẳng giữa việc vận chuyển sản phẩm và không muốn bị tụt hậu.
Để 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ả 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 thành 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. Đ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 các bản phát hành mã nguồn được thực hiện?
Khi chúng đã sẵn sàng. Việc 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, chẳng hạn như kernel, được phát triển ở chế độ mở và mã nguồn đó luôn có sẵn. Các phần khác được phát triển trước tiên trong một cây riêng tư và mã nguồn đó đượ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 trước đó đủ lâu để chúng tôi có thể đẩy mã nguồn ra để xem trước trước khi thiết bị được phát hành. Trong các bản phát hành khác, điều này là không thể. 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 quy 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 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 quá 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 quy định của chính phủ cho các khu vực mà điện thoại sẽ được triển khai. Mã cũng trải qua quá 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 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.
Đồng thời với quá trình sản xuất hàng loạt, nhóm Google bắt đầu một số nỗ lực để chuẩn bị cho bản phát hành nguồn mở. Các 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 (để 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), chuẩn bị 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ý kết cuối cùng để phát hành mã nguồn mở. Giống như các cộng tác viên nguồn mở phải ký Thỏa 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ệ của họ đối với đóng góp của họ, Google phải xác minh rằng nguồn đó đã được xoá để đóng góp.
Kể 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 xảy ra vào khoảng thời gian 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 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à nguồn mở, 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 của Android là xác định việc triển khai cơ sở 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 đủ điều kiện tham gia hệ sinh thái Android, bao gồm cả Google Play; các thiết bị không đáp ứng yêu cầu về khả năng tương thích 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 tách các thiết bị tương thích với Android khỏ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 cách sử dụng mã nguồn Android, nhưng để tham gia hệ sinh thái Android, một 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.
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 đầ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 các đó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 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 bài viết Đó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 do nhân viên Google tạo) đều 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ý các đóng góp mã nguồn một cách rõ rà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 Google, nhưng cùng một người phê duyệt chịu trách nhiệm cho tất cả các bài gửi, bất kể nguồn gốc.
Để biết thông tin chi tiết, hãy xem bài viết Gửi bản vá.