ผสานรวมแอปที่ไม่ได้รวมกลุ่ม

แอปที่มีโปรแกรมโทรศัพท์ สื่อ ไลบรารี UI ของรถ และ SMS ถือเป็นแอปที่แยกออกมา (นั่นคือแอปที่แยกออกจากแพลตฟอร์ม Android) แอปดังกล่าวมีตรรกะสำหรับการรับข้อมูลจากแอปคู่หูของโทรศัพท์และ UX ในฝั่งรถยนต์ รวมถึงการตั้งค่าสำหรับการเชื่อมโยงและการลงทะเบียนฟีเจอร์ APK ที่สร้างจากโค้ดที่ไม่ได้รวมกลุ่มจะทำงานร่วมกับแพลตฟอร์มหลายเวอร์ชัน

ดูโค้ด

หากต้องการตรวจสอบโค้ดที่ไม่ได้รวมกลุ่ม ให้เรียกใช้คำสั่งต่อไปนี้

repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4

ดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับซอร์สโค้ด AOSP ได้ที่เริ่มต้นไคลเอ็นต์ Repo

สร้างโค้ด

คุณสร้างโค้ดได้โดยใช้ Android Studio หรือจากบรรทัดคำสั่ง

Android Studio

วิธีสร้างโค้ดใน Android Studio

  1. ใน Android Studio ให้นำเข้าไฟล์บิลด์ต่อไปนี้

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. ตรวจสอบว่าได้ตั้งค่า JDK ของ Gradle เป็นเวอร์ชัน 11 ขึ้นไปแล้ว

    เวอร์ชัน 11

    รูปที่ 1 ตั้งค่า JDK ของ Gradle เป็นเวอร์ชัน 11 ใน Android Studio

บรรทัดคำสั่ง

วิธีสร้างโค้ดจากบรรทัดคำสั่ง

  1. ตั้งค่าตำแหน่ง Android SDK โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้

    • สร้าง packages/apps/Car/libs/aaos-apps-gradle-project/local.propertiesและ ตั้งค่าพร็อพเพอร์ตี้ sdk.dir ที่มีอยู่ Android Studio สามารถดำเนินการนี้ โดยอัตโนมัติเมื่อเปิดโปรเจ็กต์ เช่น ใช้ sdk.dir=/Users/MY-USERNAME/Library/Android/sdk

      หรือ

    • ตั้งค่าตัวแปรสภาพแวดล้อม ANDROID_SDK_ROOT ด้วยเส้นทางไปยัง Android SDK

  2. เปิด Command Prompt หรือหน้าต่างเชลล์

  3. ไปที่packages/apps/Car/libs/aaos-apps-gradle-project

  4. เรียกใช้คำสั่งต่อไปนี้

    ./gradlew assemble

ระดับ API ขั้นต่ำที่จำเป็น

แอปแต่ละแอปที่แยกออกมาจะทำงานบนแพลตฟอร์ม Android ที่มีเวอร์ชันเท่ากับหรือมากกว่า minSdkVersion ตารางต่อไปนี้แสดงเวอร์ชัน API ขั้นต่ำที่แต่ละแอปรองรับ

แอป ระดับ API ขั้นต่ำ
ปฏิทิน 29
ไลบรารี UI ของรถ 29
CompanionDevice 29
Dialer 31
สื่อ 30
Messenger (SMS) 30
โฮสต์ AOSP 29

ผสานรวมการสร้างล่วงหน้าเข้ากับอิมเมจระบบ

หากแอปพลิเคชันรองรับแพลตฟอร์ม Android เวอร์ชันนั้น (ดูตารางในส่วนก่อนหน้า) คุณจะเพิ่ม APK ลงในอิมเมจระบบได้ อย่างไรก็ตาม ขั้นตอนการผสานรวมจะแตกต่างกันไปตามเวอร์ชันแพลตฟอร์ม Android

Android 13 ขึ้นไป

Android 13 ขึ้นไปไม่มีซอร์สโค้ดสำหรับแอปที่ไม่ได้รวมไว้ แต่คุณ สามารถรวม APK ที่สร้างไว้ล่วงหน้าในการสร้างแพลตฟอร์มสำหรับกรณีการใช้งานต่างๆ เช่น การทดสอบการปฏิบัติตามข้อกำหนดของ CDD หรือการจัดสรรแอปที่มีสิทธิ์ หากต้องการระบุ APK ให้ใช้กฎ android_app_import Soong ดังที่แสดงในตัวอย่างต่อไปนี้

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 และต่ำกว่า

Android 12 และเวอร์ชันที่ต่ำกว่ามีซอร์สโค้ดสำหรับแอปที่ไม่ได้รวมไว้ แต่คุณยังคง ระบุ APK ที่สร้างไว้ล่วงหน้าเพื่อรวมไว้ได้ เนื่องจากค่าเริ่มต้นของ Soong คือการให้ ลำดับความสำคัญแก่ซอร์สโค้ดมากกว่าโค้ดที่สร้างไว้ล่วงหน้า จึงจำเป็นต้องตั้งค่า prefer เป็น true ภายในกฎ android_app_import ดังที่แสดงใน ตัวอย่างต่อไปนี้

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
    }

รายละเอียดแอปที่แยกจำหน่าย

แอป Privileged unbundled
system signed
สิทธิพิเศษที่ไม่ได้รวมกลุ่ม
ที่ไม่ใช่ระบบ ที่ลงนาม

ไม่จำเป็นต้องอยู่ใน พาร์ติชันระบบ
อัปเดตการจัดจำหน่าย OTA OTA หรือ Google Play OTA หรือ Google Play
โฮสต์ AOSP X
Calendar X
CompanionDeviceSupport X
ศูนย์ควบคุม (หลายจอแสดงผล) X
แป้นโทรศัพท์ X
สื่อ X
Messenger (SMS) X
การล็อกแอปที่มีความละเอียดอ่อน X