Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Connectable Observable Operators
- MVP
- rxandroid
- AndroidWeek
- gradle
- 분류
- 성공
- logansquare
- 디버그
- retrolambda
- Kulle
- Android Support Library
- android resource automation
- RXjava
- RX
- 안드로이드 리소스
- 9498
- Season3
- 안드로이드
- DIABLO4
- 리소스 자동화
- android weekly
- parser
- Android
- ReactiveX
- 백준
- JSON
- 구현
- Observable
Archives
- Today
- Total
안드로이드 개발 팁 블로그
Multiple APK 적용하기 본문
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
안드로이드 앱을 개발하면서 네이티브코드가 포함된 라이브러리를 사용할 때
통합버전의 APK를 만들게 되면 모든 프로세스 별로 라이브러리가 추가 되면서 용량이 늘어나게 됩니다.
이럴 때 필요한 것이 Multiple APK기능인데 아래와 같은 것들은 지원합니다.
- 각각의 APK에 다른 OpenGL texture 압축 포멧 지원
- 각각의 APK에 다른 스크린 사이즈와 density를 설정
- 각각의 APK에 다른 디바이스에 대한 특성 설정
- 각각의 APK에 다른 플렛폼 버전 설정
- 각각의 APK에 다른 CPU 아키텍처 설정 (ARM, x86, and MIPS)
Multiple APK를 만들기 위해서는 몇가지 필수 제약사항이 있습니다.
- 패키지 명 같아야 하고 같은 인증서로 서명해야 합니다.
- 버전 코드가 같아야 합니다.
- 버전 코드에 대한 룰(https://developer.android.com/intl/ko/google/play/publishing/multiple-apks.html#Rules)
Multiple APK의 버전 코드 규칙
필수는 아니지만 구글에서 권장하는 버전 규칙입니다.
앞 두자리는 API 버전 그다음 두자리는 화면 사이즈 마지막 세자리는 앱버전 입니다. 궂이 지킬 필요는 없지만 버전코드를 통해 쉽게
지원 API 및 화면 크기를 알 수 있습니다.
Example
예제는 CPU 별로 나눠서 APK를 생성하는 예제 입니다.버전코드는 각 CPU 별 코드 값 * 1000000 + versionCode 입니다.
build.gradle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | android { ... splits { abi { enable true reset() include 'x86', 'x86_64', 'arm64-v8a', 'armeabi-v7a', 'armeabi' //분리할 CPU universalApk false //통합apk생성여부 } } } // map for the version code ext.versionCodes = ['x86':1, 'x86_64':2, 'arm64-v8a':3, 'armeabi-v7a':4, 'armeabi':5 ] import com.android.build.OutputFile android.applicationVariants.all { variant -> // assign different version code for each output variant.outputs.each { output -> output.versionCodeOverride = project.ext.versionCodes.get(output.getFilter(OutputFile.ABI)) * 1000000 + android.defaultConfig.versionCode } } | cs |
자세한 문서는
http://developer.android.com/intl/ko/google/play/publishing/multiple-apks.html
http://developer.android.com/intl/ko/tools/building/plugin-for-gradle.html
http://geeks.everything.me/2015/06/10/taking-the-ks-off-your-apks-part-1/ (사이즈별 cpu 별 apk 분리하는 법)
을 참고하면 도움이 됩니다.
'Android Tip' 카테고리의 다른 글
Retrofit2 + okhttp3 Cookie 관리하기 (1) | 2016.02.05 |
---|---|
RecyclerView에 ItemClick,ItemLongClick 적용하기 (1) | 2016.02.03 |
Retrofit2 + okhttp3 + Rxandroid 사용법 (5) | 2016.01.26 |
retrofit 1.9 -> 2.0, okhttp2 -> okhttp3 라이브러리 변경 삽질기. feat.Fresco (0) | 2016.01.15 |
Android Studio에 Retrolambda 적용하기 (2) | 2015.12.01 |
Comments