当需要改动android framework的UI时需要改动资源文件,但是这个时候就和一般的apk不一样了,需要另做处理!
一:目录
资源文件目录 /frameworks/base/core/res
编译最终生成: /out/target/$product//system/framework/framework-res.apk
会在/out/target/common/R/com/android/internal/R.java中更新资源,供其它地方调用.
二:编译
当需要添加一个资源(layout,drawable,values)添加进res对应地方,先 touch * 更新时间.
有两种方法更新资源文件:
1:可以使用 make update-api 更新
2:/frameworks/base/core/res/res/values/public.xml中按照规则添加,注意id不要重复.
android 4.2相比4.1又做了一些改动,将所有私有资源的声明放到了framework/base/core/res/res/values/symbols.xml中。
如果对系统新增了一些资源进行源码编译时会遇到 com.android.internal.R.XX can not find symbol的问题。
具体解决方法网上已经有人提出:
make framework 2>&1 | sed -n -f MakeJavaSymbols.sed | sort -u
使用这个命令将会列出所有新增的私有资源,将它们拷贝到symbols.xml中即可。
资源处理好了之后就开始编译,首先到res目录下面执行mm,得到framework-res.apk
在framwork中哪个地方使用了新添加的资源,就需要到那个目录下执行mm 得到 *.jar
然后到/framework/base 下执行mm 重新生成最新的 framework.jar