Version: 5.6
Android 개발 문제 해결
Android에서 크래시 버그 리포트

Android 빌드 프로세스 살펴보기(Inside the Android build process)

Unity에서는 출력 패키지(APK)와 익스포트 패키지라는 두 가지 타입의 Android 빌드 프로세스 출력이 있습니다. APK는 Build and Run 을 선택하면 자동으로 디바이스에 설치됩니다. 또는 Android 디버그 브리지(ADB)를 사용하여 빌드 후에 APK를 수동으로 설치할 수도 있습니다. ADB 명령어 전체 리스트는 Android 개발자 문서의 Android 디버그 브리지 섹션을 참조하십시오.

출력 패키지는 Unity 에디터의 Player Settings 창에서 Split Application Binary 옵션이 선택된 경우 APK 확장 파일(OBB)을 포함합니다. OBB 파일에 대한 자세한 내용은 Unity Manual의 OBB 지원 섹션을 참조하십시오.

Unity는 GradleInternal 두 개의 Android 빌드 시스템을 지원하며, 프로젝트는 ADT(Google Android 프로젝트) 및 Gradle 두 개의 포맷으로 익스포트됩니다.

내부 빌드 시스템

Internal 빌드 시스템은 특정 순서로 Android SDK 유틸리티를 호출하여 APK를 생성합니다. Unity는 APK를 생성하는 데 필요한 다음과 같은 단계를 자동으로 실행합니다.

  • Unity 에셋 준비 및 빌드

  • 스크립트 컴파일링

  • 플러그인 처리

  • Split Application Binary 옵션이 선택된 경우 리소스를 APK와 OBB에 속하는 부분으로 나누기

  • AAPT 유틸리티를 사용하여 Android 리소스 빌드

  • Android 매니페스트를 생성하고 라이브러리 매니페스트를 이에 병합

  • Java 코드를 Dalvik Executable 포맷(DEX)으로 컴파일링

  • IL2CPP Scripting Backend 가 선택된 경우 IL2CPP 라이브러리 빌드

  • APK 및 OBB 패키지 빌드 및 최적화

OBB 파일에 대한 자세한 내용은 Unity 문서고의 OBB 지원에서 확인하실 수 있습니다. Android 매니페스트에 대한 자세한 내용은 Unity 문서고의 Android 매니페스트를 참조하십시오.

Gradle 빌드 시스템

Gradle 빌드 시스템은 Gradle을 사용하여 프로젝트를 Gradle 포맷으로 익스포트하거나 APK를 빌드하여 Android Studio에서 임포트할 수 있도록 합니다. 이에 대한 자세한 내용은 Unity 문서고의 Android용 Gradle을 참조하십시오.

이 빌드 시스템을 선택하면 Unity는 리소스 컴파일을 AAPT로 진행하고 DEX가 실행된다는 사실을 제외하고는 내부 빌드 시스템과 동일한 단계를 거칩니다. 그런 다음 Unity는 다른 필요한 설정 파일과 함께 build.gradle 파일을 생성하고 Gradle 실행 파일을 호출한 후, 작업 이름 아래 작업 중인 디렉토리에 패스합니다. 그 이후 Gradle이 APK를 빌드합니다.

프로젝트 익스포트

빌드 파이프라인을 더 제어하거나, Unity가 일반적으로 허가하지 않는 변경(Unity가 자동으로 생성한 매니페스트 파일의 미세 조정 등)을 실행하려면, 프로젝트를 익스포트하여 외부 툴로 작업을 진행해야 합니다.

Unity는 다음의 두 포맷으로 프로젝트를 익스포트할 수 있도록 지원합니다.

  • Gradle 프로젝트 - Gradle 프로젝트는 Android Studio로 익스포트하는 경우 권장되는 포맷입니다.

  • Google Android 프로젝트(ADT 또는 Eclipse 프로젝트라고도 불립니다) - ADT 프로젝트는 Eclipse 또는 Android Studio가 임포트할 수 있습니다(후자의 경우 프로젝트는 Gradle로 변환됩니다). 이 포맷은 Google이 더 이상 지원하지 않습니다.

프로젝트를 익스포트하려면 다음을 진행합니다.

  1. Build Settings 창에서 Gradle 또는 ADT __ 를 선택합니다. Gradle을 선택한 경우 Export Project__ 체크박스를 선택합니다.

  2. Export 를 클릭한 다음 대상 폴더를 선택합니다.

익스포트가 완료된 이후 Android Studio를 열고 프로젝트를 임포트합니다. Android Studio로 프로젝트를 임포트하는 방법에 대한 자세한 내용은 Android 개발자 문서의 Android Studio로 마이그레이션 섹션을 참조하십시오.

텍스처(Texture) 압축

Build Settings 창에는 Texture Compression 옵션이 있습니다. 기본값 설정 시, 개별 텍스처 포맷 오버라이드가 없는 텍스처의 경우 Unity는 ETC 텍스처 포맷을 사용합니다. 이에 대한 자세한 내용은 Unity 문서의 텍스처 페이지를 참조하십시오.

APK를 특정 목표 하드웨어 아키텍처로 빌드하는 동안 이 기본 동작을 오버라이드하려면 Texture Compression 옵션을 사용합니다. 압축되도록 설정되지 않은 텍스처는 그대로 방치되며, 압축 텍스처 포맷을 사용하는 텍스처는 Texture Compression 옵션에서 선택된 포맷을 사용합니다.

앱이 선택된 텍스처 압축 포맷을 지원하는 디바이스에서만 설치될 수 있도록 하기 위해 Unity는 Android 매니페스트를 수정하여 선택된 포맷에 부합하는 태그를 앱에 추가합니다. 이는 Google Play Store 필터 매커니즘이 올바른 그래픽스 하드웨어가 장착된 디바이스에 대해서만 앱을 제공하도록 합니다.

빌드(Build) 또는 빌드 및 실행(Build and Run)

Build SettingsBuildBuild and Run 옵션 두 개를 제공합니다. 빌드하는 동안 출력 패키지(활성화 된 경우 APK와 OBB)는 선택된 경로에 저장됩니다. 이들 패키지는 Google Play Store에 퍼블리시하거나, ADB의 지원 아래 사용자의 디바이스에 수동으로 설치할 수 있습니다. 앱을 수동으로 설치하는 것에 대한 자세한 내용은 Android 개발자 문서의 앱 실행을 참조하십시오.

Build and Run 옵션을 선택하면 특정된 경로에 출력 패키지를 저장하는 동시에, 컴퓨터에 연결된 Android 디바이스에 앱을 설치합니다.

Split Application Binary 옵션이 활성화된 경우 OBB 파일은 디바이스의 올바른 위치에 푸시됩니다. Development Build 가 선택된 경우 Unity는 프로파일러 터널을 설정하고 CheckJNI를 활성화합니다. 그 이후 앱이 실행됩니다.

팁: 패키지 출력 경로를 설정한 이후 Ctrl+B(Windows) 또는 Cmd+B (OSX) 키보드 단축키를 사용해서 저장된 출력 경로를 사용하는 Build and Run 을 실행할 수 있습니다.


Android 개발 문제 해결
Android에서 크래시 버그 리포트