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

Những ứng dụng có Trình quay số, Nội dung nghe nhìn, Car UI Library và SMS được coi là ứng dụng tách biệt (tức là chúng tách biệt với 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 cho việc liên kết và đăng ký tính năng. Các APK được tạo từ mã không đi kèm hoạt động với nhiều phiên bản của nền tảng.

Hãy xem đoạn mã vừa tải

Để kiểm tra mã chưa được kết hợp, 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 động Repo Client.

Tạo mã

Bạn có thể tạo mã bằng Android Studio hoặc qua 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 mà đối tượng này chứa. 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ở giao diện nhập dòng 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 tách biệt 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 một 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 APK vào hình ảnh hệ thống. Tuy nhiên, các bước tích hợp sẽ khác nhau tuỳ theo phiên bản nền tảng Android.

Android 13 trở lên

Android 13 trở lên không có mã nguồn cho các ứng dụng chưa được đóng gói, nhưng bạn có thể đưa một tệp APK được 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ử việc tuân thủ CDD hoặc cung cấp các ứng dụng có đặc quyền. Để chỉ định APK, hãy sử dụng quy tắc android_app_import Soong, 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 có mã nguồn cho các ứng dụng không đi kèm, nhưng bạn vẫn có thể chỉ định một APK được tạo sẵn để đưa vào. Vì mặc định Soong sẽ ưu tiên mã nguồn hơn một mã nguồn được 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 đi kèm

Ứng dụng/Phân phối Hệ thống
được ký tách rời có đặc quyền
Đặc quyền tách rời
không phải hệ thống đã ký

Không cần phải nằm trên 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 – Đa phương tiệ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