2009-10-19 11:52:55
| 分類:
預設分類
| 標籤:|字型大小
大中小訂閱
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了。
ps:
windows embedded ce提供了鏈結字型檔的能力,它可以將乙個或多個字型檔鏈結到另乙個字型檔上,前者稱為被鏈結字型檔,後者稱為基本字型檔。一旦你鏈結了字型檔,你就可以使用被鏈結的字型檔顯示在基本字型檔中不存在的碼字。比如,將日文字庫鏈結到拉丁字型檔,你就可以在使用拉丁字型檔的unicode文字api中顯示日文字元。
= ,
使用字型檔鏈結時,你可以規定乙個或多個unicode字元必須從被鏈結字型中取,即使這些字元也存在於基本字型檔中。要指定被從基本字型檔中忽略的字元,你可以使用hkey_local_machine\software\microsoft\fontlink\skiptable登錄檔鍵,此鍵在作業系統啟動時是唯讀的。
在下面的示例**中,某字元的unicode編碼為005c,雖然tahoma字型檔中包含此碼字,但仍然只使用被鏈結字型檔中的字元。
tahoma=005c, 00a5, 007e, 0391-03c9, 2026, 2116, 221a, 25a0-25ff
[hkey_local_machine\system\gdi]
"fontlinkmethods"=dword:1
[hkey_local_machine\software\microsoft\fontlink\systemlink]
"tahoma"=""
"courier new"=""
"arial"=""
"times new roman"=""
"symbol"=""
[hkey_local_machine\software\microsoft\fontlink\skiptable]
"tahoma"="005c,00a5,007e,0391-03c9,2026,2116,221a,25a0-25ff" // 0391-03c9 is greek chars.
"arial"="005c"
"courier new"="005c"
WinCE核心裁減(中文字型)及字型檔
每次定製中文系統時,nk總是比英文大10m左右,啟動時在bootloader中將核心copy到記憶體時也花時間,同時也占用了很多記憶體,留給系統和應用的記憶體就少了10m左右,真是浪費呀,看到都心痛!本人研究了一下,同時也參考了網上的資料,現總結如下,如何減少中文字庫大小和將字型檔放到外部存貯器上。...
WinCE核心裁減(中文字型)及字型檔和核心的分離
每次定製中文系統時,nk總是比英文大10m左右,啟動時在bootloader中將核心copy到記憶體時也花時間,同時也占用了很多記憶體,留給系統和應用的記憶體就少了10m左右,真是浪費呀,看到都心痛!本人研究了一下,同時也參考了網上的資料,現總結如下,如何減少中文字庫大小和將字型檔放到外部存貯器上。...
中文字型引用及壓縮
中文字型引用 如思源雅黑 解決chrome瀏覽器下 font face字型圖示出現鋸齒 要注意不同格式字型引用順序問題 eot svg ttf woff2 woff font face 安裝node.js 再開啟node.js command prompt 測試 node v 有版本號出來即成功 然...