Android 中raw和assets文件夹的区别
android 中raw和assets文件夹的区别
以下是我通过整理网上与自己的经验所得。
raw 和 assets 的相同点
它们会被原封不动的拷贝到apk中,而不会像其它资源文件那样被编译成二进制的形式。
raw 和 assets 的不同点
1.它们在代码中的不同方式 :
assets:
inputstream assets = getassets().open("xxxx");
raw:
inputstream raw = getresources().openrawresource(r.raw.xxxx)
assets下可以创建目录结构,还能够动态的列出assets中的所有资源(getassets().list(string path);),raw文件目录下不行
raw 文件夹下的的会资源生成一个资源id,assets文件下的资源不会
raw 和 assets 的使用场景
1.由于raw是resources(res)的子目录,android会自动的为这目录中的所有资源文件生成一个id,这个id会被存储在r类当中,作为一个文件的引用。这意味着这个资源文件可以很容易的被android的类和方法访问到,甚至在android xml文件中你也可以@raw/的形式引用到它。在android中,使用id是访问一个文件最快捷的方式。mp3和ogg文件放在这个目录下是比较合适的。
2.assets目录更像一个附录类型的目录,android不会为这个目录中的文件生成id并保存在r类当中,因此它与android中的一些类和方法兼容度更低。同时,由于你需要一个字符串路径来获取这个目录下的文件描述符,访问的速度会更慢。但是把一些文件放在这个目录下会使一些操作更加方便,比方说拷贝一个数据库文件到系统内存中。要注意的是,你无法在android xml文件中引用到assets目录下的文件,只能通过assetmanager来访问这些文件。数据库文件和游戏数据等放在这个目录下是比较合适的
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
推荐阅读
-
Android 中raw和assets文件夹的区别
-
Android MotionEvent中getX()和getRawX()的区别实例详解
-
Android中asset文件夹与raw文件夹的区别深入解析
-
Android中dip、dp、sp、pt和px的区别详解
-
Android 使用mediaplayer播放res/raw文件夹中的音乐的实例
-
Android获取assets文件夹中的数据并写入SD卡示例
-
Python2 中 input() 和 raw_input() 的区别
-
android 中的toast short 和long的区别
-
android中Invalidate和postInvalidate的区别
-
Android中图片setImageResource和setBackgroundResource的区别