首頁 > 手機軟體

Android漢化和修改基礎

2019-11-27 15:14:58
下面介紹一下Android系統最簡單最基本的漢化和修改技術。
1.APK簡介Android系統的應用層基於Java語言,採用Delvik虛擬機器實現Java程式的執行。與普通的Sun-Java不同,Android的Java應用程式除了要編寫classes以外,還要編寫XML來對程式的佈局和資源進行定義。Android系統的安裝包為APK(Android Package)檔案,與普通的JAR檔案相同,APK檔案也可以使用WinRAR一類的解壓程式直接開啟。圖中,Classes.dex就是編譯好的程式的核心原始碼,決定著這個APK具有什麼功能和特性,resources.arsc是程式主要的語言資源,當中也包含一些值(程式的一些重要引數)的定義;另外在res檔案夾裡有定義UI布局的檔案夾layout,為XML檔案,當中也可能包含少量的語言資源;META-INF檔案夾是APK的簽名,類似於Symbian S60的簽名,也就是說APK必須簽名之後才能在手機上安裝,但有一定的區別,這裡不多做說明,因為漢化和修改還涉及不到深層次的簽名知識。
2.ARSC和XML漢化前面已經簡要分析了Android安裝包APK的結構,可能有人覺得介紹得太「簡單」了,要紮實的基本功,不是要深入了解原理嗎,在Symbian S60上,要真正成為一個優秀的漢化/修改者,需要的是紮實的基本功,這樣才能在出問題的時候找到問題的所在,這個道理在Android上同樣適用,但不是在了解原理上,更重要的「經驗」,因為原理很簡單―在本文還涉及不到。

1

漢化工具介紹
前面已經說過,APK的語言資源主要就在ARSC中,那麼如何修改這個ARSC呢?現在就請出「Android漢化狂人」!「漢化狂人」在S60平台上已經小有名氣,而漢化浪子也開發出了專為Android系統而生的「Android漢化狂人」。它可以直接開啟APK,分析包內的圖片、XML和ARSC檔案,還支援字典的匯入和匯出,一點不比S60的漢化狂人弱。我們現在就拿一枚英文軟體’‘開刀」吧。

2

ARSC和XML漢化範例
1.以「Full Screen Caller ID」這個軟體為例。我們先將它的APK拖拽到漢化狂人的視窗中,點開res下拉式選單,找到resources.arsc檔案,點選開啟。
2.在視窗右邊,我們可以看見語言資源已經以列表的形式向我們展現出來了。我們還可以發現,這個ARSC是多語言的,包含了除英語以外的12種語言。
3.Android系統對於ARSC中沒有本地語言的應用程式,會預設使用英語,所以我們就要對ARSC中的英語部分進行漢化了。雙擊英文詞條,將英文翻譯成中文,翻譯好之後點選「確定」即可。
4.之後的資源同理,一個一個耐心地翻譯,完成之後點選一下左邊的列表中的其他XML檔案,會彈出一個提示框,點選」確定」即可儲存你的修改。修改過的檔案會在前面的框中打上勾。
5.前面也說過,程式的一些語言資源會出現在XML中,所以我們在儲存之前,還可以檢查一下XML裡是否有其他的語言資源。XML檔案和ARSC檔案不同,ARSC作為純粹的語言檔案,裡面是沒有過多的別的資源的;而XML中還包含了很多程式的UI布局方面的資訊。所以XML檔案是不能隨便修改的,否則程式就會出現問題。
6.那具體哪些可以修改,哪些又不可以修改呢?簡單的說,以小寫字母開頭的、不以字母開頭的、幾個單詞合併到一起的,還有諸如Text、View、Button等單詞,是不能隨便漢化的,因為這些可能是Iayout的內容,而不是語言資源。具體的哪些可以漢化哪些又不可以漢化,就要憑自己的經驗了。



3

ARSC和XML漢化小技巧
Android漢化的資源非常龐大,一般的一個程式需要漢化的詞條都在100以上,以我們舉例的‘'Full Screen CalIer ID」來說,它的ARSC中需要漢化的詞條有180多個,而且其中還有很多是長句。所以我們不能只顧眼前,而不為以後的漢化留下什麼東西,否則每一次的漢化工作量將會非常巨大。我相信不是所有人都有那麼多精力,每次都耗費幾個小時的時間來做漢化的。而且很多人可能發現,如果直接在漢化狂人的介面中漢化,有時候如果要搜尋某個詞條,只能以首字母的方式一個一個的找,很費事費力。
所以我們需要一些小技巧——利用字典的的功能。點選’‘檔案->匯出字典->全部英文詞條」。儲存好之後,直接用記事本開啟匯出的字典,會看見所有的詞條都以列表形式展現在大家眼前。現在我們需要在需要漢化的詞條後面輸入漢化的內容,全部漢化好之後儲存,這樣一個字典就做好了。
現在我們在漢化狂人的介面中點選’‘檔案->匯入字典",將我們製作好的字典匯入到ARSC中,看吧,神奇的事情發生了!
檢查一遍無誤後,按照之前的方式儲存好漢化後的ARSC就行了。這樣做的好處是,既儲存了漢化的字典,以便在以後的漢化中使用,也方便在漢化的過程中直接使用Ctrl+F來搜尋詞條,一舉兩得,非常輕鬆。



4

APK的簽名
當所有的ARSC和XML都漢化完成後,我們就要對整個APK檔案進行儲存了。按快捷鍵Ctrl+S直接儲存APK檔案,「確定」後,就會彈出儲存完成的提示,隨後還會提示「簽名完成」。
Android漢化狂人在直接漢化APK檔案的時候,儲存時會自動對APK進行簽名。而在單獨漢化ARSC和XML檔案的時候,由於沒有開啟APK檔案,所以不會有簽名,這時我們在替換好這些檔案後,要手動對APK進行簽名。按快捷鍵Ctrl+A,選擇好需要簽名的APK後,點選「立即簽名」就行了。
APK檔案之前不是已經簽名了嗎?為什麼還要再簽名呢?因為APK檔案在進行簽名的時候,是會對包內的所有檔案做一次加密計算的,以計算的結果來決定簽名檔案。現在我們修改了APK中的內容,那麼計算的結果就不一樣了,所以需要重新簽名。另外,使用漢化狂人的簽名工具簽名出的驗證檔案分別為CERT.RSA和CERT.SF,而有的APK中的原始驗證檔案可能是其他的,這樣在簽名後會出現多個RSA和SF檔案,我們需要用WinRAR把APK開啟,把以前的驗證檔案刪掉。所以,這裡建議大家在漢化以前先用WinRAR開啟APK,將META-INF檔案夾直接刪除,漢化好之後再重新簽名,這樣就不會出問題了。




IT145.com E-mail:sddin#qq.com