Tích hợp các ứng dụng không theo gói

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:

  1. Trong Android Studio, hãy nhập tệp bản dựng sau:

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. Đảm bảo bạn đặt JDK Gradle thành Phiên bản 11 trở lên:

    Phiên bản 11

    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:

  1. Đặ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ính sdk.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ụng sdk.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.

  2. Mở lời nhắc lệnh hoặc cửa sổ shell.

  3. Chuyển đến packages/apps/Car/libs/aaos-apps-gradle-project.

  4. 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