https://docs.unity3d.com/kr/2022.3/Manual/android-gradle-overview.html
공식문서를 보고 공부한 내용입니다.
잘못된 내용이 있다면 댓글에 작성해주세요.
0. 메니페스트 요소 속성
- 액티비티는 launchMode를 singleTask만 지원
1. Unitiy의 안드로이드 Gradle
Unity 프로젝트를 Gradle 프로젝트로 변환하면, 다음의 두 가지 모듈을 포함하게 됩니다.
모듈 : 독립적인 하나의 기능
- UnityLibrary 모듈
Unity 런타임 및 프로젝트 데이터가 들어가 있습니다.
Gradle 프로젝트에 Unity 프로젝트를 포함할 때 사용할 수 있다.
즉, build gradle에 유니티 의존성을 추가한다 라고 이해함
- 런쳐 모듈
앱의 이름과 해당 아이콘이 포함되어있다.
Unity를 실행하는 Android 앱 모듈이다.
1. Main Manifest
- 안드로이드 앱에 대한 중요한 메타 데이터가 포함되어있음
- UnityLibrary 모듈에 있는 AndroidManifest.xml
2. Unity Launcher Manifest
- 안드로이드 앱의 런처에 대한 중요한 메타데이터가 포함되어 있습니다.
- 런쳐 모듈에 있는 Android Manifest.xml
- Main Manifest와 Unity Launcher Manifest의 설정을 동일하게 하여야 충돌하지 않는다.
- Unity에서 Android 앱 메니페스트를 생성하기 위해 Main Manifest와 Unity Launcher Manifest와 플러그인 Manifest를 병합하여 하나로 만든다.
3. Main Gradle
- 라이브러리를 사용해 Android 앱을 빌드하는 방법에 대한 정보
- unityLibrary의 build.gradle이다.
- unityLibrary 모듈을 빌드하는 방법을 설명하고 빌드에 포함할 종속성 목록을 포함하는 Gradle 프로젝트 build.gradle 파일이다.
4. Launcher Gradle
- 안드로이드 앱을 빌드하는 방법
- 런처 모듈을 빌드하는 방법을 설명하고 빌드에 포함할 종속성 목록을 포함하는 Gradle 프로텍트 build.gradle 파일이다.
- Unity에서 런처 모듈은 unityLibrary 모듈에 기반한다.
- 즉, 런처 모듈을 빌드할 때 unityLibrary가 빌드되어 최종 경과에 포함된다.
5. Base Gradle
- 이 파일에는 다른 모든 템플릿과 Gradle 프로젝트 간에 공유되는 구성이 포함되어있습니다.
- Gradle 프로젝트의 모든 모듈에 영향을 주는 기본 Gradle 파일이다.
- 이 Gradle 프로젝트에서 사용할 플러그인 버전을 지정한다.
- 예를 들어 Android Gradle 플러그인이다.
6. Gradle Properties
- Gradle 빌드 환경에 대한 구성 설정이 포함되어 있습니다.
- 여기에는 다음이 포함된다.
- JVM 메모리 구성
- Gradle이 여러 JVM을 사용하여 빌드할 수 있도록하는 프로퍼티
- 축소화 작업을 수행할 툴을 선택하는 프로퍼티
- 앱 번들을 빌드할 때 네이티브 라이브러리를 압축하지 않도록 하는 프로퍼티
- 또한 Unity는 스트리밍 에셋 디렉토리 내에 에셋 이름을 추가하고 이러한 에셋이 최종 앱에 있어야하며 Gradle이 이들을 압축하지 않도록 지정해야한다. 이를 커스텀 하려면 playerSettings-Publish Settings-Build에서 커스텀할지 체크할 수 있다.
7. Gradle Settings
- 앱에 필요한 외부 종속성을 해결하기 위한 아티팩트 저장소 선언이 포함되어 있습니다.
아티팩트 저장소: 앱 개발 과정에서 빌드된 아티팩트(라이브러리, APK, AAR등)를 저장하고 공유하는데 사용하는 저장소이다. (예 : JCenter, Maven Central)
- 이 파일은 프로젝트 플러그인이 포함된 위치도 지정합니다.
- 그 위치는 이 프로젝트 내부의 온라인 저장소와 Java 플러그인의 조합입니다.
8. Proguard
- 안드로이드 프로가드에 대한 설정 파일
- 플레이어 설정에서 축소가 활성화된 경우 유효하다.