통합 가이드

이 페이지에서는 번들되지 않은 앱을 통합하는 방법을 간략하게 설명합니다. 다이얼러, 미디어, 자동차 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. Android Studio의 Gradle JDK를 버전 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 경로로 ANDROID_SDK_ROOT 환경 변수를 설정합니다.
  2. 명령 프롬프트 또는 셸 창을 엽니다.
  3. packages/apps/Car/libs/aaos-apps-gradle-project 로 이동합니다.
  4. 다음 명령을 실행하십시오:
    ./gradlew assemble

최소 필수 API 수준

번들로 묶이지 않은 각 앱은 minSdkVersion 이상 버전의 Android 플랫폼에서 작동합니다. 다음 표에는 각 앱에서 지원하는 최소 API 버전이 나열되어 있습니다.

최소 API 수준
달력 29
자동차 UI 라이브러리 29
CompanionDevice 29
다이얼러 31
미디어 30
SMS 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은 사전 빌드된 소스 코드보다 소스 코드에 우선순위를 부여합니다. 따라서 android_app_import 규칙 내에서 prefer 플래그를 true 로 설정해야 합니다.

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,
    }

번들되지 않은 유형에 따라 나열된 앱

번들로 묶이지 않은 특권 번들 해제됨
(시스템 파티션에 있을 필요는 없음)
시스템 서명됨 비시스템 서명됨
달력 엑스
CompanionDevice 엑스
다이얼러 엑스
AOSP 호스트 엑스
미디어 엑스
SMS 엑스
업데이트 배포 오타 OTA 또는 구글 플레이 OTA 또는 구글 플레이