通过更改字库文件组件及相关设置实现对NK进行裁剪(尤其适用中文简体系统)
2010-01-31 20:33
483 查看
最近有朋友在论坛询问如果将WINCE的NK裁剪得小一些,回复他之后顺便在此写篇文章说明一下。
通常我们在定制系统的时候会发现中文系统要比英文系统NK大10M左右,由此bootloader将内核copy到内存的时间相应变长一些,也导致占用额外的内存空间,其实可以通过选择不同的字库来对NK进行一定的裁剪。
首先我们来看当加入中文简体语言后系统默认选择的字体文件simsun.ttc(10MB)(文件目录:*:\WINCE500\PUBLIC\COMMON\OAK\FILES),有了它NK怎么可能不大呢,再看看其它几个类似的文件simsun_2_50.ttc(2.91MB)、simsun_2_50.ac3(1.91MB),如果用这个两个其中的一个NK就可以小多了,并且对中文显示没有影响。
OK,下边就是我们的工作内容了。
1、settings中设置中文。这个就不多说了。
2、选择组件:
在Catalog中,选择“Core OS”—>“International”—>“Locale Spectific Support —> “Chinese[Simplified]”
SimSun & NSimSun (Subset 2_50):添加该组件替换默认的simsun.ttc,这样至少可以瘦身7MB。
Agfa AC3 Font Compression:使用AC3对字库进行压缩,若CPU有300MHZ以上,建议添加该组件。添加则使用simsun_2_50.ac3,否则使用simsun_2_50.ttc,又减少了1MB。
GB18030 Data Converter:汉字编码标准集转换器,必须选上。
上边的工作都完成了重新sysgen,看一下生成的NK比先前小了很多。
另外,我们可以通过将字库文件保存到其它存储器使NK瘦身效果更加明显。通常我们的WINCE设备都会有个存储介质,再怎么小额外的几M空间还是会有的,我们就将字库文件保存在这个存储介质中。需要注意的是在加载显示驱动之前就要加载这个存储器的驱动,否则系统启动后所有的字都不能正常显示。
1、在platform.reg中添加如下
[HKEY_LOCAL_MACHINE\SYSTEM\GDI]
"FontLinkMethods"=dword:1
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontPath]
"FontPath"="\\Storage Card" ; 字库文件所在目录(我的一个NAND Flash盘符是这个名字,用这个名字的好处是在Visual studio中使用的Emulator有同样效果)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink\SystemLink]
"Tahoma"="\\Storage Card\\simsun.ac3,NSimSun" ;选择了压缩字库就用simsun.ac3,否则用simsun.ttc
"Courier New"="\\Storage Card\\simsun.ac3,NSimSun"
"Arial"="\\Storage Card\\simsun.ac3,NSimSun"
"Times New Roman"="\\Storage Card\\simsun.ac3,NSimSun"
"Symbol"=\\Storage Card\\simsun.ac3,NSimSun
2、在PBWorkspaces相应工程目录中common.bib文件中删掉simsun.ac3或simsun.ttc相关项,确认该文件不会编到内核中。
3、把字库文件copy到Storage Card中重新烧写刚make好的NK,再启动就完成了。
注意,如果bootloader中copy内核不是通过读取TOC等方式来确定要读取NK的大小就需要自己更改bootloader的内容,确保copy的大小尽量小且为完整的NK,这样启动时间便可以缩短,这也是我们要对NK瘦身的主要目的。
通常我们在定制系统的时候会发现中文系统要比英文系统NK大10M左右,由此bootloader将内核copy到内存的时间相应变长一些,也导致占用额外的内存空间,其实可以通过选择不同的字库来对NK进行一定的裁剪。
首先我们来看当加入中文简体语言后系统默认选择的字体文件simsun.ttc(10MB)(文件目录:*:\WINCE500\PUBLIC\COMMON\OAK\FILES),有了它NK怎么可能不大呢,再看看其它几个类似的文件simsun_2_50.ttc(2.91MB)、simsun_2_50.ac3(1.91MB),如果用这个两个其中的一个NK就可以小多了,并且对中文显示没有影响。
OK,下边就是我们的工作内容了。
1、settings中设置中文。这个就不多说了。
2、选择组件:
在Catalog中,选择“Core OS”—>“International”—>“Locale Spectific Support —> “Chinese[Simplified]”
SimSun & NSimSun (Subset 2_50):添加该组件替换默认的simsun.ttc,这样至少可以瘦身7MB。
Agfa AC3 Font Compression:使用AC3对字库进行压缩,若CPU有300MHZ以上,建议添加该组件。添加则使用simsun_2_50.ac3,否则使用simsun_2_50.ttc,又减少了1MB。
GB18030 Data Converter:汉字编码标准集转换器,必须选上。
上边的工作都完成了重新sysgen,看一下生成的NK比先前小了很多。
另外,我们可以通过将字库文件保存到其它存储器使NK瘦身效果更加明显。通常我们的WINCE设备都会有个存储介质,再怎么小额外的几M空间还是会有的,我们就将字库文件保存在这个存储介质中。需要注意的是在加载显示驱动之前就要加载这个存储器的驱动,否则系统启动后所有的字都不能正常显示。
1、在platform.reg中添加如下
[HKEY_LOCAL_MACHINE\SYSTEM\GDI]
"FontLinkMethods"=dword:1
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontPath]
"FontPath"="\\Storage Card" ; 字库文件所在目录(我的一个NAND Flash盘符是这个名字,用这个名字的好处是在Visual studio中使用的Emulator有同样效果)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink\SystemLink]
"Tahoma"="\\Storage Card\\simsun.ac3,NSimSun" ;选择了压缩字库就用simsun.ac3,否则用simsun.ttc
"Courier New"="\\Storage Card\\simsun.ac3,NSimSun"
"Arial"="\\Storage Card\\simsun.ac3,NSimSun"
"Times New Roman"="\\Storage Card\\simsun.ac3,NSimSun"
"Symbol"=\\Storage Card\\simsun.ac3,NSimSun
2、在PBWorkspaces相应工程目录中common.bib文件中删掉simsun.ac3或simsun.ttc相关项,确认该文件不会编到内核中。
3、把字库文件copy到Storage Card中重新烧写刚make好的NK,再启动就完成了。
注意,如果bootloader中copy内核不是通过读取TOC等方式来确定要读取NK的大小就需要自己更改bootloader的内容,确保copy的大小尽量小且为完整的NK,这样启动时间便可以缩短,这也是我们要对NK瘦身的主要目的。
相关文章推荐
- 通过更改字库文件组件及相关设置实现对NK进行裁剪(尤其适用中文简体系统)(转载)
- 通过更改字库文件组件及相关设置实现对NK进行裁剪(尤其适用中文简体系统)
- 通过更改字库文件组件及相关设置实现对NK进行裁剪(尤其适用中文简体系统)
- 通过编写rcS文件实现系统启动后进行一系列初始设置
- 通过Nginx访问FastDFS文件系统并进行图片文件裁剪的性能测试和分析
- scrapy相关 通过设置 FEED_EXPORT_ENCODING 解决 unicode 中文写入json文件出现`\uXXXX`
- 通过在xml布局文件中设置android:onClick=""来实现组件单击事件
- 组件设置window2008 64位系统无法调用Microsoft.Office.Interop组件进行文件另存的解决办法
- 通过Nginx访问FastDFS文件系统并进行图片文件裁剪的性能测试和分析
- 通过Nginx訪问FastDFS文件系统并进行图片文件裁剪的性能測试和分析
- 获取系统URL访问的前三名(通过Scala方式实现/通过Spark方式实现),Spark将URL访问日志进行分类并通过自定义Partitioner的方式将文件写入到不同分区上
- Hadoop入门(10)_通过java代码实现从本地的文件上传到Hadoop的文件系统
- 在xp中tc环境下实现的 销售管理系统(可切换繁体和简体,可设密码,可通过修改代码修改字体颜色)
- 通过批处理bat设置系统环境变量的实现代码,bat环境变量
- rhel6文件系统属性更改相关操作
- window2008 64位系统无法调用Microsoft.Office.Interop组件进行文件另存的解决办法
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- 关于windows server 2003 更改系统语言为中文简体
- 通过批处理bat设置系统环境变量的实现代码
- Android系统语言默认设置为简体中文