总是忘记怎么建立这些,所以特此记录一下。
首先说libs ,libs目录是新建工程本身就存在的。位于app下面,与build、src同级。
所以如果此目录没有的话,可以直接app那里右键 new--->directory 在弹出框输入libs 确定建立文件夹就可以了
那么相应的,so文件也是放在这里了,直接copy或者建立armeabi、armeabi-v7a、arm64-v8a等文件夹,再把相应的so拷贝进去就可以了。
但是还必须要在build.gradle文件的android标签下加入如下代码: 表示so放在libs目录下。
sourceSets{
main{
jniLibs.srcDirs = ['libs']
}
}
完整代码如下图:
为什么要加resourceSets{}呢?
因为androidstudio默认存放so的目录不是libs,所以需要特地指定一下(一般对于eclipse转过来的项目)。
androidstudio默认存放so的目录是src/main文件下的jniLibs目录,没有的话新建即可。
再说 raw 和 assets 目录,因为放在raw下的资源会被映射到R文件问,所以raw文件夹和drawable、values、layout文件夹一样在res文件夹下面(anim文件夹同样也是)。所以直接选中res文件夹右键 new ---> directory 建立raw文件夹(上面已有libs截图,所以这里不再截图,下同),
调用直接通过R.raw.xxx调用资源。也可以通过openRawResource得到输入流。
InputStream is = getResources().openRawResource(R.raw.fileNameID) ;
然后是assets文件夹,建立assets文件夹也很简单。选中app右键 New ---> Folder ---> Assets Folder
assets在main下,与java、res目录同级。
通过如下方式获取assets资源。
AssetManager am = null;
am = getAssets();
InputStream is = am.open("filename");
注意1:Google的Android系统处理Assert有个bug,在AssertManager中不能处理单个超过1MB的文件,不然会报异常,raw没这个限制可以放个4MB的Mp3文件没问题。
注意2:assets 文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像 xml, java 文件被预编译,可以存放一些图片,html,js, css 等文件。
然后是selector 、shape这样的目录。
选中app、res文件夹右键、new --->Android resource file
会弹出这样的界面,Resource type 修改为 Drawable ,然后输入文件名就可以了。
shape.xml文件同上,只是需要将selector 改成 shape,此处修改时会出现提示。
animation-list 有点不一样,eclipse是放在anim下的,但是androidstudio在drawbale目录下
建立也是千篇一律 选中app、res文件夹右键、new --->Android resource file ,Resource type 修改为 Drawable ,Root elmement 改为animation-list。取个名字确定就完了。