虽然Android 从 2.3 开始已经支持50种以上的语言,但是不是每种语言都有字体可以显示。遇到一个新需求,
有客户要求对 hindi 语言的支持。于是上 网找了一些资料,发现网上介绍的大部分是如何替换默认字体,就
是替换./frameworks/base/data/fonts /DroidSansFallback.ttf,但是替换完之后,中文就无法正常显示。其实
只要有下面几个步骤,就可以实现新曾加一种语言的显示支持:
1. 需要有可以显示 hindi 语言的字体,我在网上下载了一个:DroidHindi.ttf
2. 需要修改的地方主要有
1 ) 将下载的字体文件拷贝到:./frameworks/base/data/fonts/
2 ) 修改./frameworks/base/data/fonts/Android.mk,将 DroidHindi.ttf 添加到 copy_from:
3 ) Hindi 的语言代码是 hi_IN,修改./device/qcom/common/common.mk,将 hindi 的语言代码加进去,
这样在你的设置-语言和键盘-选择语言里面就可以看见 hindi 语言了:
4 ) 修改./external/skia/src/ports/SkFontHost_android.cpp,将 DroidHindi.ttf 加进去。网上 介绍的很多
*** 都没有提到这一步,如果没有这一步的话,添加的语言是不生效的,显示的是乱码,因为 android 无法
找到 hindi 语言可以显示的字体, 还是会选择默认字体去显示。修改的地方为:
5 ) 去./build/target/product/full.mk 看看系统选择的是哪个语言列表,我的是:
$(call inherit-product, build/target/product/languages_ *** all.mk)
那我就去修改./build/target/product/languages_ *** all.mk,若这里显示的是 languages_full.mk,那么
就修改./build/target/product/languages_full.mk 文件,修改如下:
PRODUCT_LOCALES := en_US en_GB fr_FR hi_IN it_IT de_DE es_ES
6) 在 external/icu4c/studata 下的 Android.mk 下添加
$(if $(findingstring hi,$(PRODUCT_LOCALS)),large)\
3. 剩下的就是重新编译一下,然后 flash 到手机或模拟器上就可以了。
手机上的编程软件有c4droid、aide、CppDroid、QPython3、Termux。
相关介绍:
1、c4droid:
是款Android设备上的C/C++程序IDE。默认以tcc(tiny c compiler)为编译器,可以选择安装gcc插件(20mb,只有root用户可以使用),选用gcc后,可以用sdl(简单直控媒体层库,需安装sdl plugin for c4droid)和qt(nokia官方开发库。
2、aide:
aide是一个Android/Java等集成开发环境,可以在Android手机上进行Android软件和游戏的开发,而无需借助PC端。不仅仅是一个编辑器,而是支持编写-编译-调试的IDE,开发人员可以在Android手机或者平板机上创建新的项目,借助功能丰富的编辑器进行代码编写。
3、CppDroid:
CppDroid和c4droid一样,是一款手机上的c语言编译器。安卓上的C/C++编译环境,可以帮助你在手机上编写c/c++程序 ,和c4droid各有优点,cppdroid更大的优点就是可以即时报错。
4、QPython3:
主要用来在手机上写python3代码,主界面如下,主要分为“终端”、“编辑器”、“程序”、“QPYPI”、“课程”、“社区”这6个模块,终端类似IDLE,编辑器类似记事本,QPYPI是第三方包和工具。
5、Termux:
Termux是一个Android下一个高级的终端模拟器, 开源且不需要root, 支持apt管理软件包,十分方便安装软件包, 完美支持Python、PHP、Ruby、Go, Nodejs、MySQL等。
虽然Android 从 2.3 开始已经支持50种以上的语言,但是不是每种语言都有字体可以显示。遇到一个新需求,
有客户要求对 hindi 语言的支持。于是上 网找了一些资料,发现网上介绍的大部分是如何替换默认字体,就
是替换./frameworks/base/data/fonts /DroidSansFallback.ttf,但是替换完之后,中文就无法正常显示。其实
只要有下面几个步骤,就可以实现新曾加一种语言的显示支持:
1. 需要有可以显示 hindi 语言的字体,我在网上下载了一个:DroidHindi.ttf
2. 需要修改的地方主要有
1 ) 将下载的字体文件拷贝到:./frameworks/base/data/fonts/
2 ) 修改./frameworks/base/data/fonts/Android.mk,将 DroidHindi.ttf 添加到 copy_from:
3 ) Hindi 的语言代码是 hi_IN,修改./device/qcom/common/common.mk,将 hindi 的语言代码加进去,
这样在你的设置-语言和键盘-选择语言里面就可以看见 hindi 语言了:
4 ) 修改./external/skia/src/ports/SkFontHost_android.cpp,将 DroidHindi.ttf 加进去。网上 介绍的很多
*** 都没有提到这一步,如果没有这一步的话,添加的语言是不生效的,显示的是乱码,因为 android 无法
找到 hindi 语言可以显示的字体, 还是会选择默认字体去显示。修改的地方为:
5 ) 去./build/target/product/full.mk 看看系统选择的是哪个语言列表,我的是:
$(call inherit-product, build/target/product/languages_ *** all.mk)
那我就去修改./build/target/product/languages_ *** all.mk,若这里显示的是 languages_full.mk,那么
就修改./build/target/product/languages_full.mk 文件,修改如下:
PRODUCT_LOCALES := en_US en_GB fr_FR hi_IN it_IT de_DE es_ES
6) 在 external/icu4c/studata 下的 Android.mk 下添加
$(if $(findingstring hi,$(PRODUCT_LOCALS)),large)\
3. 剩下的就是重新编译一下,然后 flash 到手机或模拟器上就可以了。
你可以使用AutoCAD 打开。注意版本问题,使用高版本的软件比较好
虽然Android从2.3开始已经支持50种以上的语言,但是不是每种语言都有字体可以显示。遇到一个新需求,有客户要求对hindi语言的支持。于是上网找了一些资料,发现网上介绍的大部分是如何替换默认字体,就是替换./frameworks/base/data/fonts/DroidSansFallback.ttf,但是替换完之后,中文就无法正常显示。其实只要有下面几个步骤,就可以实现新曾加一种语言的显示支持:
1. 需要有可以显示hindi语言的字体,我在网上下载了一个:DroidHindi.ttf
2. 需要修改的地方主要有
1) 将下载的字体文件拷贝到:./frameworks/base/data/fonts/
2) 修改./frameworks/base/data/fonts/Android.mk,将DroidHindi.ttf添加到copy_from:
copy_from := \
DroidSans.ttf \
DroidSans-Bold.ttf \
DroidSansArabic.ttf \
DroidSansHebrew.ttf \
DroidSansThai.ttf \
DroidHindi.ttf \
DroidSerif-Regular.ttf \
DroidSerif-Bold.ttf \
DroidSerif-Italic.ttf \
DroidSerif-BoldItalic.ttf \
DroidSansMono.ttf \
Clockopia.ttf
3) Hindi的语言代码是hi_IN,修改./device/qcom/common/common.mk,将hindi的语言代码加进去,这样在你的设置-语言和键盘-选择语言里面就可以看见hindi语言了:
PRODUCT_LOCALES := en_US en_GB es_ES es_US fr_FR zh_CN zh_TW hi_IN it_IT pt_PT ru_RU
4) 修改./external/skia/src/ports/SkFontHost_android.cpp,将DroidHindi.ttf加进去。网上介绍的很多 *** 都没有提到这一步,如果没有这一步的话,添加的语言是不生效的,显示的是乱码,因为android无法找到hindi语言可以显示的字体,还是会选择默认字体去显示。修改的地方为:
/* Fonts must be grouped by family, with the first font in a family having the
list of names (even if that list is empty), and the following members having
null for the list. The names list must be NULL-terminated
*/
static const FontInitRec gSystemFonts[] = {
{ "DroidSans.ttf", gSansNames },
{ "DroidSans-Bold.ttf", NULL },
{ "DroidSerif-Regular.ttf", gSerifNames },
{ "DroidSerif-Bold.ttf", NULL },
{ "DroidSerif-Italic.ttf", NULL },
{ "DroidSerif-BoldItalic.ttf", NULL },
{ "DroidSansMono.ttf", gMonoNames },
/* These are optional, and can be ignored if not found in the file system.
These are appended to gFallbackFonts[] as they are seen, so we list
them in the order we want them to be accessed by NextLogicalFont().
*/
{ "DroidSansArabic.ttf", gFBNames },
{ "DroidSansHebrew.ttf", gFBNames },
{ "DroidSansThai.ttf", gFBNames },
{ "DroidHindi.ttf", gFBNames }, // 新添加的语言
{ "MTLmr3m.ttf", gFBNames }, // Motoya Japanese Font
{ "MTLc3m.ttf", gFBNames }, // Motoya Japanese Font
{ "DroidSansJapanese.ttf", gFBNames },
{ "DroidSansFallback.ttf", gFBNames }
};
5) 去./build/target/product/full.mk看看系统选择的是哪个语言列表,我的是:
$(call inherit-product, build/target/product/languages_ *** all.mk)
那我就去修改./build/target/product/languages_ *** all.mk,若这里显示的是languages_full.mk,那么就修改./build/target/product/languages_full.mk文件,修改如下:
PRODUCT_LOCALES := en_US en_GB fr_FR hi_IN it_IT de_DE es_ES
3. 剩下的就是重新编译一下,然后flash到手机或模拟器上就可以了。
设置页面:
打开一个Hindi的网页,hindi语言可以正常显示了:
主要分为C/C++,Java,Python,前端网页,Linux这5个方面,感兴趣的朋友,可以下载尝试一下:
C/C++
这里介绍一个软件—C++编译器(c4droid),可以直接编辑运行C/C++程序,代码高亮、语法检查,使用起来非常不错,下面我简单介绍一下这个软件的安装和使用:
安装C++编译器,这个直接在手机应用中搜索就行,如下,大概也就2兆多,直接点击下载就行:
安装完成后,打开这个软件,就可以直接编写C/C++代码了,如下,代码高亮,语法检查,还支持查找、定位行、格式化代码功能:
编辑完成后,直接点击“Run”,就能运行程序,效果如下:
Java
这里介绍一个软件—AIDE,可以直接编译运行Java代码,同时还可以编写简单的安卓程序,支持自动补全、代码高亮、语法提示等功能,使用起来也非常不错,下面我简单介绍一下这个软件的安装和使用:
下载AIDE,这个也直接在手机应该中搜索就行,如下,大概也就34兆左右,直接点击下载安装就行:
安装完成后,打开这个软件,就可以直接新建项目,编写Java代码了,如下,这里会自动进行语法检查和智能补全,使用起来非常方便:
点击运行这个程序,效果如下:
Python
这里介绍一个软件—QPython3,集成了Python3解释器,既可以命令行运行Python,还可以编辑源文件后运行,支持代码高亮、语法检查等功能,下面我简单介绍一下这个软件的安装和使用:
下载QPython3,这个与上面类似,直接在手机应用中搜索就行,如下,大概也就12兆左右,直接点击下载安装就行:
下载完成后,我们就可以直接编写python程序了,如下,这里使用的是QEdit编辑器编写代码,你也可以使用Console控制台一行一行运行代码,都可以:
点击运行程序,效果如下,类似一个简单的安卓对话框:
前端网页
这里可以使用一个软件—w3cschool编程学院,类似一个编程资料库,提供的免费教程很多,其实不仅仅限于前端Html,CSS,Js等,还有Python,PHP,C++等后端资料,对于入门编程的新手来说,是一个非常不错的学习软件,下面我简单介绍一下这个软件的安装和使用:
下载w3cschool编程学院,与上面一样,直接搜索下载就行,大概也就19兆左右,如下:
下载完成后,打卡这个软件,我们
3DS破解的4个问题,如何更新GW固件? 1、原来的蓝卡内核无需更新,只要将 Launcher.dat 文件替换掉你机器SD卡原来的文件即可。2、不能直接升级,升级一定要在虚拟系统下升级。升级前确认一...
乐享影视超级vip激活卡 很多个视频网站做成的一个APP,APP就是用这个激活卡激活,在里面看爱奇艺腾讯视频啥的不需要再开会员乐享视频怎么免广告 下载乐享影视去广告破解版,是一款免费的视频播放软件,为...
躺平发育怪人出没怎么解锁? 躺平发育巨人之城怎么解锁?很多小伙伴们在玩游戏的时候,发现自己无法找到巨人之城这个剧情关卡,那么这是怎么回事呢,下面小编就为玩家们来介绍一下躺平发育巨人之城怎么解锁的相关攻...
《悠闲的法师之路》txt下载在线阅读全文,求百度网盘云资源 《悠闲的法师之路》百度网盘txt最新全集下载:链接:?pwd=3r8j 提取码:3r8j简介:除夕夜,陈眠被选中,成为蓝星上千年来唯一的一个...
老爸曾是小偷 道具全解锁怎样获取root的权限 1,到百度搜SHUAME,下载刷机精灵,安装;(软件可用卓大师,甜椒刷机,360一键ROOT…)2,手机按“菜单键”,打开“应用程序”,选中“未知来源”...
有没有跟电脑版红警一样的单机手机游戏,我不要网游的,玩了会感觉很烂,没有电脑的那种单机的效果好,整 这样的游戏据我所知做的最好的是海岛奇兵和部落战争。两款游戏画面精致策略性强,包含了即时战略游戏的所有...