android系统资源添加

android添加系统资源
源文件路径: /frameworks/base/core/res/res
编译后路径: /out/target/product/项目名称/system/framework/framework-res.apk
R.Java文件: /out/target/common/R/com/android/internal/R.Java

资源的添加:
如在framework-res中添加一个共有字符串,需修改以下文件:
    frameworks/base/core/res/res/values/public.xml
    frameworks/base/core/res/res/values/strings.xml

如在framework-res中添加一个私有字符串,需修改以下文件:
    frameworks/base/core/res/res/values/symbols.xml
    frameworks/base/core/res/res/values/strings.xml 

添加完成后进行 mmm framework/base/core/res 编译,然后检查是否添加到R.java文件中.
添加成功后 在代码中使用 com.android.internal.R.string.xxx 来引用.

在对系统新增了一些资源进行源码编译时会遇到 com.android.internal.R.XX can not find 的问题,可使用(make update-api)来更新api,
./frameworks/base/api/current.txt 会被重新生成.

public.xml 与 symbols.xml

public.xml中声明的是公共资源,所有应用程序都可以调用,symbols.xml中声明的是非公共资源,仅供系统内部使用,不对app开放.
public.xml 中字段格式为 <public type="attr" name="networkSecurityConfig" id="0x01010527" />
symbols.xml中字段格式为<java-symbol type="string" name="use_times"/>
symbols.xml是在4.2后,将系统私有的资源分离成了单独的文件.
若将私有的声明添加在了public.xml文件中,则编译时会报错,可采用 make framework 2>&1 | sed -n -f MakeJavaSymbols.sed | sort -u ,
此命令将会列出所有新增的私有资源,并将它们拷贝到symbols.xml中.

另外:若果添加其他资源,如layout,drawable 需要在对应的路径下的文件添加字段即可.

资源编译:
首先到res目录下面执行mm,得到framework-res.apk
然后在framwork中使用了新添加资源的目录下执行mm, 生成 *.jar
最后到/framework/base 下执行mm 重新生成最新的 framework.jar




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值