หน้านี้สรุปวิธีการผสานรวมแอปที่ไม่ได้รวมกลุ่ม แอพที่มีตัวเรียกเลขหมาย, สื่อ, คลัง 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 ให้นำเข้าไฟล์บิลด์นี้:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
- อย่าลืมตั้งค่า Gradle JDK ใน Android Studio เป็นเวอร์ชัน 11 เป็นอย่างน้อย:
รูปที่ 1. เวอร์ชัน 11. - สร้าง APK ที่ต้องการ
บรรทัดคำสั่ง
วิธีสร้างโค้ดจากบรรทัดคำสั่ง:
- ตั้งค่าตำแหน่ง 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
- สร้าง
- เปิดพรอมต์คำสั่งหรือหน้าต่างเชลล์
- ไปที่
packages/apps/Car/libs/aaos-apps-gradle-project
- เรียกใช้คำสั่งต่อไปนี้:
./gradlew assemble
ระดับ API ขั้นต่ำที่จำเป็น
แอปที่แยกเป็นกลุ่มแต่ละแอปจะทำงานบนแพลตฟอร์ม Android ที่มีเวอร์ชันเท่ากับหรือมากกว่า minSdkVersion
ตารางต่อไปนี้แสดงรายการเวอร์ชัน API ขั้นต่ำที่แต่ละแอปรองรับ:
แอป | ระดับ API ขั้นต่ำ |
---|---|
ปฏิทิน | 29 |
ห้องสมุด UI ของรถยนต์ | 29 |
อุปกรณ์สหาย | 29 |
โปรแกรมโทรออก | 31 |
สื่อ | 30 |
ข้อความ | 30 |
AOSP โฮสต์ | 29 |
การรวมการสร้างล่วงหน้าเข้ากับอิมเมจระบบ
รูปภาพ Android 13 ขึ้นไป
โค้ดที่เลิกรวมกลุ่มจะถูกลบออกจากแพลตฟอร์ม Android 13 ดังนั้น การเพิ่ม APK ที่สร้างไว้ล่วงหน้าลงในบิวด์แพลตฟอร์มอาจจำเป็นสำหรับ:
- การทดสอบการปฏิบัติตาม CDD
- การจัดสรรแอปที่มีสิทธิพิเศษ
สิ่งนี้สามารถทำได้ด้วยกฎ 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 (ดูตารางด้านบน) ก็สามารถเพิ่ม APK ลงในอิมเมจระบบนั้นได้ อย่างไรก็ตาม แอปที่ไม่ได้รวมกลุ่มส่วนใหญ่จะมีซอร์สโค้ดเวอร์ชันก่อนหน้ารวมอยู่ในแพลตฟอร์มที่ต่ำกว่า Android 13 โดยค่าเริ่มต้น 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, }
แอพที่แสดงตามประเภทที่ไม่ได้รวมกลุ่ม
แอป | สิทธิพิเศษที่ไม่ได้รวมกลุ่ม | ไม่ได้รวมกลุ่ม (ไม่จำเป็นต้องอยู่บนพาร์ติชันระบบ) | |
---|---|---|---|
ลงนามในระบบแล้ว | ลงนามที่ไม่ใช่ระบบ | ||
ปฏิทิน | เอ็กซ์ | ||
อุปกรณ์สหาย | เอ็กซ์ | ||
โปรแกรมโทรออก | เอ็กซ์ | ||
AOSP โฮสต์ | เอ็กซ์ | ||
สื่อ | เอ็กซ์ | ||
ข้อความ | เอ็กซ์ | ||
อัพเดทการจำหน่าย | โอตะ | โอตะหรือกูเกิลเพลย์ | โอตะหรือกูเกิลเพลย์ |