欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 往Framework中添加新资源的方法详解

程序员文章站 2023-11-29 22:46:34
有时候我们想在标准的framework中添加自己的新的资源怎么办呢?办法就是我们来尝试下。通过eclipse的联系,我们可以联想到是否就是简单的把字符串放在res的各个文件...
有时候我们想在标准的framework中添加自己的新的资源怎么办呢?
办法就是我们来尝试下。
通过eclipse的联系,我们可以联想到是否就是简单的把字符串放在res的各个文件夹里面。先来试试看,编译,系统立即报错。为什么呢?
它提示你利用make update-api这个命令来更新public.xml文件或者把这个声明称hide类型。这个肯定不是我们想要的。
所以方法有二:
方法1:
正常添加完资源后,执行make update-api函数。系统更新res/values/public.xml文件。
方法2:正常添加完资源后,手动更改/res/values/public.xml文件。打开public.xml文件。发现结构如下:
复制代码 代码如下:

<resources> 
  <!-- we don't want to publish private symbols in android.r as part of the  
       sdk.  instead, put them here. --> 
  <private-symbols package="com.android.internal" /> 
  <!-- androidmanifest.xml attributes. --> 
  <eat-comment /> 
<!-- ===============================================================  
     resources for version 1 of the platform. 
     =============================================================== --> 
  <eat-comment /> 
  <public type="string" name="cancel" id="0x01040000" /> 
  <public type="string" name="copy" id="0x01040001" /> 
  <public type="string" name="copyurl" id="0x01040002" /> 
   <public type="style" name="textappearance.widget.textview.spinneritem" id="0x01030052" /> 
  <public type="style" name="textappearance.windowtitle" id="0x01030053" /> 
  <public type="attr" name="theme" id="0x01010000" /> 
  <public type="attr" name="label" id="0x01010001" /> 
  <public type="attr" name="icon" id="0x01010002" /> 
  <public type="attr" name="name" id="0x01010003" /> 
  <public type="attr" name="managespaceactivity" id="0x01010004" /> 
  <public type="attr" name="allowclearuserdata" id="0x01010005" /> 
  <public type="attr" name="permission" id="0x01010006" /> 
  <public type="attr" name="readpermission" id="0x01010007" /> 
  <public type="attr" name="writepermission" id="0x01010008" /> 
  <public type="attr" name="protectionlevel" id="0x01010009" /> 
<!-- ===============================================================  
     resources added in version 7 of the platform (eclair mr1). 
     =============================================================== --> 
  <eat-comment /> 
  <public type="attr" name="author" id="0x010102b4" /> 
  <public type="attr" name="autostart" id="0x010102b5" /> 
</resources> 

这样,我们可以自己动手添加。
推荐方法1,也是最标准的做法。为啥?
1:避免id重复。
2:麻烦
3:习惯标准化做法。