android_id生成方法,android 资源ID生成规则

android里面,资源文件和资源ID之间的映射是如何工作的?

问题描述:

做Android应用开发的时候,我们知道可以通过 R.id.xxx 来非常方便的访问应用程序的资源。

但是任何资源最终要编译成二进制格式的,那么在这种机制下,系统是如何工作的?

例如,在layout1.xml里面,我们这样写:

然后AAPT 会生成R.java文件:

public static final int button1=0x7f05000b;

接下来在生成*.apk的时候,像 @+id/button1   这样的ID会用”0x7f05000b”这样的数字代替

所以,我们在调用

findViewById(R.id.button1);

的时候,实际上调用的是像”0x7f05000b”这样的资源ID。那么这中间到底发生了什么呢?例如系统是如何把一个图片和数字ID对应起来的呢?

回答:

在编译的时候,AAPT会扫描你所定义的所有资源(在不同文件中定义的以及单独的资源文件),然后给它们指定不同的资源ID。

资源ID 是一个32bit的数字,格式是PPTTNNNN , PP代表资源所属的包(package) ,TT代表资源的类型(type),NNNN代表这个类型下面的资源的名称。 对于应用程序的资源来说,PP的取值是0×77。

TT 和NNNN 的取值是由AAPT工具随意指定的–基本上每一种新的资源类型的数字都是从上一个数字累加的(从1开始);而每一个新的资源条目也是从数字1开始向上累加的。

所以如果我们的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值