일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- androidStudio
- 쿠링
- ProGuard
- GitHub
- Coroutines
- Rxjava
- AWS
- 코루틴
- android
- 코드포스
- pandas
- 백준
- livedata
- relay
- boj
- Coroutine
- textfield
- MyVoca
- Kotlin
- Gradle
- TEST
- MiTweet
- Codeforces
- architecture
- activity
- Compose
- 암호학
- 프로그래머스
- Python
- Hilt
- Today
- Total
목록Primary/Android (80)
이동식 저장소
[Android] R8 컴파일러로 앱 경량화하기 왜 경량화해야 하는가? APK 파일에는 실행 가능한 바이트코드가 DEX(Dalvik Executable) 형태로 저장되어 있다. DEX 파일에는 앱에서 실행되는 Android framework 메서드, 개발자가 직접 작성한 메서드 등의 thinking-face.tistory.com 위 글에서 나는 ``debug``와 ``release`` 모두에 경량화를 적용했다고 말했다. 그런데 경량화를 적용하면 instrumented test가 실행되지 않는다. 정확히는 테스트를 인식하지 못한다. 해결법 ``build.gradle``에서 ``minifyEnabled``를 ``false``로 설정하면 해결된다. 경량화가 원인인 건 맞는데, 정확히 어떤 매커니즘인지 모르겠다..
Build variant란 무엇인가? Build variant는 빌드될 수 있는 앱의 부분을 말한다. 보통은 코드 전체를 빌드하지만, 필요에 따라 일부 코드를 포함하거나 제거하여 빌드할 수 있다. 예를 들어 디버깅용 코드를 실제 배포판에서 제외하는 경우가 있다. 또는 기능 몇 개를 제외하여 무료 버전을 빌드하고, 모든 기능을 포함하는 유료 버전을 빌드할 수도 있다. 모두 같은 코드를 범위만 달리하여 빌드한 예시이다. Build variant는 build type과 product flavor의 조합(cross product)으로 이루어진다. Build type? Build type은 앱을 빌드하고 서명하는 방법을 정의한다. 예를 들어 build type을 debug로 설정하면 디버깅 모드가 활성화되며, r..
제목에 있는 네 가지 단어를 모두 설명할 수 있다면 이 글을 읽을 필요가 없다. 즉시 다른 공부를 하도록 하자. ㅋㅋ Android Android는 리눅스를 기반으로 개발된 오픈 소스 소프트웨어 스택이다. 진짜 스택처럼 생겼다. 최하단의 리눅스 커널을 기반으로 하여, 하드웨어를 추상화하고, Android 런타임과 핵심 라이브러리를 쌓아서, Java API 위에서 애플리케이션이 실행된다. 이것이 Android의 핵심 구조이다. 가운데의 Android Runtime은 하드웨어 레이어 위에서 동작하며, Native C/C++ 라이브러리를 Java API로 제공한다. 예를 들어 Android Framework가 제공하는 Java OpenGL API를 사용하여 2D/3D 그래픽을 직접 그릴 수 있다. Androi..
왜 경량화해야 하는가? APK 파일에는 실행 가능한 바이트코드가 DEX(Dalvik Executable) 형태로 저장되어 있다. DEX 파일에는 앱에서 실행되는 Android framework 메서드, 개발자가 직접 작성한 메서드 등의 목록이 저장되어 있다. 그런데 하나의 DEX 파일에는 메서드가 최대 65536개까지만 포함될 수 있다. 왜 65536개인지는 나중에 다시 공부할 것이고, 어쨌든 이 한도를 넘으면 DEX 파일을 여러 개 작성해야 한다. 그런데 원칙적으로 DEX 파일은 하나만 존재해야 하며, DEX 파일이 여러 개 존재하면 앱의 성능이 크게 나빠질 수 있다. 왜인지는 나중에. 이런 이유로 APK에서 불필요한 메서드를 최대한 제거해야 한다. R8 컴파일러를 사용하면 앱을 경량화할 수 있다. R..
Android 프로젝트를 만들면 수많은 Gradle Scripts 파일이 생성된다. 나머지는 대충 알겠는데 ``proguard-rules.pro``는 대체 무엇인가? 파일 내용을 봐도 딱히 모르겠고.. # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # If your project uses WebView with JS,..