Intereting Posts
Как отобразить тост внутри обработчика / потока? Dialog – указанный ребенок уже имеет родителя. Вы должны сначала вызвать removeView () родителя ребенка Android: хорошее (стандартное) меню настроек Недопустимый вектор векторных меток – appcompat-v7: 24.1.1 Как информация о местоположении не передается моим фрагментам? Принудительное закрытие приложения, если нет доступного интернет-соединения Android – Получить UUID Bluetooth для этого устройства Закрыть Навигационный ящик без анимации Ошибки Proguard при создании подписанного APK Изображение размыто на другом устройстве Proguard Printmapping не работает в Android Studio 2.0.0 (и 2.1.0) Андроид приложений аварийных ситуаций без каких-либо исключений, при попытке войти с помощью google plus Android: java.lang.OutOfMemoryError: не удалось выделить выделение байтов 23970828 с 2097152 бесплатными байтами и 2 МБ до тех пор, пока OOM Новое для Android – рисование представления во время выполнения Обновления смарт-приложений в Google Play Store: как это работает?

Android Expansion apk

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

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

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

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

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

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

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

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

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

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