ReDex — Android Bytecode Optimizer 적용

페이스북에서 2016년에 배포한 오픈소스인데, 나중에 적용하려고 대기하고 있다가, 오늘 적용했다.

apk 파일의 사이즈와 앱 구동 속도를 25%나 빠르게 해준다는 달콤한 말에 일단 무조건 따라해보았다. 사이트에 나와있는 가이드에 따라 진행을 하다보면, 2가지 문제를 만나게 되는데,

1. I’m getting “Couldn’t find zipalign. See README.md to resolve this”
2. Error writing mapping file: No such file or directory

1번의 zipalign을 못찾는 문제는 bash shell에 아래와 같이 넣어주면되고,

export ANDROID_SDK=~/Library/Android/sdk

2 번의 mapping file의 문제는 아래와 같은 conf파일을 생성해주면 된다. 자세한 원인은 github issue를 참고하길 바란다.

{
"redex": {
"passes": [
"ReBindRefsPass",
"BridgePass",
"SynthPass",
"FinalInlinePass",
"DelSuperPass",
"SingleImplPass",
"SimpleInlinePass",
"StaticReloPass",
"RemoveEmptyClassesPass",
"ShortenSrcStringsPass"
]
},
"ShortenSrcStringsPass": {
"filename_mappings": "filename_mappings.txt"
}
}

android studio에서 생성된 apk파일을 아래와 같은 명령어로 redex를 사용해 다시 생성해주면 된다.

redex path/to/your.apk -o path/to/output.apk -c redex.conf
--sign Sign the apk after optimizing it
-s [KEYSTORE], --keystore [KEYSTORE]
-a [KEYALIAS], --keyalias [KEYALIAS]
-p [KEYPASS], --keypass [KEYPASS]
ex,)
redex /path/in.apk -o /path/output.apk -c redex.conf
--sign -s /path/keystore -a alias -p password

생성된 결과 apk 파일은 아주 조금 줄었다..0.05M정도. 음? 설치를 해보니깐 속도 체감도 안된다고 한다. 음? ㅠㅠ 뭘까..

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.