中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

Android瀏覽器的研究(五)---瀏覽器APK的Eclipse開發(fā)環(huán)境搭建

工欲善其事,必先利其器!

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站制作、成都網(wǎng)站建設(shè)與策劃設(shè)計,潁泉網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:潁泉等地區(qū)。潁泉做網(wǎng)站價格咨詢:18980820575

Android Apk 的推薦開發(fā)環(huán)境是Eclipse + ADT,它的調(diào)試、代碼檢查、分析、重構(gòu)等功能為應(yīng)用程序的開發(fā)提供了極大的方便。但對于象瀏覽器這樣的內(nèi)置應(yīng)用,由于使用了一些Framework層的隱藏API,在Import到Eclipse工程時會報告很多錯誤。本文分析和解決了使用Eclipse建立瀏覽器Apk的開發(fā)環(huán)境的一系列問題。

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

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

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

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

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

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

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

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

具體步驟:

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

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

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

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

Android 瀏覽器的研究(五)--- 瀏覽器APK的Eclipse開發(fā)環(huán)境搭建

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

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

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

注意這些目錄下由于都是臨時文件夾,Jar文件需要將它們重命名到恰當?shù)拿帧?/p>

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

com.google.common.annotations.VisibleForTesting

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

Android 瀏覽器的研究(五)--- 瀏覽器APK的Eclipse開發(fā)環(huán)境搭建

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

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

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

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

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

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

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

第六步:修改LogTag.java

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

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

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

Android 瀏覽器的研究(五)--- 瀏覽器APK的Eclipse開發(fā)環(huán)境搭建

網(wǎng)頁標題:Android瀏覽器的研究(五)---瀏覽器APK的Eclipse開發(fā)環(huán)境搭建
本文來源:http://m.2m8n56k.cn/article10/jssggo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化網(wǎng)站設(shè)計網(wǎng)頁設(shè)計公司建站公司品牌網(wǎng)站建設(shè)商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
主站蜘蛛池模板: 亚洲成人在线播放视频 | 免费va国产高清不卡大片 | 亚洲国产人成中文幕一级二级 | 国产在线黄| 一级片在线观看 | 欧美一级毛片欧美一级成人毛片 | 91成人在线免费视频 | 亚洲国产精品一区二区不卡 | 手机看片精品国产福利盒子 | 精品成人网| 一本综合久久国产二区 | 精品久久久影院 | 玖草资源在线 | 亚洲国产成人va在线观看网址 | 欧洲美女与男人做爰 | 亚洲国产高清人在线 | 99久久香蕉国产综合影院 | 九九大香尹人视频免费 | 女人野外小树林一级毛片 | 成人精品视频一区二区三区 | 美国毛片一级视频在线aa | 黄色毛片播放 | www日本高清 | 69视频成人 | 2022日韩理论片在线观看 | 国产精品分类视频分类一区 | 久久三级毛片 | 日韩亚洲一区中文字幕 | 在线久久| 欧美中日韩在线 | 成人影院一区二区三区 | 国产精品日韩欧美一区二区三区 | 成人久久18免费网站 | 日韩欧美视频一区二区在线观看 | 五月久久噜噜噜色影 | 欧美日韩国产亚洲综合不卡 | 怡红院在线观看视频 | 成人禁在线观看网站 | 福利视频在线午夜老司机 | 精品国产一区二区三区在线观看 | 99国产国人青青视频在线观看 |