android xml的作用,Android上res / values / public.xml文件的用途是什么?

res / values / public.xml文件用于为Android资源分配固定的资源ID。

在res / values / strings.xml中考虑以下字符串资源集:

String 1

String 3

编译应用程序时,Android资产打包工具(aapt)可能会为这些资源分配以下资源ID:

public final class R {

// ...

public static final class string {

public static final int string1=0x7f040000;

public static final int string3=0x7f040001;

}

}

现在,将字符串资源集更改为

String 1

String 2

String 3

并且您会注意到@android:style/Theme的资源ID已更改:

public final class R {

// ...

public static final class string {

public static final int string1=0x7f040000;

public static final int string2=0x7f040001;

public static final int string3=0x7f040002; // New ID! Was 0x7f040001

}

}

为了防止这种情况,可以使用res / values / public.xml:

这将导致如下分配资源ID:

public final class R {

// ...

public static final class string {

public static final int string1=0x7f040000;

public static final int string2=0x7f040002;

public static final int string3=0x7f040001; // Resource ID from public.xml

}

}

应用程序很少使用res / values / public.xml,因为分配给资源的资源ID无关紧要。 当它们更改时,无论如何都将重建整个应用程序,因此将更新Java代码中通过资源ID对资源的任何引用。

res / values / public.xml的最重要用户是Android平台本身。 针对旧版本Android构建的应用程序假定某些资源具有某个资源ID。 例如,Android资源@android:style/Theme必须始终具有资源ID 0x01030005,平台才能向后兼容针对旧版本平台构建的应用。

如果您对有关如何分配资源ID的更多详细信息感到好奇,请参考以下答案:android资源和资源ID之间的映射如何工作?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值