แอปที่มีโปรแกรมโทรศัพท์ สื่อ ไลบรารี 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
ใน Android Studio ให้นําเข้าไฟล์บิลด์ต่อไปนี้
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
ตรวจสอบว่าได้ตั้งค่า Gradle JDK เป็นเวอร์ชัน 11 ขึ้นไปแล้ว โดยทำดังนี้
รูปที่ 1 ตั้งค่า Gradle JDK เป็นเวอร์ชัน 11 ใน Android Studio
บรรทัดคำสั่ง
วิธีสร้างโค้ดจากบรรทัดคำสั่ง
ตั้งค่าตำแหน่ง 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
เปิด Command Prompt หรือหน้าต่างเชลล์
ไปที่
packages/apps/Car/libs/aaos-apps-gradle-project
เรียกใช้คำสั่งต่อไปนี้
./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 |