Какова цель файлов .properties в пакетах APK? - PullRequest
1 голос
/ 12 ноября 2019

При анализе APK я обнаружил в корне архива множество .properties файлов с указанием номеров версий сервисов Google Play, Firebase и HTTP-клиента Google, например:

version=19.2.0
client=firebase-database
firebase-database_client=19.2.0

Теоретически их можно исключить из пакета:

android {
    packagingOptions {
        exclude "firebase-*.properties"
        exclude "play-services-*.properties"
        exclude "google-http-client.version"
    }
}

Однако, этот выпуск предполагает, что это будет "предполагаемое поведение". Так безопасно ли исключать эти, казалось бы, бесполезные файлы из пакета - или они требуются Google Play, чтобы выставлять эти номера версий для автоматического сканирования содержимого пакета? Задокументировано ли где-нибудь назначение этих файлов с номерами версий?


Вот скриншот того, о чем я говорю:

Analyze APK screenshot

Ответы [ 2 ]

2 голосов
/ 14 ноября 2019

Как вы уже знаете, в файле .properties хранятся параметры значения ключа, которые можно прочитать внутри библиотеки или из кода снаружи. В качестве примера возьмем библиотеку play-service-ads-identifier:

play-service-ads-identifier structure

Файл свойств скопирован из aar base dir в apk rootкаталог. Вот как работает система сборки. Я исследую внутри этой библиотеки, и я не нашел никаких ссылок на свойства, содержащиеся в файле play-services-ads-identifier.properties. Я думаю, что это общая ситуация для всей остальной библиотеки, которую вы используете. Полагаю, единственное использование этих файлов - быстрое определение версии библиотеки, используемой приложениями.

Более того, я нашел это примечание из официальной документации :

Примечание. Директивы ProGuard включены в клиентские библиотеки сервисов Play для сохранения необходимых классов. Плагин Android для Gradle автоматически добавляет файлы конфигурации ProGuard в пакет AAR (Android ARchive) и добавляет этот пакет в конфигурацию ProGuard. Во время создания проекта Android Studio автоматически создает файлы конфигурации ProGuard и свойства build.gradle для использования ProGuard. Чтобы использовать ProGuard с Android Studio, необходимо включить параметр ProGuard в ваших типах build.gradle buildTypes. Для получения дополнительной информации см. Руководство ProGuard.

Как вы можете прочитать, плагин Android для Gradle добавляет все необходимое для упаковки apk, включая конфигурацию proguard. Если свойства не удалены, я думаю, что это выбор. Я не знаю, позволяют ли они системе более быстрый контроль apk. Я искал больше документации об этом, и я ничего не нашел об этих файлах свойств. Если они используются сервисом Play, это не задокументировано . Честно говоря, в моем проекте я просто оставляю эти файлы, они не оказывают существенного влияния на размер apk. Учитывая, что размер этих файлов минимален, Я предлагаю вам оставить их там, где они .

0 голосов
/ 12 ноября 2019

.properties файлы, в основном используемые в технологиях, связанных с Java, для хранения настраиваемых параметров приложения. Они также могут быть использованы для хранения строк для интернационализации и локализации. Он хранит данные в форме параметра «ключ-значение».

В случае Firebase хранит информацию, связанную с пользовательской аналитикой, подробнее здесь введите описание ссылки здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...