Android 往 Framework中添加新的资源


有时候我们想在标准的Framework中添加自己的新的资源怎么办呢?

办法就是我们来尝试下。

通过Eclipse的联系,我们可以联想到是否就是简单的把字符串放在res的各个文件夹里面。先来试试看,编译,系统立即报错。为什么呢?

它提示你利用make update-api这个命令来更新public.xml文件或者把这个声明称hide类型。这个肯定不是我们想要的。

所以方法有二:

方法1:正常添加完资源后,执行make update-api函数。系统更新res/values/public.xml文件。

方法2:正常添加完资源后,手动更改/res/values/public.xml文件。打开public.xml文件。发现结构如下:

 

  1. <resources>  
  2.   <!-- We don't want to publish private symbols in Android.R as part of the   
  3.        SDK.  Instead, put them here. -->  
  4.   <private-symbols package="com.android.internal" />  
  5.   <!-- AndroidManifest.xml attributes. -->  
  6.   <eat-comment />  
  7. <!-- ===============================================================   
  8.      Resources for version 1 of the platform.  
  9.      =============================================================== -->  
  10.   <eat-comment />  
  11.   <public type="string" name="cancel" id="0x01040000" />  
  12.   <public type="string" name="copy" id="0x01040001" />  
  13.   <public type="string" name="copyUrl" id="0x01040002" />  
  14.    <public type="style" name="TextAppearance.Widget.TextView.SpinnerItem" id="0x01030052" />  
  15.   <public type="style" name="TextAppearance.WindowTitle" id="0x01030053" />  
  16.   <public type="attr" name="theme" id="0x01010000" />  
  17.   <public type="attr" name="label" id="0x01010001" />  
  18.   <public type="attr" name="icon" id="0x01010002" />  
  19.   <public type="attr" name="name" id="0x01010003" />  
  20.   <public type="attr" name="manageSpaceActivity" id="0x01010004" />  
  21.   <public type="attr" name="allowClearUserData" id="0x01010005" />  
  22.   <public type="attr" name="permission" id="0x01010006" />  
  23.   <public type="attr" name="readPermission" id="0x01010007" />  
  24.   <public type="attr" name="writePermission" id="0x01010008" />  
  25.   <public type="attr" name="protectionLevel" id="0x01010009" />  
  26. <!-- ===============================================================   
  27.      Resources added in version 7 of the platform (Eclair MR1).  
  28.      =============================================================== -->  
  29.   <eat-comment />  
  30.   <public type="attr" name="author" id="0x010102b4" />  
  31.   <public type="attr" name="autoStart" id="0x010102b5" />  
  32.      
  33. </resources>  

这样,我们可以自己动手添加。

推荐方法1,也是最标准的做法。为啥?

1:避免id重复。

2:麻烦

3:习惯标准化做法。

相关内容