一、jniLibs目录
在Android Studio中,如果要将so文件打包到apk中,需要将so文件放到默认默认路径src\main\jniLibs。当然so文件目录也可以自定义,例如放在libs目录下,此时需要我们去重新指定jniLibs目录对应的文件夹,指定方法就是在gradle文件里面的android{ ....}
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.lnint.evcg"
minSdkVersion 18
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets{
main{
jniLibs.srcDirs = ['libs']
}
}
}
二、raw目录
raw和anim目录,因为放在raw下的资源会被映射到R文件问,所以raw文件夹和drawable、values、layout文件夹一样在res文件夹下面,anim目录同样也是。
调用直接通过R.raw.xxx调用资源。也可以通过openRawResource得到输入流。
InputStream is = getResources().openRawResource(R.raw.netconfig);
//加载属性文件netconfig.properties
Properties props = new Properties();
props.load(MainApplication.getInstance().getResources().openRawResource(R.raw.netconfig));
三、assets目录
然后是assets文件夹,建立assets文件夹也很简单,选中app右键 New ---> Folder ---> Assets Folder。assets在main下,与java、res目录同级。通过如下方式获取assets资源。
//WebView加载页面
mWebView.loadUrl("file:///android_asset/agree_note.html");
//通过getAssets().open得到输入流
InputStream is = getAssets().open("city2.json");
注意:
1、Google的Android系统处理Assert有个bug,在AssertManager中不能处理单个超过1MB的文件,不然会报异常,raw没这个限制可以放个4MB的Mp3文件没问题。
2、assets 文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像 xml, java 文件被预编译,可以存放一些图片,html,js, css 等文件。