zoukankan      html  css  js  c++  java
  • 在android源码里添加的资源文件



    1、将资源放入 frameworks/base/core/res/res/ 中的相应目录,假设要添加的资源是 drawable 类型,文件名为 zgj(后缀可能为xml或者png等等),则将文件放入 frameworks/base/core/res/res/drawable*/ 下。

    2、仿照已有的同类型系统资源修改 framework/base/core/res/res/values/public.xml,public.xml中有两种类型的资源描述,一种是<java-symbol/>系统私有的资源(不对app公开),另一种是<public />公共资源(可以在app中访问)。

    如果要添加的资源是私有的,则加上 <java-symbol type="drawable" name="zgj" />(不需要id),如果是公共的则先找到最后一个type为 drawable 的 public 项,4.1.2系统中最后一项为<public type="drawable" name="dialog_holo_light_frame" id="0x010800b3" />,然后添加一句 <public type="drawable" name="test" id="0x010800b4" />,即id为最后一个的id+1(为了避免 id 冲突)

    3、在 frameworks/base/core/res/ 中执行mm,编译后生成framework-res.apk 并会更新com.android.internal.R,该 R 所对应的文件为 /out/target/common/R/com/android/internal/R.java,可以在该文件中查看自己的资源是否已经加进去了。(如果mm出错可以尝试先执行一下“touch 资源文件”命令)

    4、在源码目录下执行 make update-api 以更新 frameworks/base/api/current.txt 文件。

    5、完成之后在源码根目录中 make 即可。

    另外,如果要在系统中添加一个新的id,比如为myid,则上述第一步改为在 frameworks/base/core/res/res/values/ids.xml 中增加一列<item type="id" name="myid" />,之后的步骤都一样。


    注:4.2源码中,将系统私有资源分离成了单独的文件symbols.xml,公共资源仍然在public.xml中。



  • 相关阅读:
    BPM已经全面开启
    终于理解集线器、交换机、路由器之间的区别了
    Linux系统桥接模式下配置静态ip地址
    理解并手写Spring MVC框架
    Java 8 Funciton、Consumer、Predicate的作用及用法
    你想了解的分布式文件系统HDFS,看这一篇就够了
    分布式处理框架Hadoop的安装与使用
    CentOS7 中常用命令
    VMware安装Centos7并联网使用
    理解Spring AOP的实现方式与思想
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744674.html
Copyright © 2011-2022 走看看