APK應用程序的解包、修改、編輯、打包及應用(三)

第一部分:apk應用介紹,解包和打包,常用軟件

http://blog.csdn.net/kuangren_01/article/details/9318977

第二部分:三星閉源系統apk文件的處理,漢化和簽名

http://blog.csdn.net/kuangren_01/article/details/9319027

第三部分:介紹apk文件打包解包的各種應用

http://blog.csdn.net/kuangren_01/article/details/9319049



在第一和第二部分中,我們花了大量的篇幅來介紹apk文件的結構,apk文件的解包、修改、編輯、打包、簽名,以及所需要的工具。我寫的很累,你們讀着一定也會很累。內容很多,篇幅又長。在這一部分裏,談點輕鬆的來結束第三講。

爲什麼要對apk文件進行解包?當然要對其內容進行必要的修改。修改什麼呢?在第二講中,我們對apk進行了漢化。其實漢化只是一個應用而已。下面,根據我的經驗和知識來介紹一下apk文件解包和打包的各種應用。一般來說,就是爲了修改和美化。更進一步,就是爲了定製ROM。

爲完整起見,先簡要地介紹一下對apk文件的非解包修改問題。也就說,在不使用第一部分的apk解包打包工具的情況下,我們能對apk文件的哪些內容做些修改?用WinRAR打開一個apk文件,你會看到有一個文件夾/res,進去後,你有會看到有一個子文件夾/drawable或多個文件夾。如果有多個子文件夾,之中會有一個/drawable-hdpi。挨個都打開看看。這些子文件夾都是放一些圖片和xml文件的。你可以對所有的圖片進行刪除、替換、添加。如果替換,切記文件名要一致。一個大家都熟悉的例子是替換/修改電池顯示圖標。但是,你無法對xml進行修改。如果要對文字和其它非圖像類內容進行修改,那隻能通過解包解碼了。

好了。現在我們回到這一部分的主題,來介紹apk文件解包和打包的各種應用。下面幾項任務需要對apk文件進行解包和打包。其實我在以前的帖子裏介紹過,這裏只重複簡單介紹一下,請自己去讀參考資料和找詳細的操作方法和教程。

1) 漢化apk應用程序

在第二部分詳細講過。再次不再敘述。

2) 修改圖標標籤

每一個apk文件都有一個“圖標標籤”。將apk程序安裝進手機後,在圖標下面顯示圖標標籤文字。這個圖標標籤的內容是可以修改的。在\res\values下找到strings.xml,修改其中的一行:
<string name="app_name">圖標標籤</string>
例如:<string name="app_name">靜音啓動</string>
同理,如果是窗口小插件,要修改widget_name。


3) 去掉apk中的廣告

有很多apk應用都帶有廣告。爲了去掉程序中的廣告,要修改main.xml文件與廣告有關的內容。在/res目錄下找到文件main.xml。通常在/layout目錄下,有時也被放在其它目錄下。甚至,有時不存在main.xml文件,廣告行被放在其它xml文件內。只能細心逐個文件進行查找。無論哪一種情況,查看其內容,你會看到有一項類似的命令如下。這就是廣告顯示。
<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”fill_parent” android:layout_height=”wrap_content” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” />
將其改爲:
<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”0.0dip” android:layout_height=”0.0dip” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” />
可以看到,關鍵是要把fill_parent改爲0.0dip,把wrap_content改爲0.0dip,其它內容保持不變即可。這種改法就是不給廣告顯示空間,當然你就看不到廣告了。

4) 修改電池顯示精度

在官方I897 ROM裏,默認的電池顯示精度是5%。我們希望把顯示精度增加到1%。這個需要通過修改主題文件framework-res.apk來實現。你們今天ROM裏每變化1%電量就顯示一次的主題,就是這樣做出來的。

修改步驟如下:
(1) 對framework-res.apk進行解包
(2) 修改和增加電池狀態圖標(可以從其它ROM中提取)
(3) 修改文件stat_sys_battery.xml (每隔1%顯示一次)
(4) 修改文件stat_sys_battery_charge.xml(對應新的充電動畫)
(5) 打包
(6) 提取stat_sys_battery.xml,stat_sys_battery_charge.xml,resources.arsc和一個圖標目錄:drawable-mdpi
(7) 重新裝配framework-res.apk


5) 狀態欄信息通知文字顏色修改

狀態欄信息通知文字顏色,是由framework-res.apk文件裏res\values下的colors.xml文件控制的,所以我們只需修改colors.xml文件就可以了。另外,此文件還控制下拉欄的文字顏色,可以修改。
用文本編輯器打開colors.xml文件,找到
<color name="hw_statusbar_time">#ff000000</color>
將這句修改爲:<color name="hw_statusbar_time">#ffffffff</color>
這狀態欄信息通知文字顏色由黑色改爲白色。


6) 其它應用

還有許多應用都與美化修改主題有關,像修改狀態欄“時間”的顯示顏色,步驟繁多,這裏就不介紹了。可能的話,以後再找時間介紹。

最後,如果你們有什麼好經驗和好應用,請與大家分享。


主要參考:

APK文件的解包打包和修改應用
http://bbs.gfan.com/android-1390609-1-1.html

APK文件的解包打包和修改
http://bbs.hiapk.com/thread-1274998-1-1.html

個性化您的ROM—修改和反編譯
http://bbs.zhangku.com/thread-4046-1-1.html

修改和反編譯—定製您的ROM
http://bbs.l-i-d-r-o-i-d.com/t-55-1-1.html

apk的反編譯、漢化、修改,實現sd2flash,修改smali文件
http://blog.csdn.net/shichexixi/archive/2011/01/20/6

Dalvik opcodes
http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html

Android 的 ApkTool 反編譯 apk xml 和去廣告
http://blog.csdn.net/DavidHsing/archive/2011/03/17/6256333.aspx

Android軟件漢化教程(強制漢化/Apktool漢化/精簡/去廣告)
http://www.hiapk.com/bbs/thread-1111945-1-1.html

又一反編譯利器apktool
http://apps.hi.baidu.com/share/detail/18314837

Smali
http://code.google.com/p/smali/

eclipse源碼編譯的apk開發,使用系統簽名機制
http://blog.csdn.net/assassin4824/archive/2011/05/17/6427934.aspx

 

原文地址:http://bbs.gfan.com/android-1744646-1-1.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章