Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
381 views
in Technique[技术] by (71.8m points)

java - icu4j is too big, any alternative?

I am using icu4j in my android code. The jar is about 10MB, which causes my entire application to register an apk of 15MB. Of course the 15MB is likely due to Proguard helping reducing the size. Anyway, does anyone know of a smaller alternative to icu4j? I am using icu4j in conjunction with libphonenumber for one purpose only, which is detailed here, and which I reproduce below:

You need:

  • getSupportedRegions() to get the list of region codes

  • getCountryCodeForRegion(regionCode) to get the country calling code for each one (1, 44 etc)

And then to get the actual names, you should use ICU4J -> http://icu-project.org/apiref/icu4j/ --> it will get you country names from these region codes in whatever language your user speaks. (getDisplayCountry())

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

As of Android 7.0 (API 24), the ICU framework is exposed so that you don't need to include the library separately in your app. The documentation recommends creating multiple versions of your APK if you need to include it in earlier Android versions.

Of course, if you only need it for one small thing, then it would be better to find a native Android or Java API that can do the job, or some smaller third-party library.

Note

  • With some work it may be possible to edit the ICU library to be significantly smaller. See this page for more details.

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...