[Android] Facebook Redex 压缩优化Apk实践

最近Facebook 又放出了一个用于Android apk字节码优化的工具包——redex,经过redex的优化apk会变的体积更小,速度更快。至于原理大家可以到https://code.facebook.com/posts/1480969635539475/optimizing-android-bytecode-with-redex这个网站去看,今天我想分享一下具体的实践过程。

前两天刚看到FB放出的这个工具包就迫不及待的去尝试了下,结果一直报下面这个错误:

configure: error: Please install double-conversion library

但其实这些library都已经安装好了的,那天倒腾了好久也跟群里的朋友交流过,感觉应该是FB的一个小bug于是去github上提了issue,果然第二天得到了回应官方更新了使用说明。下面是我在Mac OS X上的实践过程:

1、首先需要你的Xcode安装了命令行工具:

xcode-select --install

2、利用homebrew安装依赖包:

brew install autoconf automake libtool python3 brew install boost double-conversion gflags glog libevent openssl brew link openssl --force

3、通过Git将redex的源码checkout到电脑上:

git clone https://github.com/facebook/redex.git cd redex git submodule update --init

4、通过autoconf和make来构建redex:

autoreconf -ivf && ./configure && make sudo make install

在执行步骤四的时候就出现了问题:

configure: error: Please install google-gflags library configure: error: ./configure failed for third-party/folly/folly

于是我又提了issue,下面是跟沟通的过程:

按照他的方法执行下面的命令:

xcode-select --install sudo xcode-select --switch /Library/Developer/CommandLineTools/

再执行步骤四就OK了当然如果看到很多warn也不用担心,最终可以编译通过。

接下来就可以通过redex执行最后的优化命令了:

redex path/to/your.apk -o path/to/output.apk

不过这里又出现了个问题:

又是环境问题? ,下面是配置过程:

mafeideAir:~ mafei$ vi ~/.bash_profile export PATH=/Users/mafei/Development/adt-bundle-mac-x86_64-20140702/sdk/build-tools/23.0.2:$PATH

因为这个是系统只读文件所以退出的时候要输入!wq才行

这下执行下面的命令就完全没问题啦!

mafeideAir:~ mafei$ cd GitHub/ mafeideAir:GitHub mafei$ cd redex/ mafeideAir:redex mafei$ redex metis_release_v1.0.2.apk -o out.apk

刚刚又去看了下redex的官网发现FB已经把这几天遇到的一些典型问题都汇总了一下: