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了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】深入浅出理解有限状态机

转自:深入浅出理解有限状态机 - 知乎 有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在计算机科学中,有限状态机被广泛用于建模应用行为、…

2010读书计划

跟别人学着将今年想看的书发出来: 1.Implementing Lean Software Development --Mary and Tom Poppendieck 2.沉浮 3.Algorithm of the intelligent web --haralambos Marmanis 4.数据结构-严蔚敏 还有今年是比较重要的一年,加油。。。转载于:https://ww…

wince 环境变量

wince工程的环境变量在PBInitEnv.bat文件中存储,经测试,如果在下面增加了新的变量,在此文件中会出现

【转】vs平台工具集介绍,vc6~vs2019各IDE对应的工具集版本

转自:vs平台工具集介绍以及安装 - jack_Meng - 博客园 一、什么是平台工具集: 平台工具集其实是MSBuild其目录所在C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0。VS从2010之后开始支持使用之前的版本进行编译,可以在工程属性->常…

基于FPGA的前向纠错算法

目前,无线产品的广泛应用使无线音频和视频的高质量传输成为可能。蓝牙、无限局域网等无线传输设备比较复杂,成本较高,急需 开发一种简便的、仅用于流媒体的无线传输平台,将音频数据实时地发送到移动终端。由于音频数据的实时性&am…

wince编译时找不到atls.lib

NMAKE : fatal error U1073: dont know how to make C:\WINCE600\OSDesigns\x210\x210\Wince600\SMDKV210_ARMV4I\cesysgen\oak\lib\ARMV4I\retail\atls.lib 需要选择ATL

【转】Windows版本,OS内核版本,Windows SDK之间的关系

转自:Windows版本,OS内核版本,Windows SDK之间的关系 - 知乎 前言:我们经常会会被几个概念弄混淆,什么是Windows版本号,什么又是操作同内核版本,开发C的时候什么又是WindowsSDK,实际…

ADO.NET Entity Framework 使用中的经验总结

ADO.Net EF框架非常的灵活,好的习惯可以提高性能,而不好的习惯就会减少性能,为了提高性能简化开发,总结网络给出下面的经验。 1.如果要扩展实体类的功能,应该通过“部分类”(partial)实现 2.如果需要借助ObjectContext…

怎样在PropertySheet中添加按钮

1、用ClassWizard从CPropertySheet中派出出一个类CMyPropertySheet; 2、在CMyPropertySheet.h中添加一个成员变量CButton m_ButtonCopy;在资源文件resource.h中添加一个资源ID:#define IDC_BUTTON_COPY 0x2000,这个ID就是我们将要用到的Copy按钮的ID&#xff…

【转】30分钟学会UML类图

转自:30分钟学会UML类图 - 知乎 30分钟学会UML类图 肖继潮 UML图有很多种,但是并非必须掌握所有的UML图,才能完整系统分析和设计工作。一般说来,在UML图中,只要掌握类图、用例图、时序图的使用,就能完成大…

Microsoft SQL Server 2005数据库安装

Microsoft SQL Server 2005数据库,电脑里原有的mssql2000已经不适用了,到网上寻找SQL Server 2005简体中文开发版的下载地址,一开始下载了个学习版的express,可限制太多,还是决心安装开发版本的。到微软的官方网站寻找…

深入浅出 CPropertySheet

为了最大限度的发挥属性页的效用,首先让我们先从 CPropertySheet 继承一个新类,取名为 CMyPropSheet. 接着便可以进行下面的各种操作: 一、隐藏属性页默认按钮 隐藏掉Apply应用按钮: view source print?1.propsheet.m_psh.dwFlags | PSH_NOAPPLY…

【转】make makefile cmake qmake都是什么,有什么区别?

转自: 作者:知乎用户 链接:https://www.zhihu.com/question/27455963/answer/89770919 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 1.gcc是GNU Compiler Collection&#xf…

WinCE 字体平滑 ClearType

WinCE 5.0 字体效果糙,英文字体(Zurich)可以在代码里面设置ClearType,中文字体不行。 解决方法: [HKEY_LOCAL_MACHINE\System\GDI] "FontLinkMethods"dword:00000000 [HKEY_LOCAL_MACHINE\System\GDI\Cle…

用ASP.NET 2.0设计网络在线投票系统

一、系统功能设计和数据库设计 1、系统功能设计和数据库设计 1.1 系统功能设计 网络在线投票系统实现的功能比较简单,具体如下: ◎投票项目的管理; ◎添加投票的项目; ◎删除投票的项目; ◎对项目进行投票&#xff1…

Convert.Int32、(int)和int.Parse三者的区别

今天去面试,碰到这样一道题目,回来查了下答案~! Convert.ToInt32、(int)和int.Parse三者的区别: 前者适合将object类类型转换成int类型,如Convert.ToInt32(session["shuzi"]); (int)适合简单数据类型之间的转…

Wince6.0 cleartype

WinCE6.0下显示宋体毛刺很严重,影响显示效果,打开cleartype以后字体显示平滑,但是不知道为什么wince桌面上的中文字体显示乱码,而且自己的引用程序也变的很卡。 开始以为是字库的原因,后来添加了系统的组件以后一切正常…

【转】ubuntu16.04安装配置tftp服务

转自:ubuntu16.04安装配置tftp服务_carspiriter的博客-CSDN博客_ubuntu安装tftp 首先声明:tftp是client客户端,tftpd是server服务器端,d应该指的是daemon。如果你要从别人的tftp服务器端上传/下载东西,就要用到tftp&a…

如何编程得到数据库信息

获取数据库信息&#xff1a;public List<string> GetDatabase(string connectionString) {using (SqlDataAdapter sqlDataAdapter new SqlDataAdapter("SELECT Name FROM Master.sys.SysDatabases WHERE dbid > 4 ORDER BY Name ", connectionStrin…

【转】Dicom中的Image Orientation/Position的理解

转自&#xff1a;Dicom中的Image Orientation/Position的理解 - 知乎 在DICOM中&#xff0c;是通过Image Position和Image Orientation来描述当前的图像和人体坐标系的相对位置的。 打开DCM文件时&#xff0c;会发现下边的两个tag (0020,0032) DS ImagePosition(Patient) &q…