Избегайте накладных расходов на локализованные ресурсы

У меня есть приложение, которое локализовано на 24 языках. Когда я создаю приложение с использованием ресурсов только на английском языке, оно составляет 1,6 МБ. Когда я создаю приложение со всеми языковыми ресурсами, оно составляет 2,5 МБ. Зависимые от языка ресурсы - это пара HTML-файлов и strings.xml.

Поскольку приложение работает в фоновом режиме, его раздражает уничтожение из-за нехватки памяти. Кажется, это чаще, когда он составляет 2,5 МБ, чем когда он составляет всего 1,6 МБ. Поэтому я хочу уменьшить размер приложения, избегая отправки всех языков в APK, когда действительно нужен только один язык.

Я подумываю о создании APK с почти только английским языком и возможностью для пользователя загружать языковые файлы из приложения во время выполнения.

Существуют ли рамки для этого в Android, или, по крайней мере, шаблоны или лучшие практики?

Любое предложение горячо приветствуется.

1 ответ

Решение

Вы не увидите проблем с памятью из-за размера вашего APK. Это повлияет на возможность установки приложения на устройство только в том случае, если у пользователя недостаточно места для его установки. Я думаю, что у вас, вероятно, есть другая проблема с памятью, которую вы ошибочно обвиняете в своих проблемах с памятью (сделал немного глубже, чтобы посмотреть, сможете ли вы исправить проблему).

Вы можете использовать Proguard для удаления ресурсов из вашего окончательного APK, но я не думаю, что это разумный подход. Ссылка: http://developer.android.com/tools/help/proguard.html

Я также думаю, что не стоит создавать отдельные APK для каждого языка (и на самом деле это противоречит условиям обслуживания Play Market).

В итоге, проверьте ваше приложение еще раз и исправьте проблемы с памятью - вы, вероятно, идете по неверному пути, пытаясь обвинить ваши проблемы в ваших локализованных ресурсах.

Другие вопросы по тегам