【问题标题】:Inheriting resources from android libraries从android库继承资源
【发布时间】:2011-04-18 10:39:54
【问题描述】:

我有一个关于从 android 库继承资源的问题。

假设您有一个 android 库项目,并且在该库中您将一些资源(暂时假设为字符串)放在包名 com.libexample 下

现在在一个名为 com.example 的包名下的 android 项目中,我引用了我之前创建的库。

如果我想使用库的字符串之一,我可以使用它来获取它

getString(com.libexample.R.string.test_string);

我的问题是,我的主项目中的字符串资源是否可以分配与我的库中的字符串相同的整数 ID?因为如果是,那么上面的代码语句实际上将等于:

getString(R.string.new_string);

假设 new_string 资源被分配了与 test_string 资源相同的 ID。

【问题讨论】:

  • 我假设 id 可以匹配,除非以下两种可能性之一成立: 1. Android 编译器足够智能,可以搜索每个库以查找每个名为 R 的类并检查每个都用于已经使用的 id(我认为不太可能)。 2. R 中的 id 不是完全随机的,并且包含来自其编译单元的足够信息,因此 com.libexample.R 中的 id 可以有效地保证不会与 com.someotherthing.R 中的 id 重合(更有可能)。

标签: android resources


【解决方案1】:

显然编译器会自动将资源添加到同一个生成的 R.java 文件下,从而防止任何冲突。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多