프로젝트 개요

플랫폼용 Android 스튜디오 (ASfP)의 프로젝트에는 소스 코드 및 애셋에서 테스트 코드와 빌드 구성에 이르기까지 AOSP 코드베이스를 위한 작업공간을 정의하는 모든 항목이 포함됩니다.

새 프로젝트를 시작하면 ASfP에서 모든 파일에 필요한 구조를 생성하고 이를 Project 창에 표시합니다. 창을 열려면 View > Tool Windows > Project를 선택합니다.

이 페이지에서는 프로젝트 구성에 포함된 주요 구성요소를 간략하게 설명합니다.

프로젝트 구성 (.asfp-project)

ASfP 프로젝트 구성은 프로젝트 디렉터리의 루트에 있는 .asfp-project 파일로 제어됩니다. 이 YAML 파일은 프로젝트에 포함되는 항목과 중요 기능의 작동 방식을 제어하는 데 필수적입니다. ASfP > Project > Open Config를 사용하여 기본 메뉴를 통해 열거나 프로젝트 뷰에서 찾을 수 있습니다.

프로젝트가 생성되면 사용자가 제공한 사양을 기반으로 구성이 구성됩니다. 구성의 모든 매개변수는 언제든지 수정하여 프로젝트 사양을 수정할 수 있습니다(예: 프로젝트 디렉터리 또는 모듈 업데이트). 변경사항이 반영되려면 동기화가 필요합니다.

구성 매개변수

.asfp-project 파일에서 구성할 수 있는 주요 매개변수는 다음과 같습니다.

repo

필수 항목

Android 플랫폼 저장소 루트의 절대 경로입니다.

repo: /path/to/aosp

lunch

필수 항목

프로젝트와 결합될 런치 타겟입니다. 동기화 및 관련 실행 구성을 비롯한 모든 Soong 빌드 작업에 사용됩니다.

lunch: your-product-variant-userdebug

directories

선택사항

프로젝트에 포함하거나 제외할 디렉터리입니다. repo 루트를 기준으로 하는 상대 경로여야 합니다.

directories:
  include:
    -   frameworks/base
    -   packages/apps/Settings
  exclude:
    -   vendor
    -   out/soong

modules

선택사항

프로젝트에 포함하거나 프로젝트에서 제외할 모듈입니다. 이러한 속성은 이전에 지정된 directories와 함께 작동합니다. 전체 이름과 약식 이름이 모두 지원됩니다.

modules:
  include:
    -   SystemUIGoogle
    -   frameworks/base/services/core/java:services
  exclude:
    -   UnusedModule

test_sources

선택사항

ASfP는 프로덕션 소스와 테스트 소스를 구분하려고 하지만 경우에 따라 테스트 소스를 명시적으로 표시해야 할 수도 있습니다. repo 루트를 기준으로 한 상대 경로로 제공합니다. 지정된 경로의 하위 디렉터리인 소스 루트는 테스트로 표시됩니다.

test_sources:
  -   cts/tests/tests/example
  -   tests/mytests

other_languages

선택사항

Java 지원은 기본적으로 포함되어 있습니다. 다른 언어에 대한 지원을 추가할 수 있습니다. ASfP는 C/C++ (cpp) 및 Rust (rust)도 지원합니다.

other_languages:
  -   cpp
  -   rust

build_config

선택사항

이 매개변수를 사용하면 Soong 빌드 이벤트에 맞춤 플래그나 환경 변수를 추가할 수 있습니다. 이 구성은 동기화 및 실행 구성을 비롯하여 Soong 빌드를 생성하는 IDE의 모든 작업에 적용됩니다.

build_config:
  flags:
    -   -j64
  env:
    SOONG_ALLOW_MISSING_DEPENDENCIES: true
    MY_CUSTOM_VAR: value