Android 확장 프로그램 만들기
Android 확장 프로그램을 만들기 위해서는 두 가지 부분으로 나누어 작업해야 합니다. 첫 번째는 확장 프로그램 자체와 필요한 파일을 추가하는 것이고, 두 번째는 확장 프로그램이 요구하는 함수와 매크로/상수를 만드는 것입니다.
확장 프로그램 추가하기
함수와 상수는 플레이스홀더 파일을 사용하여 그룹화하여 추가합니다. 플레이스홀더를 추가한 후, 이전 섹션에서 설명한 대로 함수와 매크로를 정의합니다. 나머지 파일을 추가하기 위해서는 먼저 편집기의 Extra Platforms 섹션에서 Android 체크박스를 선택해야 하며, 그러면 확장 프로그램의 Android 속성이 열립니다.
여기에서 다음과 같은 세부 정보를 입력할 수 있습니다:
항목 | 설명 |
---|---|
클래스 이름 | 확장 프로그램은 여러 클래스를 가질 수 있으며, 각 클래스는 고유한 함수와 상수를 가집니다. 따라서 목적에 맞는 이름을 지정해야 합니다. |
Android 권한 | 확장 프로그램이 필요로 하는 추가 권한을 추가할 수 있습니다. 이 권한은 확장 프로그램의 사용에 따라 다르므로, Android 플랫폼에 대한 Google의 문서를 확인하거나, 서드파티 SDK를 사용하는 경우 SDK와 함께 제공되는 문서를 확인해야 합니다. 새로운 권한을 추가하려면 플레이스홀더 권한을 추가한 후 더블 클릭하여 필요한 내용으로 편집합니다. 권한은 버튼을 사용하여 제거할 수 있습니다. |
코드 주입
여기에서는 게임이 테스트 또는 최종 출시를 위해 빌드될 때 Android 애플리케이션에 주입할 코드를 추가할 수 있습니다. 게임을 스토어에 제출하기 전에 이 설정(및 권한)을 신중하게 검토해야 하며, 잘못된 설정은 게임 제출에 실패할 수 있습니다.
코드 주입 그룹 생성
주입할 코드는 서로 다른 XML 그룹으로 구분되어야 하며, 다음과 같은 구문을 사용하여 코드 주입 그룹을 생성할 수 있습니다:
// 주입할 코드
Android 플랫폼에서 사용할 수 있는 태그는 다음과 같습니다:
태그 | 설명 |
---|---|
YYAndroidTopLevelGradle | 최상위 Gradle 설정 |
YYAndroidManifestAttributes | AndroidManifest의 속성 |
YYAndroidGradleDependencies | Gradle 의존성 설정 |
YYAndroidLogcat | 로그 태그 설정 |
주입 경로
주입된 코드의 런타임 위치는 태그의 유형에 따라 다릅니다:
태그 유형 | 주입 경로 |
---|---|
최상위 Gradle | {RUNTIME}\android\runner\RootFiles\build.gradle |
Android Manifest | {RUNTIME}\android\runner\ProjectFiles\src\main\AndroidManifest.xml |
문자열 | {RUNTIME}\android\runner\ProjectFiles\src\main\res\values\strings.xml |
XML 문자 이스케이프
시작 및 종료 태그 사이의 모든 문자는 XML로 파싱되므로, XML 문자로 잘못 해석될 수 있는 모든 문자는 이스케이프해야 합니다. 이를 위해 특수 문자를 XML 이스케이프 버전으로 변환하거나, CDATA 섹션 내에 모든 텍스트를 포함할 수 있습니다.
값 주입
주입된 코드에 다양한 값을 삽입할 수 있습니다. 이는 ${NAME}
구문을 따르며, NAME은 다음과 같은 값이 될 수 있습니다:
값 | 설명 |
---|---|
applicationId | 애플리케이션 ID |
minSdkVersion | 최소 SDK 버전 |
targetSdkVersion | 대상 SDK 버전 |
조건부 주입
코드를 조건부로 주입할 수 있으며, 이는 확장 옵션의 값에 따라 달라집니다. 코드 주입 그룹 내에서 toExpand
를 사용하여 필요한 옵션을 조건으로 설정합니다.
활용 예제
다음은 Android 확장 프로그램에서 사용할 수 있는 코드 스니펫의 예입니다:
// 로그 태그 설정
<YYAndroidLogcat>myDebugTag:V</YYAndroidLogcat>
// Gradle 설정 주입
<YYAndroidGradle>
// Gradle 설정 내용
</YYAndroidGradle>
// 조건부 주입 예제
<YYIosPlist>
<toExpand condition='${YYEXTOPT_MyExtension_ShouldInject}'>...</toExpand>
</YYIosPlist>
이러한 예제들은 Android 확장 프로그램을 만들 때 유용하게 활용될 수 있습니다.