7

我在我的 android 代码中使用 icu4j。jar 大约 10MB,这导致我的整个应用程序注册了一个 15MB 的 apk。当然,15MB 可能是由于 Proguard 帮助减小了大小。无论如何,有人知道 icu4j 的较小替代品吗?我libphonenumber仅出于一个目的将 icu4j 与 icu4j 结合使用,此处对此进行了详细说明并在下面进行了复制:

你需要:

  • getSupportedRegions() 获取区域代码列表

  • getCountryCodeForRegion(regionCode) 获取每个国家/地区的呼叫代码(1、44 等)

然后要获得实际名称,您应该使用 ICU4J -> http://icu-project.org/apiref/icu4j/ --> 它会从这些地区代码中以您的用户所说的任何语言为您获取国家名称。(getDisplayCountry())

4

2 回答 2

5

从 Android 7.0 (API 24) 开始,ICU 框架已公开,因此您无需在应用程序中单独包含该库。如果您需要将 APK 包含在较早的 Android 版本中,该文档建议创建多个版本的 APK。

当然,如果你只需要它做一件小事,那么最好找一个可以完成这项工作的原生 Android 或 Java API,或者一些更小的第三方库。

笔记

  • 通过一些工作,可以将 ICU 库编辑得更小。有关详细信息,请参阅此页面。
于 2017-02-14T01:37:03.463 回答
1

您可以使用出色的Eclipse删除未使用的源。

就我而言,我只需要 icu4j 来检测文本文件的字符集,所以我编写了一个检测数十个文件的片段,并且在运行该片段时我手动删除了不相关的来源。经过几次尝试,我最终只得到了 2 个包,22+27 个来源。

于 2020-02-13T14:14:24.547 回答