一次白屏事故引发的反思——从“被动防守”到“主动抵御”

  上周,FontRouter2开始了第一次小范围的Alpha测试,主要针对新版本的稳定性和兼容性。

  起初,一切都进展的很顺利,直到一个朋友在它的N-Gage上升级了新版本后导致了一次不可逆转的灾难——“白屏”!而在这次残酷的事故面前,FontRouter2开发初期所精心设计的启动保护机制显得是如此脆弱和不堪一击……

  虽然此次事故的教训非常惨痛(严重打击了这位积极支持Alpha测试的好友,并且有损FontRouter2的正面形象 – -!),但在认真反思了整个启动保护机制的设计后,我走出了“被动防守”思维的误区,重新规划了一个崭新的以“主动抵御”为标志的保护机制!

  早前“被动防守”的保护机制主要基于以下两个特征:
  (1)动态跟踪启动各阶段的运行状态,连续3次启动失败后将在后续启动时阻止FontRouter2加载;
  (2)通过在MMC卡根文件夹下创建一个特定名称的文件,可以在系统启动时阻止FontRouter2加载。

  表面看起来,以上策略已经算是较为完美了(正如我以前所自诩的),但问题就出在其“被动性”。FontRouter2倒是不再加载了,但真正引起白屏的罪魁祸首却并不是FontRouter2本身,而是一个有“缺陷”的字体文件。就好比你是一个网络管理员,当网络出现故障的时候,你应该做的并不是离开工作岗位,以示自己的清白,而是去找出故障的根源将其消灭。

  为了体现积极的“主动抵御”,现规划的启动保护机制将具有如下新特征:

  检测到启动故障(或是MMC卡根文件夹下的特定文件)后,将禁止系统加载所有ROM以外的字体文件。这样一来,任何非系统自带的字体文件都会被屏蔽掉,就完全等同于出厂时的字体设置了。

  从这个问题本身发散开来,一个看似不起眼的启动保护机制,如果用心去做,也能挖掘出一些潜在的用户价值。例如,为了抵御除字体外其它未知软件因素引起的白屏,可以引入在必要时“自动格式化C盘”的机制(当然,这是需要严格的策略加以谨慎保护的),更体贴一点,还可以在格式化前自动将“联系人”、“个人事务”等重要信息转移到安全的地方(如MMC卡)。这样一来,即使手机出现意外无法启动的情况,也能保护重要数据不致因维修而丢失。

《一次白屏事故引发的反思——从“被动防守”到“主动抵御”》有13个想法

  1. 大侠,你好。有些字体问题求教。
    我一个xmbdfed获得GBK点阵字体,但是转换成gdr时N-gage总是某些字可以显示,某些字成一团黑。阅读软件打开文本时出现程序关闭。为何?
    fnttran.exe版本39和41都试过。
    或者您能否给我一套bdf文件、gd文件和fnttran文件,我想研究研究。谢谢。mingice@msn.com

  2. 抱歉,我基本上不用QQ。制作字体技术方面我了解的不多,但如你所说出现“一团黑”的情况,我猜想可能是fnttran的版本不对。Symbian6.1和7.0所使用的gdr字体格式是有差别的,所以为N-Gage制作字体必须使用Nokia S60 SDK 1.2中的fnttran。

  3. 大侠,好高兴再见到你。自从WDA一别后两年来朝思暮想~~~:P

    今天找关于agfafontraster.dll的信息误打误撞来到这,一来就看到了关于fontrouter2的消息,呵呵~~希望在N70上能有好的表现吧。现在的N70用不了旧版的fontrouter,只能靠字体本身,可是效果很不理想啊。我是大菜鸟,帮不上什么忙,只能精神支持和默默期待了~~~

  4. 呵呵,我的心情和楼上是一样的,今天看到大侠的fontrouter2正在开发,心情委实高兴,请大侠开发fontrouter2千万别忘记了支持n70以后的机型啊!

  5. FontRouter2一方面会支持新型号的手机(如N70),另一方面也不会放弃早期的型号(如SX1,我自己也还是用的NG);S60第三版可能无法在第一时间支持,但也在计划中。:)

  6. 换个N70试试啊,^_^,主动检测占用系统资源比较大,而且稳定性上也要考虑的,是开机自动检测,动态保护的才行。

发表评论

电子邮件地址不会被公开。 必填项已用*标注