Android--资源目录


Android目录解析  


src目录:按照项目Java包的目录结构保存了项目中所有Java源程序;

lib目录:项目中用到的各种第三方Java库文件都位于这个目录下;在这个目录中包含了Android库文件的链接。通常情况下不需要对这个目录进行任何操作,当在开发过程中要确认某个Android类时候存在时,可以在这里进行查询。

assert目录:项目中用到的各种静态资源文件都存放在这个目录下,比如字体和第三方JAR文件等。

doc目录:该目录用于存放和项目相关的各种文档。

res目录:项目中用到的所有动态资源文件都存放在res目录下,这个目录存放与工程项目相关的各种资源文件。其中包含了大部分用于描述软件界面布局的XML文件和所有的图片文件(界面布局中会用到的图标,图片和动画)等。res目录又细分成如下3个子目录

drawable目录用于存放图像资源文件,比如图片和位图等;

layout目录用于存放用户界面xml布局文件;

values目录用于保存项目中用到的各种常量和字符串资源。

AndroidManifest.xml文件:这个文件在创建项目的时候由ADT自动生成。通过扩展名可以知道它是一个XML文件,其中包含了大量关于程序本身的信息,比如程序包含了哪些活动、服务和意图,哪个活动最先启动,程序需要从操作系统获得哪些许可(手机的某些功能是受限使用的,比如定位和拨出电话等),以及其他一些必要信息。该文件本质是一个XML文件,因此可以使用任何一款文本编辑器对其进行修改,不过通过ADT提供的图形编辑器编辑起来更加方便。 这个XML文件时应用程序的清单文件。在这个文件中设定了构建和安装该应用程序需要满足的一些条件。ADT插件为该文件提供了一个特殊的图形化编辑器。

Eclipse还会在项目的根目录创建两个文件夹,这两个文件夹在Package Exploer里是看不到的。其中.classpath文件夹用于保存标准Java类和类库的具体位置,而.project目录用于存放工程项目相关的一些信息。作为开发者来说永远不需要用到这两个目录。Eclipse会将Java源代码(src目录下的Java源代码)的编译结果存放到bin目录下。上面提到的这几个目录都位于项目的跟目录下,开发者不需要对它们做任何操作,因为Eclipse会自动维护它们。


android assets与 assets与res/raw 的相同、不同点

1。获取资源的输入流 

资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以在 Activity 中通过      //也可以放置图片等资源,获取方式相同

Context.getAssets().open(“sample.txt”) 

方法获取输入流。 

注意:如果资源文件是文本文件则需要考虑文件的编码和换行符。建议使用UTF-8和Unix换行符。 

2. WebView 加载assets目录下的html文件 

资源文件 sample.html 位于 $PROJECT_HOME/assets/ 目录下,可以通过以下代码 

WebView.loadUrl(“file:///android_asset/sample.html”); 

加载html文件。 



Android 系统为每个新设计的程序提供了/assets目录,这个目录保存的文件可以打包在程序里。/res 和/assets的不同点是,android不为/assets下的文件生成ID。如果使用/assets下的文件,需要指定文件的路径和文件名。下面这个例子,显示如何访问/assets下的内容。 

 

 

 
*res/raw和assets的相同点:
1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

*res/raw和assets的不同点:
1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹
*读取文件资源:
1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作


  • InputStream is = getResources().openRawResource(R.id.filename);  


2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作


  • AssetManager am = null;  
  • am = getAssets();  
  • InputStream is = am.open("filename");  


补充一下: 在未知目录下有哪些文件,该去和获取这些文件的名称并把文件拷贝到目标目录中呢?(用于内置文件但不知道文件名称,需要筛选出想要的文件然后拷贝到目标目录中,推荐内置在assets文件夹中)
1.res/raw目录:
通过反射的方式得到R.java里面raw内部类里面所有的资源ID的名称,然后通过名称获取资源ID的值来读取我们想要的文件。(这个方法我没试过,有用过的同学麻烦发一段代码看看)。
2.assets目录:
getAssets().list("");来获取assets目录下所有文件夹和文件的名称,再通过这些名称再读取我们想要的文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值