Name Date Size #Lines LOC

..--

android_icu4c/H25-Apr-2025-7446

android_icu4j/H25-Apr-2025-1,725,5011,501,161

build/H25-Apr-2025-9773

icu4c/H25-Apr-2025-5,594,5875,181,150

icu4j/H25-Apr-2025-2,343,8992,067,496

libandroidicu/H25-Apr-2025-54,68313,300

libandroidicuinit/H25-Apr-2025-654397

libicu/H25-Apr-2025-226,37970,925

tools/H25-Apr-2025-32,89122,243

Android.bpH A D25-Apr-20253.5 KiB114107

CleanSpec.mkH A D25-Apr-20253 KiB644

LICENSEH A D25-Apr-202535.8 KiB718622

METADATAH A D25-Apr-2025323 1816

MODULE_LICENSE_BSD_LIKEHD25-Apr-20250

OWNERSH A D25-Apr-2025432 1511

PREUPLOAD.cfgH A D25-Apr-202542 43

README-ravenwood.mdH A D25-Apr-20251.2 KiB3222

README.androidH A D25-Apr-20251.3 KiB3523

README.versionH A D25-Apr-202574 43

TEST_MAPPINGH A D25-Apr-2025220 1716

icu.aconfigH A D25-Apr-20251.2 KiB3733

icu_version_upgrade.mdH A D25-Apr-202513.7 KiB396326

README-ravenwood.md

1# ICU on Ravenwood
2
3# What APIs are enabled
4As of 2024-06-19, Ravenwood uses the host side JVM, not ART, so it doesn't use `libcore` either.
5
6To support ICU on Ravenwood, we include the following jar files in the
7Ravenwood classpath.
8- `core-icu4j-for-host.ravenwood`
9- `icu4j-icudata-jarjar`
10- `icu4j-icutzdata-jarjar`
11
12`core-icu4j-for-host.ravenwood` is made from `core-icu4j-for-host.ravenwood`
13with `hoststubgen` to make the following modifications.
14- Enable `android.icu` APIs on Ravenwood.
15- But all other APIs -- i.e. all `libcore_bridge` APIS -- will throw at runtime.
16
17This "policy" is defined in android_icu4j/icu-ravenwood-policies.txt.
18
19As a result, on Ravenwood, all `android.icu` APIs will work, but none of the `libcore_bridge` APIs.
20
21# CTS
22
23ICU's CTS is `CtsIcuTestCases`, which contains the tests under
24android_icu4j/src/main/tests/, which are the tests from the upstream ICU, and
25android_icu4j/testing/, which are android specific tests, which depends
26on `libcore_bridge`.
27
28On Ravenwood, android_icu4j/src/main/tests/ will pass, but not android_icu4j/testing/.
29
30So we have `CtsIcuTestCasesRavenwood-core-only`, which only contains the
31tests from the upstream. You can run this with `atest CtsIcuTestCasesRavenwood-core-only`.
32

README.android

1This repo contains Android's copy of ICU4C and ICU4J and associated tools and code.
2
3Directories
4===========
5
6ICU4J
7-----
8
9icu4j/             - ICU4J with Google and Android-specific patches applied.
10                     After patching this make sure to run the following to update
11                     the repackaged version used in Android and CTS tests.
12                       tools/srcgen/generate_android_icu4j.sh
13
14android_icu4j/     - This is the copy of ICU4J used in the Android platform.
15                     IMPORTANT NOTE: Do not make changes to this code directly,
16                     except where noted in android_icu4j/README.android. See
17                     tools/README.android for how to generate it.
18
19ICU4C
20-----
21
22icu4c/             - ICU4C with Google and Android-specific patches applied.
23
24android_icu4c/     - Configuration code used when building ICU4C on Android.
25
26libandroidicu/     - The subset of ICU4C exposed to framework code and other
27                     components outside of the mainline module that contains ICU.
28
29libandroidicuinit/ - A static library for ICU4C initialization. Used by
30                     libandroidicu and libjavacore to initialize ICU4C.
31
32tools/             - Code / data maintenance tools. See tools/README.android.
33
34libicu/            - NDK headers and the shim implementation in the libicu.so.
35

README.version

1URL: https://github.com/unicode-org/icu
2Version: 75.1
3BugComponent: 23970
4