android 4.4.系统 添加一门新的语言
2016-06-15 15:38
567 查看
备注:此例是在4.4系统的基础上添加孟加拉语,具体添加什么语言 其语言代码都各不一样(bn_BD)
1.在external/icu4c/data/locales/底下新增文件 bn_BD.txt内容如下(不过一般这个文件是有的,有的话就不要加了,这步忽略)
bn_BD{
Version{"2.0.82.45"}
}
2.在external/icu4c 底下mkdir icuBuild 然后cd external/icu4c/icuBuild 执行命令 ../runConfigureICU Linux
3.进入external/icu4c/icuBuild下make -j8
4.把新生成的icu4c/icuBuild/data/out/tmp/icudt51l.dat 复制到 icu4c/stubdata/下面, 替换icudt51l-all.dat
由于icu版本的差异性 这里的icudt51l.dat只供参考 一般是这样的icudt*.dat
5.把icu4c/icuBuild/bin/底下的gencnval genrb icupkg makeconv 复制到 prebuilts/misc/linux-x86_64/icu-51/底下,替换原来的文件
注:prebuilts/misc/linux-x86_64/icu-51这个路径可能平台不一样 路径会改变
这里可以在prebuilts下搜索gencnval文件找到路径 find ./prebuilts -name gencnval
6.在icu4c/stubdata/下执行./icu_dat_generator.py
如果提示:
$ANDROID_BUILD_TOP not set! Run 'env_setup.sh'.
解决方法:
手动为ANDROID_BUILD_TOP赋值 export ANDROID_BUILD_TOP = 源码的绝对路径
如果提示:
/home/luwl/share/work/rk3126_kk444/prebuilts/misc/linux-x86_64/icu-51/icupkg: error while loading shared libraries: libicutu.so.51: cannot open shared object file: No such file or directory
['/home/luwl/share/work/rk3126_kk444/prebuilts/misc/linux-x86_64/icu-51/icupkg', '/home/luwl/share/work/rk3126_kk444/external/icu4c/stubdata/icudt51l.dat', '-x', '*', '-d', '/home/luwl/share/work/rk3126_kk444/external/icu4c/tmp']
解决方法:
find /usr/ -name libicutu.so.51 -->得到库的位置
export LD_LIBRARY_PATH=/usr/lib64/libicutu.so.51:$LD_LIBRARY_PATH --》把库所在的目录加载到环境变量中
再次执行 ./icu_dat_generator.py
如果提示
------ Processing '/home/luwl/share/work/rk3126_kk444/external/icu4c/stubdata/icu-data-default.txt'...
Generated ICU data: /home/luwl/share/work/rk3126_kk444/external/icu4c/stubdata/icudt51l-default.dat
则成功
7.在framework/base/core/res/res/ 和 package/app/Setting/res/底下添加values-bn-rBD/文件夹
这个语言包文件夹 可以找客户要 或者找RK要 其他平台的代码上有的话 也可以拷贝过来直接用
8,在build/target/product/language-full.mk里添加了的PRODUCT-LOCALES:=bn_BD
9,make -j8
10, 打包,烧录 即可看到效果
附:
文件icu_dat_generator.py 371行:
source_dat = os.path.basename(glob.glob(os.path.join(stubdata_dir, "icudt*.dat"))[0])
os.path.basename(path) 查询路径中包含的文件名
path =
8a15
os.path.join('/', 'home', 'work', '123.txt') #使用目录名和文件名构成一个路径字符串
print(os.path.exists(path)) # 查询文件是否存在
print(os.path.getsize(path)) # 查询文件大小
print(os.path.getatime(path)) # 查询文件上一次读取的时间
print(os.path.getmtime(path)) # 查询文件上一次修改的时间
print(os.path.isfile(path)) # 路径是否指向常规文件
print(os.path.isdir(path)) # 路径是否指向目录文件
glob.glob(r'c:\*.txt')
我这里就是获得C盘下的所有txt文件
glob.glob(r'E:\pic\*\*.jpg')
获得指定目录下的所有jpg文件
1.在external/icu4c/data/locales/底下新增文件 bn_BD.txt内容如下(不过一般这个文件是有的,有的话就不要加了,这步忽略)
bn_BD{
Version{"2.0.82.45"}
}
2.在external/icu4c 底下mkdir icuBuild 然后cd external/icu4c/icuBuild 执行命令 ../runConfigureICU Linux
3.进入external/icu4c/icuBuild下make -j8
4.把新生成的icu4c/icuBuild/data/out/tmp/icudt51l.dat 复制到 icu4c/stubdata/下面, 替换icudt51l-all.dat
由于icu版本的差异性 这里的icudt51l.dat只供参考 一般是这样的icudt*.dat
5.把icu4c/icuBuild/bin/底下的gencnval genrb icupkg makeconv 复制到 prebuilts/misc/linux-x86_64/icu-51/底下,替换原来的文件
注:prebuilts/misc/linux-x86_64/icu-51这个路径可能平台不一样 路径会改变
这里可以在prebuilts下搜索gencnval文件找到路径 find ./prebuilts -name gencnval
6.在icu4c/stubdata/下执行./icu_dat_generator.py
如果提示:
$ANDROID_BUILD_TOP not set! Run 'env_setup.sh'.
解决方法:
手动为ANDROID_BUILD_TOP赋值 export ANDROID_BUILD_TOP = 源码的绝对路径
如果提示:
/home/luwl/share/work/rk3126_kk444/prebuilts/misc/linux-x86_64/icu-51/icupkg: error while loading shared libraries: libicutu.so.51: cannot open shared object file: No such file or directory
['/home/luwl/share/work/rk3126_kk444/prebuilts/misc/linux-x86_64/icu-51/icupkg', '/home/luwl/share/work/rk3126_kk444/external/icu4c/stubdata/icudt51l.dat', '-x', '*', '-d', '/home/luwl/share/work/rk3126_kk444/external/icu4c/tmp']
解决方法:
find /usr/ -name libicutu.so.51 -->得到库的位置
export LD_LIBRARY_PATH=/usr/lib64/libicutu.so.51:$LD_LIBRARY_PATH --》把库所在的目录加载到环境变量中
再次执行 ./icu_dat_generator.py
如果提示
------ Processing '/home/luwl/share/work/rk3126_kk444/external/icu4c/stubdata/icu-data-default.txt'...
Generated ICU data: /home/luwl/share/work/rk3126_kk444/external/icu4c/stubdata/icudt51l-default.dat
则成功
7.在framework/base/core/res/res/ 和 package/app/Setting/res/底下添加values-bn-rBD/文件夹
这个语言包文件夹 可以找客户要 或者找RK要 其他平台的代码上有的话 也可以拷贝过来直接用
8,在build/target/product/language-full.mk里添加了的PRODUCT-LOCALES:=bn_BD
9,make -j8
10, 打包,烧录 即可看到效果
附:
文件icu_dat_generator.py 371行:
source_dat = os.path.basename(glob.glob(os.path.join(stubdata_dir, "icudt*.dat"))[0])
os.path.basename(path) 查询路径中包含的文件名
path =
8a15
os.path.join('/', 'home', 'work', '123.txt') #使用目录名和文件名构成一个路径字符串
print(os.path.exists(path)) # 查询文件是否存在
print(os.path.getsize(path)) # 查询文件大小
print(os.path.getatime(path)) # 查询文件上一次读取的时间
print(os.path.getmtime(path)) # 查询文件上一次修改的时间
print(os.path.isfile(path)) # 路径是否指向常规文件
print(os.path.isdir(path)) # 路径是否指向目录文件
glob.glob(r'c:\*.txt')
我这里就是获得C盘下的所有txt文件
glob.glob(r'E:\pic\*\*.jpg')
获得指定目录下的所有jpg文件
相关文章推荐
- android的ViewPager实现伪循环效果
- android 中导入第三方jar包
- Android取消沉浸式状态栏
- Android Studio错题记录
- Android利用Intent启动和关闭Activity
- 【Android】Android Camera实时数据采集及通过MediaCodec硬编码编码数据的流程
- Android性能优化总结
- 为Android5.0及以上版本中的TextView等控件设置波纹效果
- 玩kotlin,写个android里面的答题系统
- AlertDialog 点击按钮后不关闭的处理办法
- Android判断应用或Activity的存在性
- Android开源项目推荐之「最好用的Log」
- 自定义背景边框
- 在Ubuntu 12.04.2 LTS上安装OpenGrok浏览Android源码
- Android利用Intent读取和更新通讯录
- 将String转化为int(android)
- Android 九宫格控件的制作之旅
- Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能
- Android:用定时器timer刷新界面(转)
- Android View的onTouchEvent和OnTouch区别