icu4j太大了,有什么选择吗?

时间:2015-01-30 17:48:51

标签: java android libphonenumber

我在我的android代码中使用icu4j。 jar约为10MB,这使我的整个应用程序注册了15MB的apk。当然15MB可能是由于Proguard帮助缩小尺寸。无论如何,有没有人知道icu4j的一个较小的替代品?我将icu4j与libphonenumber结合使用仅用于一个目的,详细here,我将在下面重现:

  

你需要:

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

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

  •   
     

然后要获得实际名称,你应该使用ICU4J - >   http://icu-project.org/apiref/icu4j/ - >它会得到你的国名   来自这些区域代码的用户所说的任何语言。   (getDisplayCountry())

2 个答案:

答案 0 :(得分:3)

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

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

注意

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

答案 1 :(得分:0)

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

就我而言,我只需要icu4j即可检测文本文件的字符集,因此我编写了一个代码片段来检测数十个文件,并且在运行该代码片段时,我手动删除了不相关的源代码。经过服务器尝试后,我只得到了2个软件包,即22 + 27个来源。