This directory is used for building our Android
ICU data file. Unfortunately this requires some
manual tweaking, since the ICU build process is
not (yet) completely integrated into the Android
one. Fortunately it is supported by a script. :)
Quick tour:
- icudt38l/* contains the resources in unpacked
form. It includes everything that comes with
a vanilla ICU 3.8 as well as a couple of
additional encodings required by Android.
These are
- gsm-03.38-2000.cnv
- iso-8859_16-2001.cnv
- docomo-shift_jis-2007.cnv
- kddi-jisx-208-2007.cnv
- kddi-shift_jis-2007.cnv
- softbank-jisx-208-2007.cnv
- softbank-shift_jis-2007.cnv
Also, all character translation tables have
been created with the "--small" option, so
they use less space than in the vanilla ICU.
- Each of the cfg-* directories contains a
different configuration for an ICU data file.
Each of these configurations consists of a
couple of files the directory structure of
which mimics the structure in icudt38l/*.
- icudt38l.txt contains the main manifest of
our data file. It currently includes a lot
of character conversion tables, locale data
for various countries as well as timezone
information.
- Local manifest files named res_index.txt
are residing in the following directories:
- icudt38l
- icudt38l/brkitr
- icudt38l/coll
- icudt38l/rbnf
These also need to be updated to reflect
any changes to the resources we want in
Android.
- The actual data files are named using the
same pattern, that is, icudt38l-<foo> is
the data file geenrated from cfg-<foo>. The
files currently need to be rebuilt manually
whenever one of the manifests changes (don't
forget to submit!). This can be conveniently
done by running the ./helper.sh script as
follows:
./helper foo
Here, foo is the name of the configuration
to build.
Note: The script assumes you have done
envsetup.sh and choosecombo before, because
it relies on an enviroment variable pointing
to the prebuilt tools. It also assumes the
directory contents are writable, so as a
Perforce user you might want to do a
g4 edit ...
before you run it.
- Currently we have these data files and
configurations:
- default .... what we had in Android 1.0
- us-euro .... adds some Euro locales
- us-japan ... adds full Japanese locale
and Docomo/KDDI/Softbank
support
Note that very large data files are likely
to break the prelink map. So this needs to
be modified as well.
- The correct data file is chosen by the
build depending on the PRODUCT_LOCALES
variable. Note that is it possible you have
to touch something in this directory for
the build process to notice the changed
selection.