คู่มือการผสานรวม

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

APK ที่สร้างจากโค้ดที่ไม่ได้รวมกลุ่มจะทำงานร่วมกับแพลตฟอร์มได้หลายเวอร์ชัน

ตรวจสอบรหัส

หากต้องการตรวจสอบโค้ดที่ไม่ได้รวมกลุ่ม:

  1. เรียกใช้สิ่งต่อไปนี้:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานกับซอร์สโค้ด AOSP โปรดดูที่ การเริ่มต้นไคลเอ็นต์ Repo

สร้างโค้ด

แอนดรอยด์สตูดิโอ

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

  1. ใน Android Studio ให้นำเข้าไฟล์บิลด์นี้:
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. อย่าลืมตั้งค่า Gradle JDK ใน Android Studio เป็นเวอร์ชัน 11 เป็นอย่างน้อย:


    รูปที่ 1. เวอร์ชัน 11.
  3. สร้าง APK ที่ต้องการ

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

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

  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. เปิดพรอมต์คำสั่งหรือหน้าต่างเชลล์
  3. ไปที่ packages/apps/Car/libs/aaos-apps-gradle-project
  4. เรียกใช้คำสั่งต่อไปนี้:
    ./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 โฮสต์ เอ็กซ์
สื่อ เอ็กซ์
ข้อความ เอ็กซ์
อัพเดทการจำหน่าย โอตะ โอตะหรือกูเกิลเพลย์ โอตะหรือกูเกิลเพลย์