知识就是力量,时间就是生命。这篇文章主要讲述android中资源的使用相关的知识,希望能为你提供帮助。
【android中资源的使用】1、打开一个apk的包:
META-INF\
androidManifest.xml
calsses.dex
lib\
resources.arsc
res\
assets\
其中后三个就是android项目中的资源。包括图片、音频、视频、xml文件等。
resources.arsc包括res下的资源的索引、res下的values文件夹下的xml文件(就是那些根节点是resources的xml文件)的编译结果。
res\res下除values的其他所以文件,除了raw下是原文件,其他的都会编译成二进制文件。这个文件夹下的文件夹结构是固定的。
assets\android项目要使用的原始资源文件一般放在这个文件夹下。与前两个的区别是,assets下的资源没有在R文件中生成全局标识。
2、资源就是这些,使用资源我们使用两个东西Resources和AssetManager。
AssetManager:
官方说明
This class presents a lower-level API that allows you to open and read raw files
that have been bundled with the application as a simple stream of bytes.
1)AssetManager 可以通过Context的getAssets()方法获取。
2)AssetManager是一个底层的API,里面有一些native函数。
3)AssetManager的public函数,是提供来访问assets文件夹下的文件的:
list(path)返回path下的文件名字符串数组
open(filename)返回一个InputStream
以上两个函数的参数都是相对于assets文件夹的相对路径。
4)AssetManager还有些default修饰的方法,实现从资源文件获取值。Resources的就是使用AssetManager的这些方法实现资源访问操作的。
Resources:
Class for accessing an application‘s resources.
This sits on top of the asset manager of the application (accessible throughgetAssets()
)
and provides a high-level API for getting typed data from the assets.
1)Resources可以使用Context的getResources()方法获取。
2)Resources主要提供了使用资源id获取资源中定义的值的方法:
http://www.android-doc.com/reference/android/content/res/Resources.html
getColor(id)
getDimension(id)
getLayout(id)
getXml(id)这个方法可以用来解析我们自己定义在res/xml下的xml文件
......
推荐阅读
- Android Studio3.1.0升级问题记录
- 对Hadoop2.7.2文档的学习-Yarn部分Yarn Application
- Android Studio打开出现(Default activity not found)
- applicationContext-XXX.xml和XXX-servlet.xml的区别
- Flask源码解析(理解working outside of application context)
- 旗鱼移动Android开发规范
- Android实现二维码扫描登录网页
- 血淋淋的教训—将Vue项目打包成app的跨域问题
- Android App引导页这些坑你自己犯过吗()