91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android 瀏覽器的研究(五)--- 瀏覽器APK的Eclipse開發環境搭建

發布時間:2020-08-02 19:20:32 來源:網絡 閱讀:1326 作者:孫洪波 欄目:移動開發

工欲善其事,必先利其器


Android Apk 的推薦開發環境是Eclipse + ADT,它的調試、代碼檢查、分析、重構等功能為應用程序的開發提供了極大的方便。但對于象瀏覽器這樣的內置應用,由于使用了一些Framework層的隱藏API,在ImportEclipse工程時會報告很多錯誤。本文分析和解決了使用Eclipse建立瀏覽器Apk的開發環境的一系列問題。


問題:為什么使用Eclipse Import 瀏覽器目錄建立的工程有很多錯誤

分析:查看這些錯誤,大部分都是類或者方法無法找到。這是因為瀏覽器作為內置應用,它使用了Framework里的一些隱藏API,這些API在代碼中使用@hide標記,ADT 使用的Android.jar文件中沒有包含這些隱藏API,導致在Eclipse工程中報告錯誤。


問題:這些隱藏的API可以使用嗎?

分析:當然,既然瀏覽器可以在手機上運行,說明它使用的這些隱藏的API在運行環境是可用的。事實上,這些隱藏API都是被編譯進入Framework的運行庫的。為什么將它們@hide掉而且從android.jar中去除呢?這是個接口與實現的問題,APK應該依賴于Framework的接口,而不是實現,但作為內置應用,它是可以依賴實現的。


問題:如何在Eclipse工程中使用這些隱藏API

分析:其實就像普通的Java工程一樣,你想在工程中使用這些API,那就將它們的Jar包添加到你的工程Build Path中去即可。所以這里需要做的就是找到包含我們需要的APIJar包。


問題:如何找到我們需要的Jar包?

分析:使用Android 源代碼工程,可以在編譯的中間文件中查找你需要的Jar包;或者可以在手機的/system/framework/pull出來你需要的Jar文件,不過這個Jar文件是dex格式的,可以使用dex2jar工具轉換為jar文件,不過,在手機上找這些Jar文件不太好判斷是哪個文件,我曾經在4.24.3上比較容易地找到,不過在4.4上找了半天也沒有找到commongoogle-common,如果你使用4.4,建議在Android源代碼工程的編譯中間文件夾中查找。


具體步驟:

首先說明,這里使用的是Android 4.4 版本。


第一步,Import Browser 代碼,建立Eclipse 工程

使用EclipseImport Existing Android Code Into WorkSpace/packages/apps/Browser目錄ImportEclipse中,建立工程。(代碼里還有一個Test工程,這里沒有使用)

這個時候打開工程,看到當前有619個錯誤:


Android 瀏覽器的研究(五)--- 瀏覽器APK的Eclipse開發環境搭建

隨便打開一個源文件,比如com.android.browser.AddBookmarkPage.java,里面的錯誤如:

The import … cannot be resolved, … cannotbe resolved to a variable等都是文件或者方法找不到的錯誤。


第二步,根據錯誤提示,在工程的編譯中間文件夾中查找我們需要的Jar

注意這些目錄下由于都是臨時文件夾,Jar文件需要將它們重命名到恰當的名字。

比如在BrowserActivity文件中提示找不到這個文件:

com.google.common.annotations.VisibleForTesting

于是我們到編譯的out/target 中去find 這個類,找到它的目錄:

Android 瀏覽器的研究(五)--- 瀏覽器APK的Eclipse開發環境搭建


將這個class-jarjar.jar文件重命名為googlecommon.jar


第三步,將前面找到的Jar文件都添加到工程的Java Build Path,注意,需要設置這些類的順序在Android.jar(Android 4.4 dependency)之前,否則優先使用Android.jar中的類,導致某些方法找不到。

第四步:添加Android-support v13.jar Java Build Path.

從錯誤提示中可以看到需要support v13這個jar包可以在SDKsdk\extras\android\support\v13目錄中找到。

第五步,修改AndroidManifest.xml,添加SDK Version

有一些錯誤檢查是由于SDK版本,修改AndroidManifest.xml,添加SDK版本聲明:

<uses-sdkandroid:targetSdkVersion="19"android:maxSdkVersion="19"android:minSdkVersion="19"/>

第六步:修改LogTag.java

將這個類的三個方法的內容刪掉,我們不需要它們。


另外,有一些注解類也可以不要,比如在view.ScrollerView 中的錯誤:The annotation @ViewDebug.ExportedProperty must define the attributeflagMapping,將出錯的這一句@ViewDebug.ExportedProperty(category= "layout")刪掉即可。


OK,太棒了,所有的錯誤都消失了,現在我們有了一個沒有編譯錯誤的Android Apk 工程了!

Android 瀏覽器的研究(五)--- 瀏覽器APK的Eclipse開發環境搭建

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

图们市| 屏山县| 宣城市| 龙海市| 永康市| 长乐市| 正定县| 镇康县| 砀山县| 彭水| 黔江区| 林西县| 馆陶县| 安岳县| 大田县| 堆龙德庆县| 启东市| 从江县| 大石桥市| 江北区| 股票| 杨浦区| 新干县| 垦利县| 津市市| 柳江县| 长葛市| 楚雄市| 唐河县| 江阴市| 台中县| 吉木乃县| 牙克石市| 莫力| 扶绥县| 宁南县| 界首市| 安顺市| 铅山县| 宜兰县| 阳信县|