项目有个需求,需要从cdn上下载apk文件,并对apk文件进行解析,获取其pkg和size等信息。
通过与开平的同学交流发现,在程序中调用aapt工具可以完成apk文件的解析工作。aapt在windows、linux、mac分别有对应的文件,我们可以通过解压apktool.jar获取。这里我们主要讲解aapt如何在linux centos release 6.5 64位操作系统环境运行。
aapt文件有32位和64位之分,32位需要安装glibc.i686、zlib.i686、libstdc,甚是麻烦,下载多次均未成功,这里建议使用64位aapt:点我下载。
把64位aapt文件上传到服务器后,chmod +x aapt
添加运行权限,执行./aapt后会发现报libc.so.6: version ‘GLIBC_2.14’ not found,下面需要我们安装glibc2.14。
我们把glibc-2.14.tar.xz(点我下载)上传到服务器的/var/glibc目录,然后运行tar -xvf glibc-2.14.tar.xz
解压。解压完成后,我们进入glibc-2.14目录:cd glibc-2.14
,接着我们创建glibc源码构建目录:mkdir build
,然后进入build目录:cd build
。在build目录我们运行../configure --prefix=/opt/glibc-2.14
进行配置,然后运行make -j4
进行编译,最后运行sudo make install
进行安装。
此时运行strings /lib64/libc.so.6 |grep GLIBC_
发现还是没有2.14版本,别急,还需要下面两个命令:
cp -r /etc/ld.so.c* /opt/glibc-2.14/etc/
ln -sf /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
此时再运行strings /lib64/libc.so.6 |grep GLIBC_
可以从结果中找到GLIBC_2.14版本,运行./aapt出现Android Asset Packaging Tool…信息证明配置成功。