可能标题的含义不是很清楚,举一个例子,比如我所做的android的人脸识别,其第一步是进行人脸检测,其人脸分类器是一个.xml文件,在电脑端通过haar特征级联分类得出,我们可以在opencv下直接加载并用来检测图片中的人脸,在android开发中我们需要使用到这个.xml文件的时候该如何操作呢?这就是我要写的内容。
先介绍一下 ,在android中为了加速对资源文件的读取,在编译的时候对资源文件里的xml文件进行了处理,变成了不需要我们关心的二进制数据,比如res文件夹下的界面文件等,android将这些数据放在一个你不需要关心的位置,你所需要做的就是通过资源ID获取这个文件即可。为什么要这么做呢?因为xml文件的解析是需要一定的运算量的,于是google设计成了在编译的时候解析xml文件的这样一种模式,然后输出一个二进制数据,从而实现了效率的提升。
但是需要注意的是,res/raw文件夹下目录下的xml不会被编译成二进制的形式,可能很多小白会发现自己res文件夹下没有raw目录,这个自行百度,很简单,创一个就好。
还有就是res/assets目录下的文件同样也不会被编译成二进制的形式,除此之外,assets目录下的文件不会生成id,而是通过文件名的方式进行访问。
介绍完了如上内容,回归正题,如果开发中需要使用到已有的文件,如xxx.xml文件,可以先将其放入res/raw文件夹中,然后在初始化的时候将其写入APP内部存储空间,即可使用。步骤及相关代码如下:
1、将所需文件放入raw文件夹中,如图: