Android N 升级与 CJK 字体

Android N 发布已经一月有余,今天终于升级换上。用了一天,一切顺利,此前预览版中的问题没有碰到,就我而言已经可以当作主力系统使用。截至发稿时,适用于 Android N 的 SuperSU 刷机包已经释出,TWRP Recovery 也已可用。

本次升级最令人开心的一点,就是在初次启动进行初次设定的过程中,允许不联网进行设置了。这就免除了此前由于大陆网络原因无法连接 Google 的服务器,不拔卡或连上 Wi-Fi 后会卡在 Google 账户登录步骤上的问题。虽然并不是常用的功能,但的确免除了太多的麻烦,是我最喜欢的细节了。

其他关于 Android N 中与前代 Android 的各项差异,已经有无数的文章加以赘述,在此不再赘述。本文主要讨论一下关于内置中日韩字体 Noto Sans 的最新状况与个人根据需求的改进。

内置中日韩字体 Noto Sans CJK 方式的改变

从 Android L 开始,随着思源黑体(Source Han Sans)的发布,Android 便开始使用 Noto CJK 作为随机中日韩字体。

为了适配不同的使用需求,Noto Sans 很早就在自己的 Github 仓库中释出了采用不同打包方式的多个版本,具体信息可参见 Noto Sans CJK 的版本的介绍和选择指导。在 Android N 以前的系统中,随机附带的字体均为「Region specific OTF subsets」,而 Android N 开始,采用了「CJK OTC fonts (Thin, Light, DemiLight, Regular, Medium, Bold, Black)」的模式。如果从字体文件名上来看,就是从

NotoSans{JP, KR, SC, TC}-[weight].otf

变成了

NotoSansCJK-[weight].ttc

而没变的是,随机附带的仅有 Regular 字重。不过日文、韩文、正体中文、简体中文被打包在一起。

当然,相应的配置文件(仍是位于 /system/etc/font.xml)也发生了变化,关于中日韩字体的描述部分由类似

<family lang="zh-Hans">
    <font weight="400" style="normal">NotoSansSC-Regular.otf</font>
</family>

变成了

<family lang="zh-Hans">
    <font weight="400" style="normal" index="2">NotoSansCJK-Regular.ttc</font>
</family>

这样的形式,可以看到为了支持 OTC(OpenType Collection,后缀为 .ttc)而而增加的 index 属性。

一如往常,若是需要增加相应的字体的话,只需将字体文件拷贝到 /system/fonts/ 目录下,并在配置文件相应的行即可。具体可参见附录部分。

另外,拷贝之后需要格外注意的一点,拷贝过去的字体的文件的的权限需要为 -rw-r--r--(644),否则系统可能不能正常读取这些字体。

比较难过的是系统等宽字体默认还在使用 Droid Sans Mono,我还是手动把他们替换成 Roboto Mono 了(Github)。

虽然能够手动操作,但默认中日韩字体只采用单一字重、仍然没有用上「CJK OTF fonts with different default language」还是挺令人难过的,但对于 OTC 方式的支持,而且介绍页面有了它们的下载链接,不再需要去仓库里一大堆文件总还是方便了一些的。

继续阅读“Android N 升级与 CJK 字体”

将 Windows Phone 短信迁移到 Android

Windows Phone 不是一个坏系统。本来就来的晚,还有很坏很坏的更新支持(大部分内建 Windows Phone 8 的手机无法升级到 Windows Phone 10)等一系列坏体验,还有微软慵懒的开发周期,实在是让人心寒。而无法安装购买便宜货的 APP 成为压倒骆驼的最后一根稻草,使得母上大人终于从 Lumia 630 出走,在我推荐换到了 Android 系统的 OnePlus X。

相比其他的消息软件而言,短信是最易于处理的,也是最难处理的。当然这是针对微信这些有大公司背景的软件而言的。微信这些软件虽然提供了软件内备份功能,但却由于外部不可定制,损失了诸如定期备份、以及自己定制内容的自由,以及在各个平台上都能阅读的可能性。这是个自由度或者说是可能性的问题,虽然一定程度上为我们提供了方便。

而短信,作为一种通用型功能的存在,只要保证可交换格式文件的存在,总是可以读的。而本文中的 VMSG 与 XML 就是这样的两种格式。而开发者也会围绕着这些开放的文件格式搭出各种各样的工具,实现各种各样奇奇怪怪的功能,即使没有人做,自己也可以做。这也算是使用这些开放格式的幸福感的源头。

本文尝试从 VMSG 与 XML 两种文件格式来一窥短信存储的形式,并在其中搭设桥梁,让文件的交换从可能变为现实。


继续阅读“将 Windows Phone 短信迁移到 Android”