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 cho 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 trực tiếp Git). Bạn không cần di chuyển các thay đổi đề 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 sử 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 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 phần Khởi chạy ứng dụng khách Repo để biết thêm thông tin chi tiết về cách đồng bộ hoá các nhánh.
Mã từ android-latest-release có được hợp nhất vào 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ó thể đọ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 đến đâu?
Google đẩy mã cho bản phát hành tiếp theo vào nhánh phát hành công khai mới nhất và cập nhật tệp kê khai android-latest-release
để trỏ đến nhánh đó.
Yêu cầu thay đổi của tôi có được chọn 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, 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 hay 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 sau này đến 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 cho thời điểm 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 thay đổi được đề xuất bởi một cộng tác viên bên ngoà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 sử 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 sử dụng trực tiếp Git).Google sẽ xem xét nội dung thay đổi. Nếu thay đổi là:
Được chấp nhận, Google sẽ chọn thay đổi đó và hợp nhất thay đổi đó 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 thay đổi.
Người đóng góp bên ngoài kiểm tra nội dung thay đổi của họ trong
android-latest-release
.
Nếu tôi không cần thay đổi đề xuất nữa thì sao?
Nếu bạn không cần thay đổi đề xuất nữa, không muốn thay đổi được hợp nhất hoặc biết rằng Google đã xem xét thay đổi đó, hãy bỏ qua thay đổi để thay đổi đó vẫn nằm trong nhật ký thay đổi đề 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 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 lỗi trung tâm để không có một bên nào trong ngành có thể hạn chế hoặc kiểm soát sự đổi mới của 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 là 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 để phát triển sản phẩm Android là gì?
Chúng tôi ra mắt các thiết bị tuyệt vời trên một thị trường cạnh tranh. Sau đó, chúng tôi sẽ tích hợp các đ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.
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ị "đầu tàu" 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 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 mà tệp kê khai android-latest-release
trỏ đến.
Đây là nhánh mà nhà sản xuất chuyển sang các 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 cùng 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, 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 đó, 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.
Khi nào bản phát hành mã nguồn được phát hành?
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, chẳng hạn như hạt 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 đó đượ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ừ rất sớm để chúng ta có thể đẩy mã nguồn ra để xem trước trước khi phát hành thiết bị. Trong các bản phát hành khác, bạn không thể làm được điều này. Trong mọi trường hợp, chúng tôi 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 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à 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 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ư 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, 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 cùng thời điểm 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à 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 của Android là xác định cách 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 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.
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.
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 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 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 đóng góp. 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ý các nội dung đó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 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á.