首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android中的资源标识符值是如何确定的?

Android中的资源标识符值是如何确定的?
EN

Stack Overflow用户
提问于 2013-07-23 00:17:53
回答 2查看 154关注 0票数 5

我想知道Android资源识别系统是如何工作的。

因此,(例如)我有一个名称为"example“的XML布局文件。在我的java代码中,这是通过调用返回整数的R.layout.example来标识的。

我想知道的是这个整数是如何确定的,然后如何使用整数值来标识和查找相应的资源。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-23 00:36:52

这些整数存储在项目gen文件夹中名为R.java的生成文件中。下面是我最近正在进行的一项工作的示例:

代码语言:javascript
运行
复制
public final class R {
public static final class attr {
}
public static final class drawable {
    public static final int cot_logo=0x7f020000;
    public static final int cot_logo_small=0x7f020001;
    public static final int ic_launcher=0x7f020002;
    public static final int icon=0x7f020003;
}
public static final class id {
    public static final int password=0x7f060001;
    public static final int username=0x7f060000;
}
public static final class layout {
    public static final int login_dlg=0x7f030000;
    public static final int main=0x7f030001;
}
public static final class string {
    public static final int app_name=0x7f050000;
}
public static final class xml {
    public static final int config=0x7f040000;
}

}

正如您所看到的,它们是如何生成的有一种模式。每一类资源都有自己的工作领域。

另一件要注意的事情是,它们是按照它们在XML /文件夹/等中遇到的顺序生成的。因此,例如,如果您在XML中移动一些视图,您将需要清理项目以重新生成完整的R.java文件。否则,整数映射将是不正确的,您将(最有可能)得到一个ClassCastException,或者至少是意外的行为。

票数 3
EN

Stack Overflow用户

发布于 2013-07-23 02:50:06

要理解这些数字是如何生成的,您需要了解aapt是如何工作的,因为该工具负责生成R.java。您可以使用git克隆Android存储库并检查aapt源代码,但这相当复杂(至少对我来说是这样)。

如果你想查看代码,首先克隆源代码:

代码语言:javascript
运行
复制
git clone "https://android.googlesource.com/platform/sdk"

然后导航到src/com/android/ide/eclipse/adt/internal/build,这是aapt相关源代码所在的位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17792544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档