一步步漂白 Android 应用 适配电纸书

一、为什么要漂白 Android 应用

最近撸了一个 Android 系统的墨水屏电纸书,可以使用几乎所有 Android 阅读类应用,不过很多都不适合墨水屏,很是闹心。墨水屏要求白底黑字,背景纯白,字体纯黑,且没有翻页效果。寄希望于开发商推出电纸书专版应用,实在不现实,还不如自己动手。

二、准备反编译的工具

Android 应用的安装包格式 apk,类似于zip压缩包,但是里面的xml文件被加密过,要修改压缩包里的xml文件需要先反编译 apk。

1、反编译工具

我使用的反编译工具是 ApkToolkit,可以自己搜索。为了方便下载,我重新打包上传到百度网盘了,下载地址:http://pan.baidu.com/s/1i3zdrSh 密码: wuuq

ApkToolkit

2、编译环境 Java JDK

使用 ApkToolkit 必须安装编译环境 Java JDK 7,下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

3、配置环境变量

Windows 高级系统设置中,设置 JAVA_HOME和PATH,根据自己的实际安装路径,如下:

JAVA_HOME=C:\Program Files\Java\jdk1.7.0_60
PATH=%PATH%;%JAVA_HOME%\bin

三、反编译.apk

拖拽 XXX.apk 到”反编译.apk”按钮前的输入区,点击”反编译.apk”按钮,会在文件 XXX.apk 的同级目录下生成文件夹 XXX。

四、修改xml

Android 应用程序颜色值的定义是通过RGB三原色和一个alpha值来定义的,以 # 开始,后面是 Alpha-Red-Green-Blue 的格式,类似16进制颜色代码,形如:#AARRGGBB。Android 应用程序一般在 res\values 下建立 colors.xml 文件定义颜色,这个文件也就是多数情况下我们要修改的。

以淘宝阅读为例,淘宝阅读使用了较重的灰色作为白天模式的字体颜色,在墨水屏上不够清晰,严重影响阅读。

修改 res\values\colors.xml 59行

<color name="reader_text_color_white_theme">#ff333333</color>

把333333 修改为 000000。淘宝阅读白天模式的背景颜色就是白色,无需修改。

如何获取需要修改的颜色值?

我的方法比较笨,通过 PC 上安装的 Android 模拟器 BlueStacks 运行原版程序,在 Windows 中使用取色器软件获取。

并非所有程序都使用 colors.xml 来定义颜色,如果在 colors.xml 中实在找不到,不妨试试批量查找反编译的文件夹中所有文件的文本。

PS:有的应用背景不是用颜色定义的,可能是图片,比如当当阅读,背景图片位于 assets\wallpapers\pattern0.png,把图片修改为纯白即可。

五、重建.apk

修改完成后,把第一步得到的文件夹 XXX 拖拽到”重建.apk”按钮前面的输入区,点击”重建.apk”按钮,会在文件夹 XXX 的同级目录下生成未签名的程序 XXX.R.apk ,如果选中了签名和优化还会生成 XXX.RS.apk 和 XXX.RSO.apk 。

在 Android 设备上安装重建后的 apk 安装包即可。

最后,分享一下 自己漂白的淘宝阅读和豆瓣阅读 APK



4 thoughts on “一步步漂白 Android 应用 适配电纸书

发表评论