ผสานรวมแอปที่แยกออกมา

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

ดูรหัส

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

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

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

บิลด์โค้ด

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

Android Studio

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

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

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

    เวอร์ชัน 11

    รูปที่ 1 ตั้งค่า Gradle JDK เป็นเวอร์ชัน 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 คือการให้ความสำคัญกับซอร์สโค้ดมากกว่าที่คอมไพล์ไว้ล่วงหน้า คุณจึงต้องตั้งค่า Flag 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
    }

รายละเอียดแอปที่แยกออกมา

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