page.title=ICU4J Android 架構 API page.tags=androidn page.image=images/cards/card-nyc_2x.jpg @jd:body

此文件內容:

  1. 與 ICU4J 的關係
  2. 從 ICU4J 遷移到 android.icu API
  3. 授權

另請參閱

  1. ICU4J 文件
  2. ICU4J 支援的最新標準

ICU4J 是廣為使用的一組開放原始碼 Java 程式庫,為軟體應用程式提供 Unicode 與全球化支援。 Android N 在 Android 架構中公開一個 ICU4J API 的子集,供應用程式開發人員在 {@code android.icu} 套件下使用。 這些 API 使用裝置上呈現的當地語系化資料。 因此,您可以不用將 ICU4J 程式庫編譯到 APK 而降低 APK 的使用;相反地,您只需在架構中呼叫這些程式庫 (在此情況中,您可能要提供多個版本的 APK,這樣執行低於 Android N 之 Android 版本的使用者即可下載包含 ICU4J 程式庫的應用程式版本)。

此文件一開始先提供支援這些程式庫所需之最低 Android API 層級的一些基本資訊。 接著它說明 Android 特定實作 ICU4J 的相關須知事項。 最後,它告訴您如何在 Android 架構中使用 ICU4J API。

與 ICU4J 的關係

Android N 透過 android.icu 套件 (而非 com.ibm.icu) 公開一個 ICU4J API 的子集。Android 架構可能因為各種原因選擇不公開 ICU4J API;例如,Android N 沒有公開一些已過時的 API 或 ICU 團隊尚未宣布為穩定的 API。 因為 ICU 團隊將來會將 API 視為過時,所以 Android 也會將這些 API 標示為已過時但繼續包含它們。

表 1. Android N 中使用的 ICU 與 CLDR 版本。

Android API 層級 ICU 版本 CLDR 版本
Android N 56 28

以下是一些必須注意的重要事項:

從 com.ibm.icu 遷移到 android.icu 套件

如果您已經在應用程式中使用 ICU4J API,而且 android.icu API 符合您的需求,那麼遷移到架構 API 需要您將 Java 匯入從 com.ibm.icu 變更為 android.icu。 接著您可以從 APK 移除您自己的 ICU4J 檔案。

注意:ICU4J 架構 API 使用 {@code android.icu} 命名空間而非 {@code com.ibm.icu}。 這是為了避免包含自己的 {@code com.ibm.icu} 程式庫的 APK 中發生命名空間衝突。

從其他 Android SDK API 遷移到 android.icu API

javaandroid 套件中的一些類別包含可在 ICU4J 中找到的同等項目。 然而,ICU4J 通常為標準與語言提供更廣泛的支援。

以下提供一些快速入門範例:

類別 替代項目
java.lang.Character android.icu.lang.UCharacter
java.text.BreakIterator android.icu.text.BreakIterator
java.text.DecimalFormat android.icu.text.DecimalFormat
java.util.Calendar android.icu.util.Calendar
android.text.BidiFormatter android.icu.text.Bidi
android.text.format.DateFormat android.icu.text.DateFormat
android.text.format.DateUtils android.icu.text.DateFormat android.icu.text.RelativeDateTimeFormatter

授權

ICU4J 是根據 ICU 授權而發行。如需詳細資料,請參閱 ICU 使用者指南