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

หน้านี้สรุปวิธีผสานรวมแอปที่ไม่ได้จัดกลุ่ม แอปที่มีแป้นโทรศัพท์ สื่อ และ 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 โปรดดูที่ การเริ่มต้นไคลเอ็นต์ที่เก็บ

สร้างโค้ด

Android Studio

วิธีสร้างโค้ดใน 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 ด้วย 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
  2. เปิด Command Prompt หรือหน้าต่าง Shell
  3. ไปที่packages/apps/Car/libs/aaos-apps-gradle-project
  4. เรียกใช้คำสั่งต่อไปนี้
    ./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