工程源碼:http://download.csdn.net/detail/victoryckl/4990533
注意:
如果下載已經修過的源碼,只要進行3、4、8步驟就應該可以了。
eclipse版本:adt-bundle-windows (Android Developer Tools Build: v21.0.0-519525)
1.從android4.0系統的代碼中拷貝一份瀏覽器的代碼,到本地檔案夾,並重新命名為BrowserEclipse:
<android4.0源碼>/package/apps/Browser --> <本地目錄>/BrowserEclipse
2.在eclipse中匯入工程BrowserEclipse。
菜單File-import,選擇Android-Existing Android Code Into Workspace。
瀏覽檔案夾,並選擇工程的根目錄:<本地目錄>/BrowserEclipse。
去掉tests工程的勾選按鈕,暫時不管tests工程。
重新命名工程:選擇工程,滑鼠右鍵菜單-Refactor-Rename,輸入BrowserEclipse。
此時,工程中會有很多錯誤,暫時不用理睬。
3.添加庫檔案。
從編譯通過的android4.0源碼的out目錄中拷貝相應的檔案到BrowserEclipse的systemlib路徑下,檔案如下:
BrowserEclipse\systemlib\out\target\common\obj\JAVA_LIBRARIES\android-common_intermediates\classes.jar
BrowserEclipse\systemlib\out\target\common\obj\JAVA_LIBRARIES\android-support-v13_intermediates\classes.jar
BrowserEclipse\systemlib\out\target\common\obj\JAVA_LIBRARIES\android-support-v4_intermediates\classes.jar
BrowserEclipse\systemlib\out\target\common\obj\JAVA_LIBRARIES\core_intermediates\classes.jar
BrowserEclipse\systemlib\out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar
在eclispe中重新整理下工程,再選擇工程,滑鼠右鍵菜單-Build Path-Configure Build Path,
在Libraries頁面中,選擇Add Library-User Libraries-New,輸入庫名稱systemlib,並勾選輸入框下面的“System Library”。
回到User Libraries視窗,選擇建立立的systemlib,點擊按鈕“Add JARs”,把systemlib\檔案夾下面的五個classes.jar都添加進去。
一路OK按鈕,回到Java Build Path介面,選擇Order and Export頁面,選擇建立立systemlib,點擊Top按鈕,頂到第一位,OK。
4.設定Java Compiler版本為1.6。
再選擇工程,滑鼠右鍵菜單-Properties-Java Compiler,選擇1.6
5.屏蔽一些代碼。
經過第3步驟,回到eclipse編輯介面,重新整理工程,此時大部分的錯誤已經解決,僅剩少數幾個錯誤,把這些錯誤地方屏蔽掉,即可:
屏蔽EventLogTags相關的行:
BrowserEclipse\src\com\android\browser\LogTag.java;
屏蔽VisibleForTesting相關的行:
BrowserEclipse\src\com\android\browser\BrowserActivity.java
BrowserEclipse\src\com\android\browser\provider\BrowserProvider2.java
BrowserEclipse\src\com\android\browser\autocomplete\SuggestedTextController.java
此時,應該沒有編譯錯誤了。
6.增加一個java檔案,避免執行階段錯誤:
BrowserEclipse\src\com\android\common\content\SyncStateContentProviderHelper.java
來自android4.0源碼:
frameworks\ex\common\java\com\android\common\content\SyncStateContentProviderHelper.java
7.修改BrowserEclipse\AndroidManifest.xml,增加<uses-sdk android:minSdkVersion="14"/>
修改BrowserEclipse\project.properties中的target屬性值,設定為target=android-14
8.卸載系統應用Broser.apk,安裝BrowserEclipse.apk。
這裡需要先把機器root,才能進行,這個apk只能在android4.0的系統中運行正常,在4.1中不能運行。
先備份/system/app/Browser.apk和Browser.odex,拷貝到/sdcard即可。
刪除/system/app/Browser.apk和Browser.odex,重啟機器。
安裝BrowserEclipse.apk,查看效果。