Материал предоставлен https://it.rfei.ru

Assets

В Android имеется каталог, в котором могут храниться файлы, предназначенные для включения в пакет - assets. Этот каталог находится на том же уровне, что и res. Для файлов, располагающихся в assets, в R.java не генерируются идентификаторы ресурсов. Для их считывания необходимо указать путь к файлу. Путь к файлу является относительным и начинается с /assets. Этот каталог, в отличие от подкаталога res, позволяет задавать произвольную глубину подкаталогов и произвольные имена файлов и подкаталогов.

Для доступа к файлам Assets используется класс AssetManager. Пример для чтения текстового файла:

String getStringFromAssetFile(Activity activity)
{
    AssetManager am = activity.getAssets();
	InputStream is = am.open("test.txt");
	String s = convertStreamToString(is);
	is.close();
	return s;
}

Другой способ:

String text = filename;
byte[] buffer = null;
InputStream is;
try {
    is = getAssets().open(text);
    int size = is.available();
    buffer = new byte[size];
    is.read(buffer);
    is.close();
} catch (IOException e) {
    e.printStackTrace();
}

String str_data = new String(buffer);
return str_data;

Для доступа к графическому файлу можно использовать следующий код:

public void loadImageFromAsset() {
	try {
    	// получаем входной поток
    	InputStream ims = getAssets().open("cat.jpg");
    	// загружаем как Drawable
    	Drawable d = Drawable.createFromStream(ims, null);
    	// выводим картинку в ImageView
    	mImage.setImageDrawable(d);
	}
	catch(IOException ex) {
		return;
	}
}
РесурсыLayout