一个实际的问题,引起了如下分析
问题描述:一个apk G,在使用的时候有个由span设置的颜色显示不对,显示为白色
这个apk没有源码,反编译可以看到代码,看不到资源,也看不到程序中使用的是哪个颜色值
处理方案
可以添加log,打印使用的color,color值即为实际的颜色值
比如,在Color.class中
// Field descriptor #8 I
public static final int RED = -65536;
// Field descriptor #8 I
public static final int GREEN = -16711936;
使用计算器进行8位的十六进制转换
-65536 = 0Xffff0000 ARGB
-16711936 = 0Xff00ff00
在代码中全局搜索ffffff,把搜到的进行替换,如果有个方法保证每个ffffff都替换成不同的颜色,便于区分定位
修改,编译,查看log
根据实际打印的颜色就可以定位到实际使用的color资源