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

Этот каталог, в отличие от подкаталога res, позволяет задавать произвольную глубину подкаталогов и произвольные имена файлов и подкаталогов.

По умолчанию проект в студии не содержит данную папку. Чтобы её создать, выберите меню File | New | Folder | Assets Folder.

Чтение файлов

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

Сначала на Kotlin.

button.setOnClickListener < val sampleText: String = applicationContext.assets .open(«sample.txt») .bufferedReader().use < it.readText() >println(sampleText) >
String getStringFromAssetFile(Activity activity)
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; >>

Вы также можете загрузить изображение в Bitmap, используя BitmapFactory.decodeStream(), вместо Drawable.

Функция-расширение для Kotlin, которая вернёт Bitmap.

fun Context.assetsBitmap(path: String): Bitmap? < val inputStream: InputStream var bitmap: Bitmap? = null try < inputStream = assets.open(path) bitmap = BitmapFactory.decodeStream(inputStream) >catch (e: IOException) < // Handle exception here >return bitmap >

Используем собственные шрифты

Напишем практический пример создания приложения, в котором будут использоваться собственные шрифты, не входящие в стандартную библиотеку шрифтов Android. Для этого мы упакуем нужные шрифты вместе с приложением. Поместим в каталог assets/fonts файлы шрифтов (можно скачать бесплатные шрифты с сайтов 1001 Free Fonts или Urban Fonts ).

Читайте также:  Как в Майнкрафте сделать автоматически открывающиеся двери

В файл разметки добавим пару текстовых полей с заготовленным текстом для вывода этого текста с нашим шрифтом.

В классе активности загрузим объект EditText из ресурсов, а затем создадим объект Typeface, используя вызов статического метода Typeface.createFromAsset(). Метод createFromAsset() принимает два параметра:

  • объект AssetManager, который можно получить вызовом метода getAssets()
  • путь к файлу актива.

Например, загрузить шрифт для текстового поля EditText можно следующим способом:

Запустив проект, мы увидим в текстовых полях надписи Happy New Year! и Meow!, выводимые нашими собственными шрифтами.

Текст при помощи собственных шрифтов

Пример для фрагмента.

Загрузка локальных файлов из активов в WebView

Если нужно загрузить локальные страницы и изображения из активов в WebView, то можно использовать префикс file://android_asset. Подробнее смотрите в статье про WebView.

myBrowser = (WebView)findViewById(R.id.mybrowser); myBrowser.loadUrl(«file:///android_asset/mypage.html»);

Получаем список файлов в папке assets

Можно получить список файлов, которые находятся в папке assets. Для быстрой проверки кода я вручную скопировал в папку два файла:

AssetManager myAssetManager = getApplicationContext().getAssets(); try < String[] Files = myAssetManager.list(«»); // массив имён файлов Toast.makeText(getApplicationContext(), Files[0] + «, » + Files[1], Toast.LENGTH_LONG).show(); >catch (IOException e)

Кроме ваших файлов, также возвращаются странные папки /images, /sounds, /webkit. Учитывайте это в своих проектах. Так как в папке можно создавать собственные подпапки, то можно воспользоваться вспомогательным методом:

void displayFiles(AssetManager mgr, String path) < try < String list[] = mgr.list(path); if (list != null) for (int i = 0; i < list.length; ++i) < Log.v(«Assets:», path + «/» + list[i]); displayFiles(mgr, path + «/» + list[i]); >> catch (IOException e) < Log.v(«List error:», «can’t list» + path); >> // вызываем метод public void onClick(View view) < final AssetManager mgr = getAssets(); displayFiles(mgr, «»); // содержимое папки /assets, включая странные папки displayFiles(mgr, «cats»); // содержимое подпапки /assets/cats >

Ограничение на размер файлов

По сети гуляет информация, что существует ограничение в 1 Мб на размер файлов в папке assets. При превышении размера у вас может появиться ошибка:

Читайте также:  Кто такие дол и зол Майнкрафт

Data exceeds UNCOMPRESS_DATA_MAX

Я не сталкивался, поэтому рецепт решения проблемы не предлагаю.

Источник: developer.alexanderklimov.ru

Структура APK файла

apk

Просмотреть, что находится внутри APK очень легко, для этого нам понадобится программа Winrar. Выбираем наше приложения APK и нажимаем открыть и при вопросе чем — выбираем Winrar.

Вот что лежит внутри APK при открытии его как архива.

  • Файл AndroidManifest.xml – чтобы сразу стало ясно — это «Паспорт», внутри него описывается что находится в приложение:

1. Требования к приложению.
2. Структура приложения.
3. Версия приложения.

  • Папка META-INF – содержит MANIFEST.MF(открывается текстовым редактором «блокнот»), открыв его можно увидеть контрольные суммы SHA-1 и пути к данным, версию стандарта Manifest-Version, файлы сертификата RSA или DSA, файл SF содержит пути к ресурсам и их контрольные суммы. META-INF – это файлы метаданных — данные о данных.
  • Папка res — В этой папке все ресурсы программы «Начинка», которые разнесены по разным поддиректориям. Например папки ~ drawable~ находятся графические элементы приложения (иконки, статусы и другие картинки), layout – XML-файлы о размещении элементов графического интерфейса (GUI).
  • classes.dex — программный код, который выполняется в Dalvik VM. Для тех кто не в курсе Android это смесь Linux ядра с виртуальной машиной Java.
  • resources.arsc — скомпилированный XML-файл, содержит данные о ресурсах, которые использует программа.
  • Папка assets – может и не быть в apk приложение, также содержат ресурсы.
  • Папка lib – может и не быть в apk приложение. Приложение написано с использованием NDK, а в папке располагаются нативные библиотеки, к примеру можно писать приложения на c++.
  • Папка com – может и не быть в apk приложение.
  • Папка org – может и не быть в apk приложение.
  • Папка udk – может и не быть в apk приложение.

Статьи по теме APK:

  • Что такое APK?
  • Необходимые инструменты для работы с APK
  • Как устанавливать приложения для Android с расширением apk
  • Как удалить приложения (программы, игры) на android?
  • Как скачивать и покупать приложения с Google Play
  • Что такое root в Android?
  • Структура APK файла
  • Разборка (декомпиляция) APK файла с помощью Apktool
  • Локализация файла APK
  • Упаковка APK приложения и подпись (компиляция и подпись)
  • Выбор места установки приложения APK
  • Редактирование и замена иконок в APK
  • Узнаем какие права у приложения APK
  • Как извлечь установочный файл с приложением (.apk) из системы
  • Как удалить рекламу из приложений APK
  • Как скачать приложение APK на компьютер с Google Play
  • Какие встроенные (системные) приложения Android можно удалить
  • Деодексирование системных приложений в Андроид
  • Как редактировать системные apk
  • Как получить исходный код приложения с расширением Apk
  • Одексирование Android приложений
Читайте также:  Как получить мицелий в Майнкрафте ex nihilo

Источник: upgrade-android.ru

Зачем папка assets в laravel?

Вопрос весьма спорный и примитивный, но на то он и 99-ый в моей коллекции.

Настроен vshost на бла-бла-бла/public
Соответственно папка assets находится вне корня.

В чем ее суть? там и sass папочка лежит и css. Таким образом с подключением css возникает головняк.

Комментировать
Решения вопроса 2

idelg

Разработчик

В папке /assets, как правило лежат нескомпилированные стили и скрипты. Coffescript, sass, less. вот это все. И по идее нужно настроить Elixir (надстройка над гульпом), чтобы он отправлял в /public уже сконкатенированные и минифицированные файлы.

Такие дела, надеюсь, прояснил.

Ответ написан более трёх лет назад
Комментировать
Нравится 6 Комментировать

Поскольку в современной разработке большинство проектов делаются с использованием препроцессоров и сборщиков, в папке assets лежат исходники, а при помощи elixir (или любого другого инструмента) они собираются в public.

Ответ написан более трёх лет назад
Комментировать
Нравится 4 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос

Войдите, чтобы написать ответ

laravel

  • Laravel

Laravel Relationships, не использовать left join, как заменить?

  • 1 подписчик
  • 20 часов назад
  • 26 просмотров

Источник: qna.habr.com