android - 避免本地化资源开销

标签 android localization resources

我有一个已本地化为 24 种语言的应用。 当我使用纯英语资源构建应用程序时,该应用程序为 1.6MB。 当我使用所有语言资源构建应用程序时,该应用程序为 2.5MB。 与语言相关的资源是几个 HTML 文件和 strings.xml。

由于应用程序正在运行后台服务,因此由于内存压力而被杀死是很烦人的。 2.5MB 时似乎比只有 1.6MB 时更频繁。 因此,我想通过避免在真正需要一种语言时在 APK 中提供所有语言来减小应用程序的大小。

我正在考虑制作一个几乎只有英语的 APK,并且用户可以在运行时从应用下载语言文件。

Android 中是否有执行此操作的框架,或者至少有模式或最佳实践?

热烈欢迎任何建议。

最佳答案

您不会因为 APK 的大小而出现内存问题。如果用户没有足够的空间来安装应用程序,这只会影响在设备上安装应用程序的能力。我认为您可能有一个不同的内存问题,您错误地将其归咎于您的内存问题(更深入地了解是否可以纠正该问题)。

您可以使用 Proguard 来消除最终 APK 中的资源,但我认为这不是一个明智的方法。链接:http://developer.android.com/tools/help/proguard.html

我还认为为每种语言创建单独的 APK 并不是一个好主意(事实上,这违反了 Play 市场的服务条款)。

底线是,再次检查您的应用,并修复内存问题 - 您可能会走上错误的道路,试图将问题归咎于本地化资源。

关于android - 避免本地化资源开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14502896/

相关文章:

java - Java中如何控制资源的缓存?

java - 将资源添加到 JAR

android - 我可以在 Android Studio 中测试响应式网站吗?如何?

android - 如何删除按钮背景资源

c# - 我可以在 ASP.NET 中使用 C# 获取时间参数的本地化缩写吗?

iPhone 许多文件中的 : Is it possible to split Localizable. 字符串

c - Windows 中的语言环境列表

java - 如何将资源从可执行 jar 文件保存到本地驱动器?

java - Android Function 返回一个数组直接变成变量

android - 缺少创建新 AS 项目并在安装后在我的设备上填充 lib 文件夹的步骤