Quản lý phần mềm Android

Dự án nguồn mở Android (AOSP) duy trì một ngăn xếp phần mềm hoàn chỉnh để OEM và các nhà triển khai thiết bị khác chuyển và chạy trên phần cứng của riêng họ. Để duy trì chất lượng của Android, Google đã đóng góp 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ò khác cần thiết để đưa các thiết bị hiện đại ra thị trường.

Theo đó, chúng tôi duy trì một số quy tắc để tách biệt rõ ràng phiên bản ổn định hiện tại của Android khỏi hoạt động thử nghiệm không ổn định. Chúng tôi đưa việc quản trị và bảo trì mã nguồn mở của 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ơ đồ dòng mã
Hình 1. Mã AOSP và các bản phát hành
  1. Tại bất kỳ thời điểm nào, đều có bản phát hành mới nhất hiện tại của nền tảng Android. Điều này thường có dạng một nhánh trên cây.
  2. Các nhà 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, khởi chạy thiết bị mới, thử nghiệm các tính năng mới, v.v.
  3. Song song đó, Google làm việc nội bộ trên phiên bản tiếp theo của nền tảng và khuôn khổ Android 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 làm việ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 để thúc đẩy Android theo hướng mà chúng tôi tin rằng nó nên đi.
  4. Khi phiên bản thứ n + 1 đã sẵn sàng, nó được xuất bản lên cây nguồn công khai và trở thành bản phát hành mới nhất.

Điều khoản và cảnh báo

  • 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 mã nguồn mở mà từ đó ngăn xếp Android kéo 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ác công cụ Android SDK và Bionic để hoạt động như các dự án ngược dòng. Nói chung, các dự án này được phát triển hoàn toàn trong 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 vào dự án thượng nguồn. Để biết chi tiết, hãy xem Các dự án thượng nguồn . Trong cả hai trường hợp, ảnh chụp nhanh được kéo theo định kỳ vào các bản phát hành.
  • Tại mọi thời điểm, 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ừ một nhánh phát hành.
  • Các quy tắc thử nghiệm được thiết lập để nắm bắt các thay đổi từ cộng đồng để chúng có thể được lặp lại nhằm hướng tới sự ổn định.
  • Các thay đổi chứng tỏ là ổn định cuối cùng được kéo vào một 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 các API của nền tảng.
  • Các thay đổi được đưa vào các nhánh phát hành từ các dự án thượng nguồn (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 khung và API nền tảng) được Google phát triển nội bộ. Để biết chi tiết, hãy xem Nguyên tắc riêng tư .
  • Các thay đổi được chuyển 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 các 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 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ộ được đặt làm nhánh phát hành công khai và dòng mã nền tảng hiện tại mới.
  • Khi một phiên bản nền tảng mới bị cắt, một dòng mã thử nghiệm tương ứng sẽ được tạo cùng một lúc.

Quy tắc riêng tư

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

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 như 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ố lượng nhỏ các thiết bị hàng đầu để tăng cường các tính năng trong khi vẫn đảm bảo bảo vệ quyền sở hữu trí tuệ liên quan đến Android.

Do đó, Google thường sở hữu thông tin bí mật từ các 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 đảm bảo 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ả đóng góp của bên thứ ba) để tập trung vào phiên bản ổn định công khai hiện tại của Android. 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 ở chế độ 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 cộng tác viên 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.