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á .
Khả năng tương thích
Khả năng tương thích của Android là gì?
Chúng tôi xác định thiết bị tương thích với Android là thiết bị có thể chạy mọi ứng dụng do nhà phát triển bên thứ ba viết bằng SDK Android và NDK. Chúng tôi sử dụng tính năng này làm bộ lọc để phân tách các thiết bị có thể tham gia vào hệ sinh thái ứng dụng Android và những thiết bị không thể tham gia. Đối với các thiết bị tương thích phù hợp, nhà sản xuất thiết bị có thể xin phê duyệt để sử dụng nhãn hiệu Android. Các thiết bị không tương thích được lấy từ mã nguồn Android và không được phép sử dụng nhãn hiệu Android.
Nói cách khác, khả năng tương thích là điều kiện tiên quyết để tham gia vào hệ sinh thái ứng dụng Android. Bất kỳ ai cũng có thể sử dụng mã nguồn Android. Nhưng nếu thiết bị không tương thích thì thiết bị đó không được coi là một phần của hệ sinh thái Android.
Vai trò của Google Play trong khả năng tương thích là gì?
Các nhà sản xuất thiết bị có thiết bị tương thích với Android có thể tìm cách cấp phép cho phần mềm ứng dụng khách Google Play. Các thiết bị được cấp phép trở thành một phần của hệ sinh thái ứng dụng Android, cho phép người dùng tải xuống ứng dụng của nhà phát triển từ danh mục được chia sẻ bởi tất cả các thiết bị tương thích. Cấp phép không có sẵn cho các thiết bị không tương thích.
Những loại thiết bị nào có thể tương thích với Android?
Phần mềm Android có thể được chuyển sang nhiều thiết bị khác nhau, bao gồm cả một số thiết bị có ứng dụng của bên thứ ba không chạy đúng cách. Tài liệu Định nghĩa Tương thích Android (CDD) nêu rõ các cấu hình thiết bị cụ thể được coi là tương thích.
Ví dụ: mặc dù mã nguồn Android có thể được chuyển sang chạy trên điện thoại không có camera nhưng CDD yêu cầu tất cả điện thoại phải có camera. Điều này cho phép các nhà phát triển dựa vào một bộ khả năng nhất quán khi viết ứng dụng của họ.
CDD tiếp tục phát triển để phản ánh thực tế thị trường. Ví dụ: phiên bản 1.6 của CDD chỉ hỗ trợ điện thoại di động. Nhưng phiên bản 2.1 cho phép các thiết bị bỏ qua phần cứng điện thoại, cho phép các thiết bị không phải điện thoại như máy nghe nhạc kiểu máy tính bảng tương thích. Khi thực hiện những thay đổi này, chúng tôi cũng sẽ tăng cường Google Play để cho phép các nhà phát triển giữ quyền kiểm soát nơi ứng dụng của họ có sẵn. Để tiếp tục ví dụ về điện thoại, ứng dụng quản lý tin nhắn văn bản SMS không hữu ích trên trình phát đa phương tiện, vì vậy Google Play cho phép nhà phát triển hạn chế ứng dụng đó dành riêng cho các thiết bị điện thoại.
Nếu thiết bị của tôi tương thích, thiết bị đó có tự động có quyền truy cập vào Google Play và nhãn hiệu không?
Không. Quyền truy cập không tự động. Google Play là một dịch vụ được điều hành bởi Google. Đạt được khả năng tương thích là điều kiện tiên quyết để có được quyền truy cập vào phần mềm và nhãn hiệu Google Play. Sau khi thiết bị đủ điều kiện là thiết bị tương thích với Android , nhà sản xuất thiết bị phải hoàn tất biểu mẫu liên hệ có trong việc cấp phép cho Dịch vụ di động của Google để tìm kiếm quyền truy cập vào Google Play. Chúng tôi sẽ liên hệ nếu có thể giúp bạn.
Nếu tôi không phải là nhà sản xuất, làm cách nào tôi có thể tải Google Play?
Google Play chỉ được cấp phép cho các nhà sản xuất thiết bị cầm tay vận chuyển thiết bị. Nếu có câu hỏi về các trường hợp cụ thể, hãy liên hệ android-partnerships@google.com .
Làm cách nào tôi có thể truy cập vào các ứng dụng Google dành cho Android, chẳng hạn như Maps?
Các ứng dụng của Google dành cho Android chẳng hạn như YouTube, Google Maps và Gmail là các sản phẩm của Google không phải là một phần của Android và được cấp phép riêng. Nếu có thắc mắc liên quan đến các ứng dụng này, hãy liên hệ với android-partnerships@google.com .
Khả năng tương thích có bắt buộc không?
Không. Chương trình tương thích với Android là tùy chọn. Mã nguồn Android là mã mở nên bất kỳ ai cũng có thể sử dụng nó để xây dựng bất kỳ loại thiết bị nào. Tuy nhiên, nếu nhà sản xuất muốn sử dụng tên Android cho sản phẩm của mình hoặc muốn truy cập vào Google Play, trước tiên họ phải chứng minh rằng thiết bị của mình tương thích .
Chứng nhận tương thích có giá bao nhiêu?
Không mất phí để có được khả năng tương thích Android cho một thiết bị. Bộ kiểm tra khả năng tương thích là nguồn mở và có sẵn cho bất kỳ ai kiểm tra thiết bị.
Khả năng tương thích mất bao lâu?
Quá trình này được tự động hóa. Bộ kiểm tra khả năng tương thích tạo một báo cáo có thể được cung cấp cho Google để xác minh tính tương thích. Cuối cùng, chúng tôi dự định cung cấp các công cụ tự phục vụ để tải các báo cáo này lên cơ sở dữ liệu công cộng.
Ai xác định định nghĩa tương thích?
Google chịu trách nhiệm định hướng chung cho Android với tư cách là một nền tảng và sản phẩm, vì vậy, Google duy trì Tài liệu định nghĩa tương thích (CDD) cho mỗi bản phát hành. Chúng tôi soạn thảo CDD cho phiên bản Android mới với sự tham vấn của nhiều OEM khác nhau, những người cung cấp thông tin đầu vào.
Mỗi phiên bản Android sẽ được hỗ trợ cho các thiết bị mới trong bao lâu?
Mã của Android là mã nguồn mở nên chúng tôi không thể ngăn người khác sử dụng phiên bản cũ để khởi chạy thiết bị. Thay vào đó, Google chọn không cấp phép cho phần mềm ứng dụng khách Google Play để sử dụng trên các phiên bản được coi là lỗi thời. Điều này cho phép mọi người tiếp tục cung cấp các phiên bản Android cũ nhưng những thiết bị đó sẽ không sử dụng tên Android và tồn tại bên ngoài hệ sinh thái ứng dụng Android, giống như thể chúng không tương thích.
Một thiết bị có thể có giao diện người dùng khác mà vẫn tương thích không?
Chương trình tương thích Android xác định xem thiết bị có thể chạy ứng dụng của bên thứ ba hay không. Các thành phần giao diện người dùng đi kèm với thiết bị (chẳng hạn như màn hình chính, trình quay số và bảng màu) thường không có nhiều ảnh hưởng đến các ứng dụng của bên thứ ba. Do đó, nhà sản xuất thiết bị có thể tự do tùy chỉnh giao diện người dùng. Tài liệu Định nghĩa Tương thích hạn chế mức độ OEM được phép thay đổi giao diện người dùng hệ thống đối với các khu vực ảnh hưởng đến ứng dụng của bên thứ ba.
Khi nào các định nghĩa về khả năng tương thích được phát hành cho các phiên bản Android mới?
Mục tiêu của chúng tôi là phát hành phiên bản mới của Tài liệu Định nghĩa Tương thích Android (CDD) khi phiên bản nền tảng Android tương ứng đã hội tụ đủ để cho phép điều đó. Mặc dù chúng tôi không thể phát hành bản nháp cuối cùng của CDD cho phiên bản phần mềm Android trước khi thiết bị hàng đầu đầu tiên đi kèm phần mềm đó nhưng CDD cuối cùng luôn được phát hành sau thiết bị đầu tiên. Tuy nhiên, nếu thực tế thì chúng tôi sẽ phát hành phiên bản nháp của CDD.
Tuyên bố về khả năng tương thích của nhà sản xuất thiết bị được xác thực như thế nào?
Không có quy trình xác thực nào cho khả năng tương thích của thiết bị Android. Tuy nhiên, nếu thiết bị bao gồm Google Play, Google thường xác thực tính tương thích của thiết bị trước khi đồng ý cấp phép cho phần mềm ứng dụng khách Google Play.
Điều gì sẽ xảy ra nếu một thiết bị tuyên bố có khả năng tương thích nhưng sau đó lại bị phát hiện có vấn đề về khả năng tương thích?
Thông thường, mối quan hệ của Google với những người được cấp phép của Google Play cho phép chúng tôi yêu cầu nhà sản xuất thiết bị phát hành hình ảnh hệ thống cập nhật để khắc phục sự cố.
Bộ kiểm tra khả năng tương thích (CTS)
Mục đích của CTS là gì?
Bộ kiểm tra khả năng tương thích là một công cụ được các nhà sản xuất thiết bị sử dụng để giúp đảm bảo rằng thiết bị của họ tương thích và báo cáo kết quả kiểm tra để xác thực. CTS dự định sẽ được các OEM chạy thường xuyên trong suốt quá trình kỹ thuật để sớm phát hiện các vấn đề về khả năng tương thích.
CTS kiểm tra những loại vấn đề gì?
CTS hiện kiểm tra xem tất cả các API được gõ mạnh của Android được hỗ trợ đều có mặt và hoạt động chính xác hay không. Nó cũng kiểm tra các hành vi khác của hệ thống không phải API như hiệu suất và vòng đời của ứng dụng. Chúng tôi dự định bổ sung tính năng hỗ trợ trong các phiên bản CTS trong tương lai để kiểm tra các API mềm như ý định.
Các báo cáo của CTS có được công khai không?
Đúng. Mặc dù hiện chưa được triển khai nhưng Google dự định cung cấp các công cụ tự phục vụ dựa trên web để các OEM xuất bản báo cáo CTS để bất kỳ ai cũng có thể xem chúng. Các nhà sản xuất có thể chia sẻ báo cáo CTS với số lượng khán giả tùy thích.
CTS được cấp phép như thế nào?
CTS được cấp phép theo cùng Giấy phép phần mềm Apache 2.0 mà phần lớn Android sử dụng.
CTS có chấp nhận đóng góp không?
Vâng, làm ơn! AOSP chấp nhận những đóng góp để cải thiện CTS cũng như đối với bất kỳ thành phần nào khác. Trên thực tế, việc cải thiện phạm vi bao phủ và chất lượng của các trường hợp thử nghiệm CTS là một trong những cách tốt nhất để hỗ trợ Android.
Có ai có thể sử dụng CTS trên các thiết bị hiện có không?
Tài liệu Định nghĩa Tương thích yêu cầu các thiết bị tương thích triển khai tiện ích gỡ lỗi adb
. Điều này có nghĩa là mọi thiết bị tương thích (bao gồm cả những thiết bị có bán lẻ) đều phải có khả năng chạy thử nghiệm CTS.
Codec có được CTS xác minh không?
Đúng. Tất cả các codec bắt buộc đều được CTS xác minh.