Java icu4j太大了,有其他选择吗?

Java icu4j太大了,有其他选择吗?,java,android,libphonenumber,Java,Android,Libphonenumber,我在android代码中使用icu4j。jar大约是10MB,这导致我的整个应用程序注册了15MB的apk。当然,15MB可能是由于Proguard帮助缩小了尺寸。不管怎样,有人知道icu4j的更小的替代品吗?我将icu4j与libphonenumber结合使用,仅用于一个目的,详细说明如下: 你需要: getSupportedRegions()以获取区域代码列表 getCountryCodeForRegion(regionCode)获取每个国家的呼叫代码(1、44等) 然后要获得实际名称,

我在android代码中使用icu4j。jar大约是10MB,这导致我的整个应用程序注册了15MB的apk。当然,15MB可能是由于Proguard帮助缩小了尺寸。不管怎样,有人知道icu4j的更小的替代品吗?我将icu4j与
libphonenumber
结合使用,仅用于一个目的,详细说明如下:

你需要:

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

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

然后要获得实际名称,您应该使用ICU4J-> -->它会让你知道国家的名字 从用户所说的任何语言的区域代码。 (getDisplayCountry())

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

当然,如果您只是为了一件小事需要它,那么最好找到一个能够完成这项工作的本地Android或Java API,或者一些较小的第三方库

注意

  • 通过一些工作,可以将ICU库编辑得更小。有关更多详细信息,请参阅

您可以使用伟大的Eclipse来删除未使用的源代码


在我的例子中,我只需要icu4j来检测文本文件的字符集,所以我编写了一个检测几十个文件的代码段,在运行该代码段时,我手动删除了不相关的源代码。在多次尝试之后,我只得到了2个包,22+27个源。

我建议用:
compile'org.apache.lucene:lucene-icu4j:3.2.0'
来替换依赖关系,它只是大小的一半。也许这对你有点帮助。