相关疑难解决方法(0)

android资源和资源ID之间的映射如何工作?

Android的神奇之处在于只通过R.id.XXX找到合适的资源.

AFAIK,资源被编译成二进制格式,那么这个映射逻辑如何在底层工作呢?

也许它的工作原理如下:

例如,在layout1.xml中,我们得到:

<Button android:id="@+id/button1" >
Run Code Online (Sandbox Code Playgroud)

和AAPT将在R.java中生成:

public static final int button1=0x7f05000b;
Run Code Online (Sandbox Code Playgroud)

当生成*.apk时,@ + id/button1将替换为"0x7f05000b".

因此,当我们打电话时:

findViewById(R.id.button1);
Run Code Online (Sandbox Code Playgroud)

我们基本上仍然根据ID进行搜索,尽管ID是一个像0x7f05000b的数字.

谢谢!

我真正想知道的是,如何将资源id整数解析为资源内容?换句话说,Android运行时如何以资源ID作为唯一线索来定位资源内容?

例如,如何找到具有资源ID的可绘制图片?或者如何找到具有资源ID的字符串值?

android android-resources

71
推荐指数
3
解决办法
2万
查看次数

Android:了解R.java中的resource-id

有没有人知道关于resource-id和R.java的内部结构,或者至少可以引用我来阅读更多关于它的内容?

resource-id的含义是什么?他们是apk中的某种地址吗?他们在编译的apk中保存在哪里?

我尝试了一些关于它的信息,但我得到的大部分内容都是导入它的问题以及它的作用和一般情况.

为什么我问这些问题:我最近尝试动态加载一个使用资源的APK 这里,看着这个我相信它甚至是不可能的.我想了解原因.

java android r.java-file resource-id

5
推荐指数
2
解决办法
911
查看次数