Facebook에서 Android dex를 압축(?) 해 주는 툴을 만들어 두었는데, 이것의 이름이 ReDex다.
https://github.com/facebook/redex
Docker로 Ubuntu 14.04 container를 만들고, 위 링크에 있는 가이드 문서대로 따라 했지만 문제가 발생했다.
몇 가지 빠진 부분이 있어 내가 했었던 작업의 기록을 남겨 둔다.
( 이 과정을 Dockerfile로 만들면 좋겠지만, 귀찮아서 통과 )
1. Ubuntu 14.04 로 Docker Container 만들기
docker run -i -t --name ubuntu14.04_redex ubuntu:14.04 /bin/bash
2. 디렉토리 이동 ( root의 home directory에 모든것을 설치할 예정 )
cd ~
3. redex 가이드 문서에 Ubuntu 14.04 부분을 실행하기 전에 아래의 것을 먼저 실행해야 한다.
redex 설치 및 사용할 때, 그리고 인터넷에서 android sdk 를 다운로드 받을 때 필요하다.
apt-get update
apt-get install curl
apt-get install unzip
apt-get install openjdk-7-jdk
apt-get install wget
4. android sdk를 먼저 설치해야 한다. ( 아래 과정 중 test 과정에서 java를 컴파일 하고, 이를 dx로 묶는 과정이 있다. )
wget https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
tar zxvf android-sdk_r24.4.1-linux.tgz
cd android-sdk-linux
tools/android update sdk --no-ui
( 이후 라이센스에 동의하라고 하면 y를 눌러 주면 된다. 혹시 화면이 멈추면 엔터를 한번 쳐 주면 라이센스 동의 문구가 나온다. )
tools/android update sdk -u -a -t 4,5
( 상황에 따라서 뒤에 있는 숫자인 4,5 를 바꿔야 하는 경우도 있다. 숫자에 맞는 version을 다운받게 된다. 목록을 알고 싶다면 tools/android list sdk -a -u 를 쳐서 번호를 확인하도록 하자. 여기서는 23.0.3을 사용한다. 24는 java version 8이 필요하기 때문에 openjdk 7으로 실행할 수 없다. )
5. ~/.bashrc 파일의 제일 아래쪽에 아래 내용을 추가하도록 하자. ( vi ~/.bashrc )
ANDROID_SDK=/root/android-sdk-linux/
PATH=$PATH:/root/android-sdk-linux/build-tools/23.0.3/:
6. 이후 bashrc 파일에 넣어 둔 환경을 현재 터미널에도 적용하기 위해 source 명령으로 상태를 업데이트 해 준다.
source ~/.bashrc
7. redex 가이드 문서에 따라서 각종 tool 다운로드 및 설치 ( 이하의 과정은 달라졌을 수도 있으니, 공식 홈페이지에 가이드 문서를 반드시 다시 확인하자. )
8. redex 가이드 문서에 따라서 다운로드, 빌드, 설치
git clone https://github.com/facebook/redex.git
cd redex
autoreconf -ivf && ./configure && make
sudo make install
9. 설치가 다 되었으면 잘 동작하는지 체크 한다.
./test/setup.sh
cd test
make check
근데 여기서 에러가 난다.. 이유는 모르겠음.. ;; 요건 무시해도 된다.
10. 이후 redex 명령을 이용해서 apk를 redex 시킬 수 있다.
( 만약 zipalign 문제가 생기면, 위에 설명한 환경 설정이 제대로 안 된 것이다. ./bashrc 파일에 ANDROID_SDK를 확인해 보도록 하자. )
redex a.apk -o a.redex.apk
그 결과 다음과 같은 결과를 얻었다.
c.apk -> c.redex.apk : 44.8M -> 44.5M
s.apk -> s.redex.apk : 39.8M -> 39.4M
w.apk -> w.redex.apk : 38.4M -> 38.1M
t.apk -> t.redex.apk : 33.8M -> 33.4M
원본 apk는 이미 proguard를 거친 뒤였음에도 약 250kb ~ 400kb 정도 용량이 줄어 들었다.
'공부 > 컴퓨터' 카테고리의 다른 글
Do it! Node.js 프로그래밍 - 실제 서버로 구동 가능한 코드로 배운다. (0) | 2018.07.17 |
---|---|
타입스크립트 마스터 2/e - 예제로 배우는 타입스크립트 정오표 (에이콘 출판사) (0) | 2018.07.11 |
자바스크립트 완벽 가이드 6e 번역개정판 - 나름대로 정오표 및 공부 (0) | 2016.03.31 |
Windows에서 Docker Toolbox로 Docker 사용하기 (1) | 2015.11.23 |
[아두이노] Arduino IDE 1.0.5-r2 한글 패치 (2) | 2014.03.08 |