Android 개발
에이전트와 Android 앱을 만들며 만난 Gradle 빌드, 라이브러리 업그레이드, 화면 구성, 성능 문제와 각각을 어떻게 풀었는지 적은 기록입니다.
글 목록
Android assets를 미리 gzip한 실측: APK 이득은 0, .pack.gz는 .pack이 되어 FileNotFoundException
Android assets에 미리 gzip해 넣은 팩 5개는 APK의 deflate보다 18바이트씩 컸고, 이름의 .gz가 빠져 FileNotFoundException까지 났습니다.
SKT 판매 삼성 폰에서 market://을 열면 스토어 선택 창이 뜬다: Play 패키지부터 지정하기
SKT 판매 삼성 폰 두 대에서 market:// 링크를 스토어 앱 3개가 받아 선택 창이 나왔습니다. Play 패키지를 먼저 지정하고 실패할 때만 다음 주소로 넘기자 Play가 바로 열렸습니다.
addOnCompleteListener(this)가 onStop에서 지운 리스너 때문에 스플래시에 멈춘 버그
addOnCompleteListener(this)로 건 Remote Config 리스너가 onStop에서 지워져, 화면이 꺼진 채 실행한 맞춤법 앱이 스플래시에 멈췄습니다. 수정과 기기 시험입니다.
"6.7" < "6.11"이 거짓이라 콘텐츠 갱신이 멈췄다: 6.2~6.9 기기만 막힌 Remote Config 버전 비교
Kotlin 문자열 비교로 콘텐츠 버전을 견주던 맞춤법 앱이 Remote Config 6.10부터 6.2~6.9에 머문 기기에 문제 은행과 공지를 보내지 못했습니다. 원인과 수정, 확인 절차입니다.
R8이 지우지 못한 테스트 광고 ID 5개: listOf().any 한 줄과 dex 건수 검사
실제 광고 ID로 만든 한판블록 AAB의 dex에 테스트 광고 문자열 5개가 남았습니다. listOf().any를 상수끼리 ||로 바꾸자 0개가 됐고, 건수만 세는 검사를 정했습니다.
16KB 페이지 크기 대응기: NDK 27·29에서만 생긴 파란 색조와 다시 측정한 .so 12개
Play 16KB 페이지 요건으로 .so 6개를 다시 빌드할 때 NDK 27·29는 사진 전환에 파란 색조를 냈습니다. 다시 재 보니 NDK 25도 링커 플래그 하나로 16KB 정렬이 됐습니다.
Android 7에서만 실행 즉시 꺼지던 크래시: java.time 한 줄과 NewApi 린트 게이트
minSdk 24 게임 두 개가 Android 7에서 실행마다 꺼졌습니다. 공용 광고 모듈의 java.time 한 줄이 원인이었고, 그 모듈의 NewApi lint를 릴리스 빌드 앞에 걸었습니다.
안드로이드에서 한글 일부 글자만 빈칸: 나눔스퀘어 cmap 11,172자 중 8,693자가 빈 글자였다
Android 앱 폰트의 cmap이 한글 11,172자를 모두 가졌다고 했지만 8,693자는 외곽선이 없어 빈칸이 됐습니다. 원인 사슬, 다시 측정한 숫자, 점검 스크립트를 정리했습니다.
androidx.pdf beta01: 격리 프로세스에서 Application.onCreate가 한 번 더 돌아 PDF가 조용히 안 열렸다
androidx.pdf beta01의 격리 프로세스에서도 Application.onCreate가 돕니다. 가드가 없으면 오류 콜백 없이 PDF가 안 열렸고, 첫 줄 가드와 테스트로 막았습니다.
Compose 한글 줄바꿈은 음절에서 끊기고, 'R/u/l/e' 세로 깨짐은 Row 측정 순서 탓이었다
Compose는 한글을 음절 사이에서도 끊습니다. 'R/u/l/e' 세로 깨짐은 PairLayout으로, 음절 끊김은 WordBreak.Phrase와 단어 폭 측정으로 고쳤습니다.
Play Console 'DEX 최적화 39%'의 범인: 쓰지도 않는 Kakao SDK keep 규칙
-dontoptimize를 빼도 Play Console DEX 지표는 36~39%였습니다. 안 쓰는 Kakao SDK keep 규칙을 지우자 r8.json 85%, AAB는 11.6MB가 됐습니다.
안드로이드 한글 뷰어 만들기: rhwp + WebView를 문서 222개로 실측한 기록
rhwp를 WebView에 올려 Galaxy S21에서 한글 문서 222개 중 221개를 열었습니다. 384쪽 문서는 보이는 쪽만 그리자 메모리가 2.8GB에서 255MB로 줄었습니다.