assets资源
Android的资源文件一般放在res/文件夹下,这些会被编译,我们可以直接通过R.java去引用这些资源文件。
res/drawable 图片
res/values/string 字符串
res/values/colors 颜色
res/values/dimens 尺寸
res/values/arrays 数组
res/values/attrs 自定义View属性declare-styleable
res/values/styles 自定义样式style
res/raw 音频
但是一些复杂,较大的数据就不能被Android系统识别或者html页面等不能放在上面的那些res/目录下。而要存放在另一个资源文件夹assets/中,一般工程不会为我们创建这个目录,如果需要存放一些资源文件,需要手动创建,将资源放到这个目录下。

1、AssetManager
这个目录下的文件既然不能被编译,就无法通过R.的形式访问,需要另一个工具AssetManager资产管理器
AssetManager assetManager = context.getAssets();常用方法:
String[] list(String path) 列出指定目录下的文件与文件夹列表数组
InputStream open(String fileName) 打开指定assets文件夹下的文件
assetManager.close(); Close this asset manager
2、读取字符串
public static String getStringFromAsset(Context context, String fileName) {
String str = "";
AssetManager assetManager = context.getAssets();
try {
InputStream inputStream = assetManager.open(fileName);
int length = inputStream.available();
byte[] buffer = new byte[length];
inputStream.read(buffer);
str = new String(buffer, StandardCharsets.UTF_8);
} catch (IOException e) {
Log.e(TAG, e.toString());
}
Log.d(TAG, str);
return str;
}3、读图片
public static Bitmap getImageFromAsset(Context context, String fileName) {
Bitmap bitmap = null;
try {
InputStream in = context.getAssets().open(fileName);
bitmap = BitmapFactory.decodeStream(in);
} catch (IOException e) {
Log.e(TAG, e.toString());
}
return bitmap;
}更多资料:

