본문 바로가기

Unity

[Unity Android] Gradle

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

playersetting의 Build에서 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

- 안드로이드 프로가드에 대한 설정 파일

- 플레이어 설정에서 축소가 활성화된 경우 유효하다.