过期主题 该主题因在两个月内没有任何回复而自动关闭。
如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。
主题工具  
RadarNyan 帅哥
RadarNyan 的头像
极客II
级别:5 | 在线时长:152小时 | 升级还需:58小时级别:5 | 在线时长:152小时 | 升级还需:58小时级别:5 | 在线时长:152小时 | 升级还需:58小时级别:5 | 在线时长:152小时 | 升级还需:58小时级别:5 | 在线时长:152小时 | 升级还需:58小时
注册日期: 2013-11
帖子: 97
致谢: 148
很罗嗦没啥用可以跳过的前言

今天拖了份 Android 5.0 的正式版镜像回来拆开看了看,发现 Noto Sans CJK 正式成为 Android 5.0 的 CJK fallback 字体,比较可惜的是只有 Regular 一个字重。于是自己折腾一套 Regular & Bold 两套字重的来用,分享一下折腾的过程,也算给自己写个备忘。我会尽量写的详细,避免有同样需求的同学走弯路。有什么问题可以在下面跟帖提问,能回答的我会尽量回答。要修改系统分区肯定先得 Root,这个我就不说了。刚开始我选取的是 Noto Sans CJK 1.001,但是实际把 NotoSansCJKsc-Regular.otf 放到手机上用了一下发现很多字莫名失踪,装在 Win 7 里用没发现有这个问题,谁知道是什么原因麻烦告诉我一下。于是改用 Adobe 发布的版本 Source Han Sans 1.001

我曾经自己拖了一份源码回来编译,由于一些众所周知的原因我国网络拖源码是一种极其痛苦的事情……经历几次失败终于拖回来,这次不想在这么麻烦了。查了一下发现 ttx 可以很方便的提取 OpenType 字体的全部/指定表并重新编译回去,在 Adobe 提供的字体开发套件 AFDKO 中有包含。

准备工作

思源黑体 (Source Han Sans)


下载好后解压,我只用到了其中 6 个字体(注意目录加粗的部分):
source-han-sans-1.001R\SubsetOTF\CN\SourceHanSansCN-Regular.otf
source-han-sans-1.001R\SubsetOTF\CN\SourceHanSansCN-Bold.otf
source-han-sans-1.001R\SubsetOTF\TW\SourceHanSansTW-Regular.otf
source-han-sans-1.001R\SubsetOTF\TW\SourceHanSansTW-Bold.otf
source-han-sans-1.001R\SubsetOTF\JP\SourceHanSansJP-Regular.otf
source-han-sans-1.001R\SubsetOTF\JP\SourceHanSansJP-Bold.otf

(因为很重要所以重复了 6 遍)
分别对应我平时用得到的简、繁体中文和日文。
韩文自己用不上所以就忽略了,说实话现在韩国日常中有出现汉字的地方么?

Adobe Font Development Kit for OpenType (AFDKO)


下载好后解压到任意不含空格不含中文的目录,比如我放在 C:\PortableApps\FDK
右键点击 FinishInstallWindows.cmd 以管理员身份运行设置环境变量,之后注销重新登录或者重启电脑生效。

Regular 字重的处理(以 SourceHanSansCN-Regular.otf 做例子,繁体中文和日文相同)

Regular 字重处理起来是比较简单的,只需要修改 name 表去掉多余的 Regular 即可。注意不是所有的 Regular 都是多余的!

1. 在解压好字体的目录打开命令提示符窗口(按住 shift 右键点击空白位置,在此处打开命令窗口)

2. 用 ttx 把要修改的 name 表提取出来:
[ ttx -t name SourceHanSansCN-Regular.otf ](命令不含外侧方括号,下同)
得到一个 SourceHanSansCN-Regular.ttx 文件,这是个纯文本的 XML,可以用文本编辑器打开(我个人用 Notepad2-Mod)

3. 多余的 Regular 有三处,每处都紧跟着一个独立的 Regular,其他的不要删多了。修改好之后保存。
我这里需要删除的分别在第 9、54 和 96 行(别忘了把多余的空格也删掉),第 18、63 和 102 行的要保留。
即删去「nameID="1"」项内的 Regular,保留其他项内的 Regular。

4. 再用 ttx 把修改好的 name 表合并进去:
[ md output ](ttx 要求指定输出的目录必须先存在)
[ ttx -d output -m SourceHanSansCN-Regular.otf SourceHanSansCN-Regular.ttx ]
注意 .otf 在前 .ttx 在后

5. 在 output 文件夹下得到 SourceHanSansCN-Regular.otf,这就是我们修改好的字体了。

Bold 字重的处理(以 SourceHanSansCN-Bold.otf 做例子,繁体中文和日文相同)

Bold 字重一开始我也是只处理了 name 表,发现是不够的,依然存在默认显示粗体的问题,继续研究发现还需要修改 head 表和 OS/2 表。

1. 用 ttx 把要修改的 name 表,head 表以及 OS/2 表提取出来:
[ ttx -t name -t head -t OS/2 SourceHanSansCN-Bold.otf ]
注意 OS/2 要大写

2. 打开 ttx 文件,编辑 name 表,将 Regular 修改为 Bold 并删除多余的 Bold。
Bold 字重修改起来比 Regular 字重容易多了。只要搜索“Regular”,一共会找到三处,把它们统统改成 Bold 并把上一项中的 Bold 删去即可。
即删去第 9、57 和 102 行的 Bold,保留第 18、66 和 108 行的 Bold。
即删去「nameID="1"」项内的 Bold,保留其他项内的 Bold。


3. 向下滚动,编辑 head 表,将其中 macStyle 一项的第二组最后一位修改为 1,即:
原内容:<macStyle value="00000000 00000000"/>
修改为:<macStyle value="00000000 00000001"/>

4. 继续向下滚动,编辑 OS/2 表,将其中 fsSelection 一项的
第二组第三位(代表 BOLD,对应上面的 macStyle 最后一位)修改为 1,
同时将第二组第二位(代表 REGULAR,无 macStyle 对应项)修改为 0,即:
原内容:<fsSelection value="00000001 10000000"/>
修改为:<fsSelection value="00000001 10100000"/>


5. 至此 ttx 编辑完毕,保存文件并合并进字体:
[ ttx -d output -m SourceHanSansCN-Bold.otf SourceHanSansCN-Bold.ttx ]

6. 在 output 文件夹下得到 SourceHanSansCN-Bold.otf,这就是我们修改好的字体了。

Android 端 fallback_fonts.xml 的编辑

前面说过我拖了一份 Android 5.0 正式版的系统镜像回来,这里就完全按照 Android 5.0 的方式来添加好了。

打开 fallback_fonts.xml,找到:在其上插入:因为我主要是使用简体中文的,所以把简体中文排在了最上面。像我这样系统语言设置为英语时,靠上的字体会优先显示。

修改好之后将上述六个字体复制到 /system/fonts 下,重启手机即可(注意备份,注意权限。本帖主要讲修改字体文件而不是修改 Android 系统字体,我就不太细说了。)
此帖于 2016-05-18 15:41:22 被 RadarNyan 编辑.
回复时引用此帖
以下 4 位极客对 RadarNyan 此帖表示感谢:
biuankheinom (2016-06-19), lrk293 (2016-05-09), Rayernas (2015-10-09), royink (2015-10-18)
年年 帅哥
年年 的头像
极客I
级别:4 | 在线时长:139小时 | 升级还需:11小时级别:4 | 在线时长:139小时 | 升级还需:11小时级别:4 | 在线时长:139小时 | 升级还需:11小时级别:4 | 在线时长:139小时 | 升级还需:11小时
注册日期: 2006-05
帖子: 49
2014-11-08, 22:47:56 #2 | TOP
支持一下楼主 预览版字体是不错 不过换字体觉得好麻烦 5儿子现在用的pa 只用来偶尔听歌了。。。。。
回复时引用此帖
biuankheinom 帅哥
biuankheinom 的头像
攷古專員
级别:13 | 在线时长:1015小时 | 升级还需:35小时级别:13 | 在线时长:1015小时 | 升级还需:35小时级别:13 | 在线时长:1015小时 | 升级还需:35小时
注册日期: 2011-01
来自: 省城
帖子: 2,235
致谢: 602
2014-11-11, 15:55:12 #3 | TOP
太牛了,研究如此的透彻。
回复时引用此帖
122742320
122742320 的头像
极客II
级别:5 | 在线时长:156小时 | 升级还需:54小时级别:5 | 在线时长:156小时 | 升级还需:54小时级别:5 | 在线时长:156小时 | 升级还需:54小时级别:5 | 在线时长:156小时 | 升级还需:54小时级别:5 | 在线时长:156小时 | 升级还需:54小时
注册日期: 2011-05
帖子: 180
致谢: 9
2014-11-14, 12:36:33 #4 | TOP
话说 怎么不能致谢呢
回复时引用此帖
yimingtx
极客II
级别:3 | 在线时长:92小时 | 升级还需:8小时级别:3 | 在线时长:92小时 | 升级还需:8小时级别:3 | 在线时长:92小时 | 升级还需:8小时
注册日期: 2014-07
来自: 江苏省无锡市
帖子: 174
致谢: 6
2014-11-14, 22:15:07 #5 | TOP
支持楼主分享实用教程!
回复时引用此帖
我来也 帅哥
我来也 的头像
极客II
级别:4 | 在线时长:129小时 | 升级还需:21小时级别:4 | 在线时长:129小时 | 升级还需:21小时级别:4 | 在线时长:129小时 | 升级还需:21小时级别:4 | 在线时长:129小时 | 升级还需:21小时
注册日期: 2007-01
帖子: 114
致谢: 18
2014-11-29, 20:34:59 #6 | TOP
求修改好的 字体 谢谢
回复时引用此帖
yqsayumi
yqsayumi 的头像
极客II
级别:6 | 在线时长:210小时 | 升级还需:70小时
注册日期: 2009-01
帖子: 76
致谢: 55
2014-11-30, 15:20:27 #7 | TOP
感谢Lz的分享,很多东西还不是很懂,看起来还是挺吃力
回复时引用此帖
ayumi502
极客II
级别:3 | 在线时长:80小时 | 升级还需:20小时级别:3 | 在线时长:80小时 | 升级还需:20小时级别:3 | 在线时长:80小时 | 升级还需:20小时
注册日期: 2013-08
帖子: 49
致谢: 1
2015-01-10, 12:46:15 #8 | TOP
谢谢分享 但是感觉很复杂的样子
回复时引用此帖
shuyaner
shuyaner 的头像
极客I
级别:0 | 在线时长:1小时 | 升级还需:9小时
注册日期: 2015-01
帖子: 6
致谢: 1
2015-01-19, 14:15:27 #9 | TOP
看着一堆密密麻麻的感觉好麻烦哦,用Hola桌面,里面就可以找到很多字体,随时随地可以下载使用
回复时引用此帖
以下极客对 shuyaner 此帖表示感谢:
hhbluestar (2015-12-09)
过期主题 该主题因在两个月内没有任何回复而自动关闭。
如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。
主题工具
发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码

论坛跳转:
Copyright ©2003-2014, THEMEX.NET [湘ICP备14009485号]
Powered by vBulletin® v3.8.3 ©Jelsoft Enterprises Ltd.
所有时间均为北京时间。现在的时间是 11:57:24