`
byandby
  • 浏览: 1689094 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

已编译和未编译的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文件将安装到设备上。

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

相关推荐

Global site tag (gtag.js) - Google Analytics