หน้านี้สรุปวิธีผสานรวมแอปที่ไม่ได้จัดกลุ่ม แอปที่มีแป้นโทรศัพท์ สื่อ และ UI ของรถยนต์ คลังและ SMS จะถือว่าเป็นแอปที่ไม่ได้รวมกลุ่ม แอปเหล่านี้เลิกรวมกลุ่มจากแพลตฟอร์ม Android และระบุตรรกะในการรับข้อมูลจากแอปที่ใช้ร่วมกับโทรศัพท์และ UX ในรถยนต์ ซึ่งรวมถึงการตั้งค่าสำหรับการเชื่อมโยงและการลงทะเบียนฟีเจอร์
APK ที่สร้างขึ้นจากรหัสที่ไม่ได้รวมกลุ่มจะใช้ได้กับแพลตฟอร์มหลายเวอร์ชัน
ดูโค้ด
วิธีดูรหัสที่ไม่ได้รวมกลุ่ม
- เรียกใช้โค้ดต่อไปนี้
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -cq -j4
- หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้งานซอร์สโค้ด AOSP โปรดดูที่ การเริ่มต้นไคลเอ็นต์ที่เก็บ
สร้างโค้ด
Android Studio
วิธีสร้างโค้ดใน Android Studio มีดังนี้
- ใน Android Studio ให้นำเข้าไฟล์บิลด์นี้
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
- โปรดตั้งค่า Gradle JDK ใน Android Studio เป็นเวอร์ชัน 11 เป็นอย่างน้อย:
รูปที่ 1 เวอร์ชัน 11 - สร้าง APK ที่ต้องการ
บรรทัดคำสั่ง
วิธีสร้างโค้ดจากบรรทัดคำสั่ง
- ตั้งค่าตำแหน่ง Android SDK ด้วย 1 ใน 2 วิธีต่อไปนี้
- สร้าง
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 หรือหน้าต่าง Shell
- ไปที่
packages/apps/Car/libs/aaos-apps-gradle-project
- เรียกใช้คำสั่งต่อไปนี้
./gradlew assemble
ระดับ API ขั้นต่ำที่จำเป็น
แอปที่ไม่ได้รวมกลุ่มแต่ละแอปจะทำงานบนแพลตฟอร์ม Android ที่มีเวอร์ชันเท่ากับหรือมากกว่า
minSdkVersion
ตารางต่อไปนี้แสดงเวอร์ชัน API ขั้นต่ำที่แต่ละแอปรองรับ
แอป | ระดับ API ขั้นต่ำ |
---|---|
ปฏิทิน | 29 |
ไลบรารี UI ของรถ | 29 |
อุปกรณ์ที่ใช้ร่วมกัน | 29 |
Dialer | 31 |
สื่อ | 30 |
SMS | 30 |
โฮสต์ AOSP | 29 |
การผสานรวมบิลด์ล่วงหน้าเข้ากับอิมเมจระบบ
รูปภาพ Android 13 ขึ้นไป
ระบบจะนำรหัสที่ไม่ได้รวมกลุ่มออกจากแพลตฟอร์ม Android 13 ดังนั้น การเพิ่ม APK ที่สร้างไว้ล่วงหน้าลงในบิลด์แพลตฟอร์มอาจจำเป็นสำหรับสิ่งต่อไปนี้
- การทดสอบการปฏิบัติตามข้อกำหนดของ CDD
- การจัดสรรแอปที่ได้รับสิทธิ์
ซึ่งทำได้ตาม
android_app_import
กฎเพลง:
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 (ดูตารางด้านบน) APK สามารถ
ลงในอิมเมจของระบบนั้นๆ แต่แอปที่ไม่ได้รวมกลุ่มส่วนใหญ่มีซอร์สโค้ดเวอร์ชันก่อนหน้า
ซึ่งรวมอยู่ในแพลตฟอร์มที่ต่ำกว่า Android 13 โดยค่าเริ่มต้น Soong จะให้
จะมีความสำคัญเหนือกว่าซอร์สโค้ดที่สร้างไว้ล่วงหน้า ดังนั้น คุณจึงต้องกำหนดฟิลด์
prefer
Flag ไปยัง 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 | ||
อุปกรณ์ที่ใช้ร่วมกัน | X | ||
Dialer | X | ||
โฮสต์ AOSP | X | ||
สื่อ | X | ||
SMS | X | ||
อัปเดตการเผยแพร่ | OTA | OTA หรือ Google Play | OTA หรือ Google Play |