Các ứng dụng bao gồm Trình quay số, Nội dung nghe nhìn, Thư viện giao diện người dùng trên ô tô và SMS được coi là ứng dụng không theo gói (tức là các ứng dụng này không theo gói từ nền tảng Android). Các ứng dụng như vậy bao gồm logic để nhận dữ liệu từ ứng dụng đồng hành trên điện thoại và trải nghiệm người dùng ở phía ô tô, bao gồm cả các chế độ cài đặt để liên kết và đăng ký tính năng. Các tệp APK được tạo từ mã chưa phân tách hoạt động với một số phiên bản nền tảng.
Hãy xem đoạn mã vừa tải
Để xem mã đã tách, hãy chạy lệnh sau:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4
Để tìm hiểu thêm về cách làm việc với mã nguồn AOSP, hãy xem phần Khởi chạy ứng dụng Repo.
Tạo mã
Bạn có thể tạo mã bằng Android Studio hoặc từ dòng lệnh.
Android Studio
Cách tạo mã trong Android Studio:
Trong Android Studio, hãy nhập tệp bản dựng sau:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
Đảm bảo bạn đặt JDK Gradle thành Phiên bản 11 trở lên:
Hình 1. Đặt Gradle JDK thành Phiên bản 11 trong Android Studio.
Dòng lệnh
Cách tạo mã từ dòng lệnh:
Đặt vị trí SDK Android bằng một trong các phương thức sau:
Tạo
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties
rồi đặt thuộc tínhsdk.dir
chứa trong đó. Android Studio có thể tự động thực hiện việc này khi mở một dự án. Ví dụ: sử dụngsdk.dir=/Users/MY-USERNAME/Library/Android/sdk
.hoặc
Đặt biến môi trường
ANDROID_SDK_ROOT
bằng đường dẫn đến SDK Android.
Mở lời nhắc lệnh hoặc cửa sổ shell.
Chuyển đến
packages/apps/Car/libs/aaos-apps-gradle-project
.Chạy lệnh sau:
./gradlew assemble
Cấp độ API tối thiểu bắt buộc
Mỗi ứng dụng không theo gói hoạt động trên các nền tảng Android có phiên bản bằng hoặc lớn hơn minSdkVersion
. Bảng sau đây liệt kê phiên bản API tối thiểu mà mỗi ứng dụng hỗ trợ:
Ứng dụng | Cấp API tối thiểu |
---|---|
Lịch | 29 |
Thư viện giao diện người dùng trên ô tô | 29 |
CompanionDevice | 29 |
Dialer | 31 |
Nội dung nghe nhìn | 30 |
Messenger (SMS) | 30 |
Máy chủ lưu trữ AOSP | 29 |
Tích hợp bản dựng trước vào hình ảnh hệ thống
Nếu ứng dụng hỗ trợ phiên bản nền tảng Android (xem bảng trong phần trước), bạn có thể thêm tệp APK vào ảnh hệ thống. Tuy nhiên, các bước tích hợp sẽ khác nhau giữa các phiên bản nền tảng Android.
Android 13 trở lên
Android 13 trở lên không bao gồm mã nguồn cho các ứng dụng không được đóng gói, nhưng bạn có thể đưa một tệp APK tạo sẵn vào bản dựng nền tảng cho các trường hợp sử dụng như kiểm thử tuân thủ CDD hoặc cấp phép các ứng dụng đặc quyền. Để chỉ định APK, hãy sử dụng quy tắc Soong android_app_import
như trong ví dụ sau:
android_app_import {
name: "CarMediaApp",
apk: "CarMediaApp.apk",
privileged: true,
certificate: "platform", // Media must be signed by the platform
required: ["allowed_privapp_com.android.car.media"],
}
Android 12 trở xuống
Android 12 trở xuống bao gồm mã nguồn cho các ứng dụng chưa được phân tách, nhưng bạn vẫn có thể chỉ định một APK tạo sẵn để đưa vào. Vì Soong mặc định là ưu tiên mã nguồn hơn mã tạo sẵn, nên bạn cần đặt cờ prefer
thành true
bên trong quy tắc android_app_import
, như trong ví dụ sau:
android_app_import {
name: "CarDialerApp",
apk: "CarDialerApp.apk",
privileged: true,
presigned: true, // Dialer can have its own signature
required: ["allowed_privapp_com.android.car.dialer"],
overrides: ["Dialer"],
prefer: true, // The prebuilt replaces a source target with the same name
}
Thông tin chi tiết về ứng dụng không theo gói
Ứng dụng/Phân phối | Hệ thống đã ký đặc quyền không theo gói |
Đặc quyền không theo gói không phải hệ thống đã ký |
đã tách gói không cần phải nằm trong phân vùng hệ thống |
---|---|---|---|
Ứng dụng – Lịch | X | ||
Ứng dụng – CompanionDeviceSupport | X | ||
Ứng dụng – Trình quay số | X | ||
Ứng dụng – Máy chủ lưu trữ AOSP | X | ||
Ứng dụng – Nội dung nghe nhìn | X | ||
Ứng dụng – Messenger (SMS) | X | ||
Cập nhật thông tin phân phối | OTA | OTA hoặc Google Play | OTA hoặc Google Play |