A007-assets资源

本节课开始讲Android中所用到的一些资源,首先来讲assets资源,它是Android的其中一种资源,跟raw和drawable资源有点不同,我们获取这个目录下的文件需要指定文件的路径,它里面的文件不会映射到R.java文件中,而res目录下的资源文件时会自动映射到R.java中,我们打包成apk的时候,assets目录下的文件不会被编译成二进制文件,而是直接打包到apk文件中。我们可以打包项目成apk,然后更改它的后缀名为.zip,再进行解压,可以看到assets目录的文件。

上面是对assset资源的一些介绍,我们实际开发中如何获取assets目录下的资源呢:

  1. 获取文件输入流 Context.getAssets().open(“filename”)
  2. assets资源的绝对路径 file:///android_asset/文件名

比如在assets目录下有个test.txt文件,可以通过下面这种方式获取:

 assetsText.setText(getFromAssets("test.txt"));
 private String getFromAssets(String filename) {
        String result = "";        try {
            InputStream in = getResources().getAssets().open(filename);            int length = in.available();            byte[] buffer = new byte[length];

            in.read(buffer);

            result = EncodingUtils.getString(buffer, "UTF-8");

        } catch (IOException e) {
            e.printStackTrace();
        }        return result;
    }

思考:这里需要大家去区分Android的一些资源,像assets这种资源是不会被编译成字节码,然而像raw、drawable资源是Android指定的资源,可以通过R.xxx.filename来进行引用,如果在res自定义一个目录是不可以通过这种方式获取资源,引用的话会R.xxx.xxx cannot be resolved” 的错误。

这里补充一点就是,我们使用AS开发不会默认给我们创建assets目录,需要我们按一下方法去创建目录:

然后我们创建的项目有个.iml的配置文件,会有相应的配置,大家下去可以研究一下

本文分享自微信公众号 - 小巫技术博客(wwjblog),作者:devilwwj

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-08-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android混淆代码错误堆栈还原

    用户1130025
  • A011-Raw资源

    用户1130025
  • Bugly热更新SDK你需要知道的一些事

    用户1130025
  • Linux学习1-Linux的基本命令(1)

    cat /etc/shells //查看当前系统有那些shell cat $SHELL

    小二三不乌
  • Linux基础(目录是什么鬼)

    在linux下,一个目录下放了很多文件,还有其他的子目录,但是目录的大小却总是只有4096字节。这是怎么回事呢?来听听北理工林思佳同学的分享。

    用户2617681
  • 简直不要太硬了!一文带你彻底理解文件系统

    所有的应用程序都需要存储和检索信息。进程运行时,它能够在自己的存储空间内存储一定量的信息。然而,存储容量受虚拟地址空间大小的限制。对于一些应用程序来说,存储空间...

    cxuan
  • 金融策略数据分析师:我是如何从萌新进化为职场老司机的

    从我去年入职金融策略数据分析师到如今,已有半年时间了。通过这半年的工作锻炼,我已经从刚入职的啥也不懂的萌新,进化成了如今工作清单一大堆的职场老司机,这个转变的过...

    CDA数据分析师
  • Linux笔记2

    章鱼喵
  • 只需在Vim或Neovim编辑器中打开文件,您的Linux就会被黑客攻击

    如果您最近没有更新Linux操作系统,尤其是命令行文本编辑器实用程序,甚至不要尝试使用Vim或Neovim查看文件的内容。 安全研究员Armin Razmjo...

    天钧
  • 基于深度学习的图像语义分割算法综述

    本文翻译自An overview of semantic image segmentation,原作者保留版权。

    机器学习算法工程师

扫码关注云+社区

领取腾讯云代金券