久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Android替換字體時需要注意的一些問題

 星辰柳風閣 2011-08-29

Android替換字體時需要注意的一些問題

Android是一個典型的Linux內(nèi)核的操作系統(tǒng)。在Android系統(tǒng)中,,主要有DroidSans和DroidSerif兩大字體陣營,,從名字就可以看出來,前者是無襯線字體,,后者是襯線字體,。具體來說,一共是這幾個字體文件:(位于 /system/fonts 目錄下,,需要root權限查看)

  • DroidSans-Bold.ttf   粗體的無襯線字體(拉丁字母等)
  • DroidSans.ttf   常規(guī)的無襯線字體(拉丁字母等)
  • DroidSansFallback.ttf   常規(guī)的無襯線字體(中文字符等)
  • DroidSansMono.ttf    等寬的無襯線字體(拉丁字母等)
  • DroidSerif-Bold.ttf    粗體的襯線字體(拉丁字母等)
  • DroidSerif-BoldItalic.ttf    粗體+斜體的襯線字體(拉丁字母等)
  • DroidSerif-Italic.ttf    斜體的襯線字體(拉丁字母等)
  • DroidSerif-Regular.ttf    常規(guī)的襯線字體(拉丁字母等)

除了這些字體文件,,有些修改版本的 ROM,比如 CyanogenMod 5.0.8 ,,還會有 Clockopia.ttf 之類的文件,,從名字就可以看出這是顯示數(shù)字時鐘時用的字體。

上面提到的這些字體中,,除了 DroidSansFallback.tff ,,其它的一律不包含中文字體。而 DroidSansFallback 中的中文字體,,是一種類似于文泉驛微米黑的字體,,只是它的字庫非常小,字符數(shù)量很少,,估計只有 GB2312 的字符集,,稍少見一些的字都是不包含的,比如我同學名字里有“祎”這個字,,在聯(lián)系人里就顯示為一個方框,。

二、替換字體

這樣的小字庫是不能令人滿意的,,而且,,這種字體看久也覺得厭了,特別是在 iReader (Android電子書閱讀軟件)中看久了,,就會覺得筆劃越來越粗,,長時間看了就疲勞了,。那么替換字體也就顯得很自然了。Android用的是標準的TrueType字體,,因此只要把電腦里滿意的字體改名后直接復制到 /system/fonts 目錄下,,用root權限覆蓋掉原來的字體文件就好了。

其他文章中提到過,,我嘗試了替換字體,,我一開始是用的真正的Unicode的微米黑字體(這個字體的大小是4MB,系統(tǒng)原來的是3MB)替換的,。但是有一些奇怪的問題,。具體表述如下:

  1. 只替換DroidSansFallback.ttf,則一些嘗試調(diào)用DroidSans和DroidSans-Bold的地方的字體都會顯示為方框,,整個手機只有英文字體和一小部分的中文字體可以顯示,其它大部分都是方框,。
  2. 如果把 DroidSansFallback, DroidSans, DroidSans-Bold 三個字體文件都替換,,則不會有方框,但是系統(tǒng)里再也區(qū)分不出粗體與普通字體了,。而且還要考慮到字體文件大小的問題,,有些版本的ROM刷了之后 /system 下的剩余空間是很小的,放三個大字體根本不現(xiàn)實,。(后面要提到的麗黑是8MB,,蘭亭黑是7M,雅黑則是14MB到20MB不等)
  3. 最詭異的來了,,替換字體后,,剛開機是沒有問題的,問題就在過了一段時間后,,所有的字體都會消失,!所謂消失,就是所有該有字的地方都變成了空白,,空白一片,。這種情況出現(xiàn)的沒有任何先兆,一般是開機用了一段時間就會有這種情況出現(xiàn),。如圖:

android-font-missing-1 android-font-missing-2

android-font-missing-3 android-font-missing-5

android-font-missing-4

這種事情真是非常的令人討厭,,我還因為這件事情誤格式化過一次microSD卡。(因為看不見按鈕上的字)

三,、問題何在,?

出現(xiàn)了這種問題,自然要想辦法去解決,。我仔細觀察回想了一下,,一般都是開機之后運行了一些比較耗RAM的程序才會出現(xiàn)這種問題,。比如開機之后運行Opera Mini 5,打開12個標簽以上,,右上角的時間字體就會消失,,Action Bar里的文字也會同時消失,這種問題就重現(xiàn)了,??紤]到RAM用了多了之后字體就消失了,我推斷事情是這樣的:開機載入了字體,,放在RAM里,,但是這種新替換的字體比系統(tǒng)自帶的字體文件體積大很多,所以需要更多的RAM,,而在運行了一些大程序之后,,RAM不夠了,字體文件就被踢出了RAM,。

真的是這樣嗎,?我當時認為的確是這樣的,所以我干脆決定不用新字體了,,就用老字體吧,,就把之前備份的老字體文件全部用Root Explorer覆蓋回去了,重啟?,F(xiàn)在應該沒問題了吧,?我故意運行了幾個大程序……結(jié)果問題又重現(xiàn)了。

這就奇怪了,,最早用老字體是從來沒有這個問題的,,換了新字體之后問題出現(xiàn),但是用備份文件恢復到老字體,,怎么還是有問題呢,?

在后來相當長的一段時間內(nèi),我一直想不通這件事情,,甚至還憤怒地把DroidSansFallback.ttf給刪除了……當然,,開機不能了。

重新用update.zip恢復了一下,,冷靜下來思考,,替換前和替換后有什么是改變了的呢?在Root Explorer再仔細看看……似乎是權限改變了,!

Linux文件系統(tǒng)里的文件都是有權限的,,且與Windows文件系統(tǒng)里的權限概念有一些區(qū)別。三個權限者,,Owner, Group, World(Other),,每人都有三項權限,,分別是 Read(r), Write(w) 和 Execute(x) 。其中代表Read的數(shù)字為4,,代表Write的數(shù)字為2,,代表Execute的數(shù)字為1,這樣就可以用1-7的自然數(shù)還表示不同的權限,。比如R+W就是6,,R+W+X就是7,R+X就是5,,等等,。三個權限者分別排列,就有了755,,777等這樣的代表權限組合的數(shù)字,。

Linux的這套權限系統(tǒng)可以用chmod命令來修改,但是在Root Explorer里修改起來更加方便一些,。

長按文件,,然后就有一個Permissions的選項,點擊之,,打開的窗口里就可以改權限了,,當然前提是 mount as r/w,。

如下面左圖,,這是 /system/fonts 目錄下原生的一個文件,而右圖則是從 /sdcard 里復制進去的文件,,對照兩張圖就可以看出權限發(fā)生了改變,。(由644變成了075)

從圖中可以看到,原來的文件對于User來說是有R/W權限的,,而從 /sdcard 里復制進來的文件對于User是沒有R/W權限的,。這就是問題所在了!這也很容易解釋,,為什么最早不會有字體消失問題,,然后替換了字體(從外面復制進來權限不正確的字體)后字體就消失了,但是用備份文件恢復(重新又從外面復制進來字體)后,,字體消失問題還是存在,!這是因為在復制過程中,由于文件系統(tǒng)的不統(tǒng)一(ext2和FAT32),,導致權限錯亂,。

四、如何解決,?

知道了問題的所在,,解決起來就非常容易了——在替換完字體之后不要急著重啟,,一定要對照其它的文件,把新復制進來的那些文件的權限改成正確的644,!

五,、特別關照

  1. 字體是放在 /system/fonts 目錄下的,這個目錄屬于 /system 分區(qū),,因此你先要確保 /system 分區(qū)的剩余空間是夠的,。
  2. /system 分區(qū)剩余空間不夠怎么辦?那就刪除自帶的程序,。由于我做了Apps2SD,,所以我的 /data 分區(qū)( /sd-ext 分區(qū))的剩余空間是足夠的,那么就可以把系統(tǒng)自帶的程序移到 /sd-ext 下面,?怎么移動呢,?參照這篇文章:《如何把Android自帶程序移動到其它分區(qū)以騰出 /system 分區(qū)的空間》
  3. 對于屏幕顯示來說,,還是無襯線字體比較適合,,襯線字體么,還是讓它們在印刷上發(fā)揮作用吧,。我看到有一些人把那些“華康少女簡體”之類的手寫襯線字體當作Android的默認字體……這實在是不恰當?shù)男袨?。雖然一開始會覺得很驚艷,但是時間長了之后眼睛會疲勞,,對視力并不好,。所以還是要選無襯線字體的好。

六,、字體推薦

 

 

 
 
 

 
 
 

看上面這四幅圖,,前三張是我在Android上實際截圖得到的,分別是用蘭亭黑,、麗黑,、雅黑作為默認字體。最后一張是Windows 7里微軟雅黑字體的顯示效果,。需要注意的是,,雖然我的系統(tǒng)里以注冊表方式加載了GDI++,但是我在截那張圖的時候是用GDI++Inject把Notepad.exe的GDI++模塊卸載掉的,,所以最后一張圖是沒有任何額外渲染的本來效果,。

都說實踐出真知,通過這次替換我才真正嘗試出了最適合Android的字體,。同一個字體,,在不同的系統(tǒng)里、以不同的方式渲染,顯示出來的效果也是有很大不同的,。比如蘭亭黑在Ubuntu下面好看的,,在Android下就很一般,麗黑是Mac OS X的默認字體,,有多漂亮大家肯定都見到過,,但是在Android上的顯示效果呢?筆劃粗大,、粘連,,看得時間長了很容易眼疲勞。而微軟雅黑這款MS花了重金打造的字體呢,?它的Windows下的顯示效果……說真的,,很差。至少不用第三方字體渲染的情況下很糟糕,,可是,,當我抱著試試看的態(tài)度把它復制到Android之后,我才發(fā)現(xiàn)它的顯示效果如此之好:字面大,、筆劃清晰,、結(jié)構平穩(wěn)、構架勻稱……簡直是Android下的極品字體啊,。

這樣的字體哪里有,?心動的同學就不要到網(wǎng)上去搜索了,網(wǎng)上很多是修改版本的,,雖然字體小,,但是具體改了什么東西我就不清楚了,我不能保證它能像圖中顯示的那么好看,,所以……大家可以像我一樣,,從Windows 7的字體目錄里復制,。(默認是 C:\Windows\Fonts )

(全文完)
 
 

轉(zhuǎn)載時請標注本文地址,,http:///post/234.html 謝謝。

 
 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多