Android源码 在framework中加入一张图片资源,获取不到资源文件

Posted 王睿丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android源码 在framework中加入一张图片资源,获取不到资源文件相关的知识,希望对你有一定的参考价值。

在项目开发时发需要在framework/base/services中引用一张图片,但是系统中并没有定义该图片,因此考虑向资源文件夹framework/base/core/res中加入一张图片资源,步骤如下:

1.将图片资源stat_notify_alarm.png拷贝到framework/base/core/res/res/drawable-hdpi下(因为本项目引用的就是hdpi下的资源)

2.修改framework/base/core/res/res/values/symbols.xml文件,声明该图片资源。symbols.xml里面声明的是系统内部资源,只提供给系统内部使用,外部app是无法访问的,如果是在public.xml中声明,则表示的是公共的资源,外部app也可以访问。

3.编译framework/base/core/res模块,会生成framework-res.apk。此时查看目录/out/target/common/R/com/android/internal/R.java文件,此时会看到该图片资源对应的id生成。

4.在framework/base/services中引用相应的图片资源,引用方式为:com.android.internal.R.drawable.stat_notify_alarm(若是公共的资源,则还可以使用android.R.drawable.xxx的方式)然后编译时生成service.jar包,不过可能会发现仍然找不到该图片资源,此时需要在framework/base下执行mmm .生成framework.jar,若还是找不到资源,则需要进入源码根目录下执行make update-api,更新一下api,然后再编译services,发现编译成功生成了services.jar。

5.将生成的framework-res.apk和services.jar分别push到设备中并重启设备即可看到效果。

6.在上传代码至远程仓库时,除了上传修改的代码意外,还要查看framework/base/api下有无更新,若有current.txt和system-current.txt改变,则需要一并上传。

symbol.xml修改为:


引用方式为:

以上是关于Android源码 在framework中加入一张图片资源,获取不到资源文件的主要内容,如果未能解决你的问题,请参考以下文章

Python 怎么在csv文件中加入一列数据

我想在MFC中加入一图片区,显示在列表框中选择的DWG图片,请各位朋友帮忙!!!

举例说明android源代码调试中加入的log方法

请问用触发器:在负责人中加入一条记录,对应的部门ID里的成员数量加一

canvas中放入一张图片,但是其中的图片可以旋转移动,这是怎么确定的?

跪求如何在unity3d中加入一段文字,并可以控制它的隐藏显现,希望各位大神帮解决一下