已编译和未编译的Android资源

Android主要通过两种文件类型来支持资源:XML文件和原始文件(包括图像、音频和视频)。甚至在XML文件内部,有时也可以看到资源被定义为XML文件内部的值(例如字符串),有时XML文件整体就是一个资源(比如布局资源文件)。

XML文件集中的另一个特征是,可以找到两种文件类型:一种编译为二进制文件,另一种按原样复制到设备。到目前为止所提供的示例(字符串资源XML 文件 和 布局资源XML 文件)都编译为二进制文件,然后再包含到可安装的包中。这些XML文件具有预定义的格式,其中XML 节点被转换为ID。

也可以选择这样一些XML 文件,它们具有自由的格式结构,不会被解释,也不会生成资源ID。然而,你希望将它们编译为二进制格式,还希望它们容易本地化。为此,可以将这些XML文件放到/res/xml/子目录中,以将它们编译为二进制格式。但是如果将文件(包括XML文件)放在/res/raw/目录下,它们将不会编译为二进制格式。必须使用明确基于流式传输来读取这些文件。音频和视频文件属于这一类别。

下面是/res文件夹中一些重要的子目录和它们保存的资源类型。
anim:已编译的动画文件。
drawable:位图。
layout:UI/视图定义
values:数组、颜色、尺寸、字符串和样式。
xml:已编译的任意XML文件。
raw:未编译的原始文件。

AAPT中的资源编译器会编译除raw资源以外的所有资源,并将它们全部放到最终的.apk文件中。此文件包含Android应用程序的代码和资源,相当于Java中的 .jar文件("apk"代表“Android Package”)。 .apk文件将安装到设备上。

[color=green] 尽管XML资源解析程序支持hello-string 这样的资源名称,但在R.java中将会看到一个编译时错误。通过将资源重命名为hello_string (将连字符替换为下划线),可以解决此问题。[/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值