2015-01-30 4 views
4

Я использую icu4j в своем коде Android. Объем банки составляет около 10 МБ, что заставляет мое приложение регистрировать apk 15 МБ. Конечно, 15 МБ, вероятно, связано с тем, что Proguard помогает уменьшить размер. В любом случае, знает ли кто-нибудь меньшую альтернативу icu4j? Я использую ICU4J в сочетании с libphonenumber только с одной целью, которая является детальное here, и который я воспроизвожу ниже:icu4j слишком большой, любая альтернатива?

Понадобится:

  • getSupportedRegions(), чтобы получить список кодов регионов

  • getCountryCodeForRegion (regionCode), чтобы вывести страну код вызова для каждого из них (1, 44 и т.д.)

И после этого, чтобы получить фактические имена, вы должны использовать ICU4J -> http://icu-project.org/apiref/icu4j/ -> он даст вам названия стран из этих региональных кодов на любом языке, на котором говорит ваш пользователь. (getDisplayCountry())

+0

Я бы рекомендовал заменить зависимость с: '' 'компилировать«org.apache.lucene: Lucene-ICU4J: 3.2.0'''' Это просто половинный размер. Может быть, это поможет вам немного. – drindt

ответ

2

На Android 7.0 (API 24), каркас ICU подвергается, так что вам не нужно включать библиотеку отдельно в приложении. documentation рекомендует создавать несколько версий вашего APK, если вам нужно включить его в более ранние версии Android.

Конечно, если вам это нужно только для одной мелочи, тогда было бы лучше найти собственный Android или Java API, который может выполнить эту работу, или небольшую стороннюю библиотеку.

Примечание

  • С некоторой работой может быть возможно редактировать библиотеку ICU быть значительно меньше. См. this page для более подробной информации.
Смежные вопросы