quản lý phần mềm android

Dự án mã nguồn mở Android (AOSP) duy trì một kho phần mềm hoàn chỉnh để các OEM và những nhà triển khai thiết bị khác chuyển sang và chạy trên phần cứng của riêng họ. Để duy trì chất lượng của Android, Google đã tuyển dụng các kỹ sư toàn thời gian, giám đốc sản phẩm, nhà thiết kế giao diện người dùng, người kiểm tra đảm bảo chất lượng và tất cả các vai trò cần thiết khác để đưa các thiết bị hiện đại ra thị trường.

Theo đó, chúng tôi duy trì một số dòng mã để phân biệt rõ ràng phiên bản ổn định hiện tại của Android với công việc thử nghiệm không ổn định. Chúng tôi đưa việc quản lý và bảo trì nguồn mở của các dòng mã Android vào chu trình phát triển sản phẩm lớn hơn.

Quản lý mã AOSP

Biểu đồ bên dưới mô tả các khái niệm đằng sau việc phát hành và quản lý mã AOSP.

sơ đồ mã
Hình 1. Mã AOSP và bản phát hành
  1. Tại bất kỳ thời điểm nào, luôn có bản phát hành mới nhất của nền tảng Android. Điều này thường có hình dạng của một nhánh trên cây.
  2. Người xây dựng thiết bị và cộng tác viên làm việc với bản phát hành mới nhất hiện tại, sửa lỗi, ra mắt thiết bị mới, thử nghiệm các tính năng mới, v.v.
  3. Song song đó, Google hoạt động nội bộ trên phiên bản tiếp theo của nền tảng và khung Android tùy theo nhu cầu và mục tiêu của sản phẩm. Chúng tôi phát triển phiên bản tiếp theo của Android bằng cách hợp tác với một đối tác thiết bị trên một thiết bị hàng đầu có thông số kỹ thuật được chọn để đưa Android đi theo hướng mà chúng tôi tin rằng nó sẽ đi.
  4. Khi phiên bản thứ n+1 đã sẵn sàng, nó sẽ được xuất bản lên cây nguồn công cộng và trở thành bản phát hành mới nhất.

Điều khoản và lưu ý

  • Bản phát hành tương ứng với phiên bản chính thức của nền tảng Android, chẳng hạn như 1.5 hoặc 8.1. Bản phát hành của nền tảng tương ứng với phiên bản trong trường SdkVersion của tệp AndroidManifest.xml và được xác định trong frameworks/base/api trong cây nguồn.
  • Dự án ngược dòng là một dự án nguồn mở mà từ đó ngăn xếp Android lấy mã. Ngoài các dự án như nhân Linux và WebKit, chúng tôi tiếp tục di chuyển một số dự án Android bán tự trị như ART, công cụ SDK Android và Bionic để hoạt động như các dự án thượng nguồn. Nói chung, các dự án này được phát triển hoàn toàn trên cây công cộng. Đối với một số dự án thượng nguồn, các nhà phát triển đóng góp trực tiếp cho dự án thượng nguồn. Để biết chi tiết, xem các dự án thượng nguồn . Trong cả hai trường hợp, ảnh chụp nhanh được định kỳ đưa vào bản phát hành.
  • Tại mọi thời điểm, một dòng mã phát hành (có thể bao gồm nhiều nhánh trong git) được coi là mã nguồn chuẩn duy nhất cho một phiên bản nền tảng Android nhất định. OEM và các thiết bị xây dựng nhóm khác chỉ nên lấy từ nhánh phát hành.
  • Các dòng mã thử nghiệm được thiết lập để nắm bắt những thay đổi từ cộng đồng để chúng có thể được lặp lại với mục tiêu hướng tới sự ổn định.
  • Những thay đổi tỏ ra ổn định cuối cùng sẽ được kéo vào nhánh phát hành. Điều này chỉ áp dụng cho các bản sửa lỗi, cải tiến ứng dụng và các thay đổi khác không ảnh hưởng đến API của nền tảng.
  • Các thay đổi được kéo vào các nhánh phát hành từ các dự án ngược dòng (bao gồm cả các dự án ngược dòng của Android) khi cần thiết.
  • Phiên bản thứ n+1 (phiên bản chính tiếp theo của API nền tảng và khung) được Google phát triển nội bộ. Để biết chi tiết, hãy xem Đường dây riêng tư .
  • Các thay đổi được kéo từ các nhánh ngược dòng, phát hành và thử nghiệm vào nhánh riêng của Google nếu cần.
  • Khi API nền tảng cho phiên bản tiếp theo được ổn định và kiểm tra đầy đủ, Google sẽ cắt bản phát hành phiên bản nền tảng tiếp theo (cụ thể là SdkVersion mới). Điều này tương ứng với dòng mã nội bộ đang được tạo thành một nhánh phát hành công khai và dòng mã nền tảng mới hiện tại.
  • Khi một phiên bản nền tảng mới được cắt, một dòng mã thử nghiệm tương ứng sẽ được tạo cùng lúc.

Dòng mã riêng

Chiến lược quản lý nguồn ở trên bao gồm một dòng mã mà Google giữ kín để tập trung sự chú ý vào phiên bản Android công khai hiện tại.

Các OEM và các nhà sản xuất thiết bị khác đương nhiên muốn cung cấp các thiết bị có phiên bản Android mới nhất. Tương tự, các nhà phát triển ứng dụng không muốn xử lý nhiều phiên bản nền tảng hơn mức cần thiết. Trong khi đó, Google vẫn chịu trách nhiệm về định hướng chiến lược của Android với tư cách là một nền tảng và một sản phẩm. Cách tiếp cận của chúng tôi tập trung vào một số ít thiết bị hàng đầu để thúc đẩy các tính năng đồng thời đảm bảo bảo vệ quyền sở hữu trí tuệ liên quan đến Android.

Do đó, Google thường xuyên sở hữu thông tin bí mật từ bên thứ ba và phải hạn chế tiết lộ các tính năng nhạy cảm cho đến khi có được các biện pháp bảo vệ thích hợp. Ngoài ra, có những rủi ro thực sự đối với nền tảng nếu có quá nhiều phiên bản nền tảng tồn tại cùng một lúc. Vì những lý do này, chúng tôi đã cấu trúc dự án nguồn mở (bao gồm cả sự đóng góp của bên thứ ba) để tập trung vào phiên bản Android ổn định công khai hiện nay. Quá trình phát triển sâu trên phiên bản tiếp theo của nền tảng diễn ra riêng tư cho đến khi nó sẵn sàng trở thành bản phát hành chính thức.

Chúng tôi nhận thấy rằng nhiều người đóng góp không đồng ý với cách tiếp cận này và chúng tôi tôn trọng quan điểm của họ. Tuy nhiên, đây là cách tiếp cận mà chúng tôi cảm thấy là tốt nhất và là cách chúng tôi đã chọn để triển khai cho Android.