Intereting Posts
Заполнить ListFragments пользовательским представлением? Как установить тип масштабирования изображения в topCrop ClassNotFoundException при открытии значка общего доступа к facebook в android Вставка текста на новый эмулятор Android Как использовать FTS3 в SQLite Как переименовать проект в «Недавние проекты» в Android Studio 1.0.2? Карты Google скрывают заголовок маркера в Android Как читать данные с помощью сканера штрих-кода Bluetooth Symbol CS3070 на Android-устройство Не удалось найти класс, на который ссылается метод android java.lang.NoClassDefFoundError Запросы с готовыми заявлениями в Android? JPlayer jPlayerAndroidFix не работает? В просмотре автозапуска пользовательского интерфейса Ошибка Получение снимка устройства, причина: ошибка Не удалось подключиться к adb. Проверьте, правильно ли установлен adb «Дооснащение» обнаружило неподдерживаемый OkHttp для ошибки пути к классу в OKHttp 2.0 Ошибка 'IL_LIB_JPEG_ERROR 1506' с использованием DevIL OnDestroy () – установить или не установить переменные экземпляра в null?

Android Expansion apk

Я просматривал документы APK EXPANSION FILES в андроиде, и мне было интересно, можем ли мы иметь все файлы макета в патче apk и бизнес-логике приложения в главном apk?

Я прочитал этот Android-приложение. Перерыв 50MB Barrier тоже.

Я попытался создать это, но проблема, с которой я столкнулся, заключалась в том, что имена наших виджетов должны быть в файле R.java, который генерируется автоматически. Если у меня есть файлы макета в файле патча не в главном файле, тогда я не могу обратиться, используя R. id.xxx.

Поэтому, пожалуйста, скажите мне, возможно ли это или нет?

Если это возможно, то как это можно достичь?

Я также хочу знать, каковы ресурсы или активы, которые можно добавить в patch apk.

Solutions Collecting From Web of "Android Expansion apk"

Говоря прямо, невозможно отделить файлы макета от apk, а затем попытаться получить к нему доступ, используя R.id.whatever

Файлы расширения предназначены для хранения таких активов, как носители, документы и другие подобные статические вещи, которые использует ваше приложение, и содержимое пакета расширения хранится на общем хранилище устройства и не связано с файлом apk. Чтобы получить доступ к активам файла расширения, вы должны закодировать свое приложение, чтобы прочитать их из общего хранилища этого устройства.

Возвращаясь к вопросу сохранения файлов макета в файле расширения. Для этого вам придется написать собственный макет парсера с базовыми функциями, аналогичными LayoutInflator. Вы не можете использовать LayoutInflator для анализа любого файла макета, который не является частью apk или хранится на любом внешнем хранилище. Поэтому идея состоит в том, чтобы хранить файлы макета в файле расширения (который будет отсутствовать в apk, на общем хранилище устройств), проанализировать файл с помощью собственного анализатора и добавить представления к основному макету во время выполнения. Хотя вы не сможете получить доступ к своим представлениям с помощью R.id.whatever, но вы всегда можете использовать визуальное дерево для доступа к представлениям или при разборе представлений хранить ссылочные объекты для доступа к ним для последующего использования.

Надеюсь, это даст вам отправную точку.