升级Android8.1后,中文情况下在存储位置显示出一个吉字节,如下图
通常来说直接显示GB比显示吉字节要好看的多,通过阅读源码分析这个是由icudt58l.dat这个文件决定了。
修改方法如下:
在external/icu/icu4c/source/data/unit目录有个zh.txt,搜索“digital”,注意有两处,都要修改,
digital{
bit{
dnam{"bit"}
one{"{0}bit"}
other{"{0}bit"}
}
byte{
dnam{"byte"}
one{"{0}byte"}
other{"{0}byte"}
}
gigabit{
dnam{"Gbit"}
one{"{0}Gb"}
other{"{0}Gb"}
}
gigabyte{
dnam{"GByte"}
one{"{0}GB"}
other{"{0}GB"}
}
kilobit{
dnam{"kbit"}
one{"{0}kb"}
other{"{0}kb"}
}
kilobyte{
dnam{"kByte"}
one{"{0}kB"}
other{"{0}kB"}
}
megabit{
dnam{"Mbit"}
one{"{0}Mb"}
other{"{0}Mb"}
}
megabyte{
dnam{"MByte"}
one{"{0}MB"}
other{"{0}MB"}
}
terabit{
dnam{"Tbit"}
one{"{0}Tb"}
other{"{0}Tb"}
}
terabyte{
dnam{"TByte"}
one{"{0}TB"}
other{"{0}TB"}
}
}
两处都替换完之后,就可以编译icudt58l.dat文件了。
如何编译ICU data文件呢?
icudt58l.dat跟系统其它的模块编译方式有点不一样,可以参考如下编译
cd external/icu/icu4c/source
./runConfigureICU Linux
make INCLUDE_UNI_CORE_DATA=1
cp -rf data/out/tmp/icudt58l.dat stubdata/
git clean -dfx
这样就可以将新的icudt58l.dat编译出来,然后重新编译整个系统就行了。
如果想先测试一下是否有作用的话,可以adb push external/icu/icu4c/source/stubdata/icudt58l.dat system/usr/icu 下,再重启机器就可以了