zoukankan      html  css  js  c++  java
  • wince字体文件和内核的剥离

    每次定制中文系统时,NK总是比英文大10M左右,启动时在bootloader中将内核Copy到内存时也花时间,同时也占用了很多内存,留给系统和应用的内存就少了10M左右,真是浪费呀,看到都心痛!本人研究了一下,同时也参考了网上的资料,现总结如下,如何减少中文字库大小和将字库放到外部存贮器上。核心思想是将默认选择的中文字体SimSun & NSimSun (SYSGEN_FONTS_SIMSUN)替换成SimSun & NSimSun (Subset 2_50) (SYSGEN_FONTS_SIMSUN_2_50)达到体积的缩小。在注册表中[HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\FontPath]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink \SystemLink]改变字库simsun.ac3或simsun.ttc的存贮位置。

     

    一、减少中文字库大小

    1.先打开目标的工程文件,单击“Platform”菜单,再单击“Settings…”,执行”clear” ,

    Locales:将”英文(美国)”“中文(中国)”打勾

    Default languare:选择“中文(中国)”

    完成第1步后,工程中采用默认的是新宋字体

    2,回到Catalog,选择“Core OS”—>“International”—>“Locale Spectific Support”

       —> “Chinese[Simplified]”

    ▲ Agfa AC3 Font Compression:使用AC3对字库进行压缩,若CPU有300HZ以上,建议选上;这个可以根据自己的需要选还是不选.

    ▲ SimSun & NSimSun (Subset 2_50):字体大小是3M左右,WINCE选择Subset 2_50是最合适的,所以用(Subset 2_50)中文字体替换原来的中文字体,选择SimSun & NSimSun (Subset 2_50),按右键添加该组件即可,这样就会把原来的字体替换掉。这样对中文显示又没有影响又达到内核瘦身的效果。必须选上;

    补充:在没有压缩字体的情况来,默认选择的新宋字库大小是10M多,文件为simsun.ttc,若选择Subset 2_50版本,文件为simsun_2_50.ttc,字体大小是将近3M,也是对WinCE体积进行裁剪关键所在。当然如果选择了AC3对字库进行压缩,哪么体积还可以进一步缩小,压缩后的文件为simsun_2_50.ac3,体积就只有不到2M。

    字库所在目录:D:\WINCE500\PUBLIC\COMMON\OAK\FILES

    ▲ GB18030 Data Converter:汉字编码标准集转换器,必须选上

    3,重新进行Sysgen,这样做出来的系统,既能正常显示中文,又不用担心NK体积过大。

    二、将字体保存到外部存贮器上来减少内核的大小

       网上有很多介绍将字体保存到SD卡、Flash等来减少内核的大小,但要注意一点就是:在加载显示驱动前就要加载保存字体的存贮设备的驱动,否则中文字体不能加载,系统启动后显示框框。将字体保存到注册表保存的存贮设备上,因为该存贮设备驱动很早就加载了。

    而我使用的是硬盘,注册表需要作如下修改

     1、在platform.reg中添加如下

    [HKEY_LOCAL_MACHINE\SYSTEM\GDI]

        "FontLinkMethods"=dword:1

     [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontPath]

        "FontPath"="\\Hard Disk" ; 字库文件所在目录

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink\SystemLink]

          "Tahoma"="\\Hard Disk\\simsun.ac3,NSimSun" ;我是用的压缩字库,所以为simsun.ac3。

          "Courier New"="\\Hard Disk\\simsun.ac3,NSimSun"

          "Arial"="\\Hard Disk\\simsun.ac3,NSimSun"

          "Times New Roman"="\\Hard Disk\\simsun.ac3,NSimSun"

          "Symbol"="\\Hard Disk\\simsun.ac3,NSimSun"

    2、在工程目录中common.bib文件中删掉simsun.ac3相关项,确认该文件不会编到内核中。

    3、把文件拷到Hard Disk中,即可,再启动ok了。

    个字库,可使用;号隔开。例如:

    "Tahoma"="\\Boot Disk \\Windows\\simsun.ttc,NSimSun; \\Boot Disk \\Windows\\mingliu.ttc,PMingLiU"

  • 相关阅读:
    一篇笔记整理JVM工作原理
    深入理解java异常处理机制
    Javaee----重新回顾servlet
    dubbo框架----探索-大型系统架构设计(图解)
    Java 中浮点数---------BigDecimal和double(初探)
    dubbo框架----初探索-配置
    ConcurrentHashMap-----不安全线程hashmap-安全线程-hashtable
    Maven Eclipse (m2e) SCM connector for subclipse 1.10 (svn 1.8) 无法检测
    从svn检出项目---------不是web项目
    Java当中的内存分配以及值传递问题内存解析
  • 原文地址:https://www.cnblogs.com/Jade2009/p/1595086.html
Copyright © 2011-2022 走看看