日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android支持第三方jar包,以及Eclipse如何导入jar包

發(fā)布時間:2025/4/5 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android支持第三方jar包,以及Eclipse如何导入jar包 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

通常我們進(jìn)行android開發(fā)的時候運(yùn)用到了兩種格式的jar包文件。

1.在eclipse環(huán)境下,引入第三方j(luò)ar包,指的是通過eclipse工具export出來的包含.class文件的jar包。

2.在源碼環(huán)境下,通過配置Android.mk文件生成的jar包,也是我們在源碼下開發(fā)依賴的jar包文件是包含class.dex的jar包文件。class.dex 是通過Android系統(tǒng)中可以在Dalvik虛擬機(jī)上直接運(yùn)行的文件格式。

兩個jar包之間的轉(zhuǎn)換:1).class=>class.dex?dx工具的作用是將.class轉(zhuǎn)換為dex文件

? ? ? ? ? ? ? ? ? ? ? ? ? ?2)class.dex=>.class 可以使用反編譯工具

具體如何通過Eclipse 導(dǎo)出jar包以及在源碼下生成jar包就不詳述了,網(wǎng)上資料很多

第三方j(luò)ar包依賴的緣由:

? ? 在平常過程中,假如項(xiàng)目需要支持引用第三方j(luò)ar包,假如是通過Eclipse進(jìn)行開發(fā),直接是把含有.class文件的jar包直接加載到項(xiàng)目中,最后編譯出來的apk里面就包含了整個jar包文件(class.dex),假如是通過源碼進(jìn)行編譯,在Android.mk里面直接添加對system/framework下面jar包文件的依賴,最后jar包文件也和apk編譯到了一起。
? ? 由于此次開發(fā)項(xiàng)目需要做到,app應(yīng)用與jar包分離,也就是jar包文件需要獨(dú)立出來,不能與apk編到一起,通俗來講就是apk的大小將大大減小。

一、在Eclipse下新建一個Java Project(作為jar包文件)

在Person類里面實(shí)現(xiàn)一些接口,屬性,如果Person類調(diào)用了android sdk方法,請看第二步,如果沒有直接跳過第二步驟,進(jìn)行第三步驟。(作者在jar包中沒有調(diào)用android SDK中的方法


二、在TestToJar工程里面添加對Android jar包的引用(即SDK接口)

????android.jar包到SDK里面自帶的例子里面找。在工程上點(diǎn)擊鼠標(biāo)右鍵,在properties里面Java?Build?Path?->?Libraries-Add?Jars選擇android.jar.


三、為工程添加注冊文件<permission?xml?file?name>.xml

????該文件是用來向系統(tǒng)注冊庫用的,名稱可以自己定,在下面假設(shè)該文件為?mylibxml.xml。
在文件中加入以下內(nèi)容:

<?xml version="1.0" encoding="UTF-8"?> <permissions> <library name="com.mytest.lib" file="/system/framework/mylib.jar"/> </permissions>

其中的?library?用于將其下的?name?和?file?兩個屬性關(guān)聯(lián)起來,name?的值后邊會用到。
這里的?name?指定為工程的包名。

這里的?file?指定為庫文件的存放路徑,應(yīng)該是:
/system/framework/<jar?file?name>.jar

四、為工程添加makefile文件

在庫文件工程的根目錄下創(chuàng)建以下文件:
Android.mk
該文件是用來編譯工程的,名稱固定。
在文件中加入以下內(nèi)容:

LOCAL_PATH:= $(call my-dir) #MAKE_JAR 編譯jar包過程到 /system/framework下面 APK需要的jar包include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_MODULE := mylib include $(BUILD_JAVA_LIBRARY) #MAKE_XML 編譯XML過程到 /system/etc/permissions/下面include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_MODULE := mylibxml.xml LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/permissions LOCAL_SRC_FILES := $(LOCAL_MODULE) include $(BUILD_PREBUILT)

其中,MAKE_JAR?部分的?LOCAL_MODULE?部分指定為想要生成的jar包文件的名字,
需要與?.xml?文件中的?library?下的?file?部分一致。
其中,MAKE_XML?部分的?LOCAL_MODULE?部分指定為用于注冊庫的?.xml?文件。

五、把java project所有代碼拷入android源碼的編譯環(huán)境

一般拷入到system/app/下面

然后通過mm編譯,在android源碼編譯環(huán)境中將會生成一個?.jar?文件和一個?.xml?文件。

以上兩個文件是應(yīng)用程序在運(yùn)行時需要用到的。
調(diào)試應(yīng)用前,需要將兩個文件拷貝到設(shè)備的相應(yīng)目錄上去:
.jar?文件:/system/framework/
.xml?文件:/system/etc/permissions/
拷貝到設(shè)備使用以下命令:
$?sudo?adb?push?<.jar?or?.xml?file?path>?<path?in?device>
拷貝完以后需要重啟設(shè)備。

六、前期準(zhǔn)備工作基本就緒,開始寫測試case。(驗(yàn)證apk是否能在設(shè)備中找到j(luò)ar包文件)

(1)使用Eclipse工具新建一個Android 測試case

注:正常情況下,編譯器會給我們報(bào)錯,我這里為了看著舒服,就通過Eclipse把上面的java project導(dǎo)出成了一個jar文件加載進(jìn)來了,所以編譯器沒有提示報(bào)錯信息。

(2)編輯AndroidManifest.xml文件

編輯工程根目錄下的?AndroidManifest.xml?文件。
在?application?下添加以下內(nèi)容:
<uses-library
android:name="com.mytest.lib">
</uses-library>
其中的?:name?表示所引用的庫文件的包名。
其與庫工程的?.xml?文件中的?name?應(yīng)該是一致的。
這樣在應(yīng)用運(yùn)行時就能夠找到相應(yīng)的?.jar?文件了。
如果引用了多個庫,需要添加多個?uses-library?標(biāo)簽。


(3) 為工程添加 makefile 文件:

在庫文件工程的根目錄下創(chuàng)建以下文件:
Android.mk
該文件是用來編譯工程的,名稱固定。
在文件中加入以下內(nèi)容:

LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_JAVA_LIBRARIES := mylib LOCAL_PACKAGE_NAME := myapp LOCAL_CERTIFICATE := platforminclude $(BUILD_PACKAGE)

其中的?LOCAL_JAVA_LIBRARIES?表示程序會用到的庫文件。
其名成與庫工程下的?.mk?文件中?MAKE_JAR?部分下的?LOCAL_MODULE?應(yīng)該是一致的。
其中的?LOCAL_PACKAGE_NAME?表示應(yīng)用最后生成的名稱。

(4)把Android 測試case拷入android源碼編譯環(huán)境編譯

把測試case同樣拷入system/app下面
然后通過mm編譯生成了myapp.apk
然后通過adb install 命令把a(bǔ)pk安裝到設(shè)備
最后按照常規(guī)方式用eclipse編譯生成的apk與通過此方法編譯生成的apk,發(fā)現(xiàn)兩個大小差異非常大




轉(zhuǎn)載于:https://my.oschina.net/zhoulc/blog/112573

總結(jié)

以上是生活随笔為你收集整理的android支持第三方jar包,以及Eclipse如何导入jar包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人妻熟妇又伦精品视频a | 日韩一区二区三区四区五区 | 亚洲va欧美va国产综合久久 | 啪啪啪毛片 | 亚洲精品中文字幕乱码三区 | 国产精品国产一区二区三区四区 | 91精品国产综合久久久久 | 性欧美激情| 在线免费观看一区二区三区 | 久久久欧美 | 亚洲视频在线一区 | 日本国产一区二区 | 成人av网站在线观看 | 日韩在线视频不卡 | 日韩成人综合 | 熟妇毛片| 国产97免费视频 | 久久天天东北熟女毛茸茸 | 精品国产午夜福利在线观看 | 久久99精品久久久久久噜噜 | 日本精品视频在线播放 | av污在线观看 | 欧美日韩系列 | 国产日产精品一区二区 | 久久久久亚洲AV成人网人人小说 | 亚洲午夜精品一区二区三区 | 老地方在线观看免费动漫 | 欧美日韩黄色大片 | 成人毛片在线播放 | 亚洲毛片在线观看 | 亚洲av午夜精品一区二区三区 | 色爽 | 91精品黄色 | 麻豆专区| 三级一区二区 | 91精产国品 | 国产欧美视频一区 | 1024视频在线 | 亚洲爆乳无码精品aaa片蜜桃 | 男人爱看的网站 | 性感美女在线 | 成人香蕉视频在线观看 | 日韩经典一区二区三区 | 中文字幕成人在线 | 葵司免费一区二区三区四区五区 | 韩国一区二区三区视频 | 午夜骚影| 激情小说综合 | 欧美亚洲少妇 | 欧美乱大交xxxxx潮喷l头像 | 久久黄色av | 日韩中文一区二区 | 免费看60分钟黄视频 | 麻豆精品一区二区三区 | 麻豆视频成人 | 午夜精品久久 | 亚洲天天做 | 午夜激情导航 | 怎么可能高潮了就结束漫画 | 国产福利短视频 | 国产在线黄色 | 久久网一区二区 | 免费在线a | 亚洲熟妇丰满大屁股熟妇 | 先锋资源一区 | 国产二级视频 | 夜夜摸夜夜操 | 视频在线播 | 欧美人体一区二区三区 | 第四色在线视频 | 亚洲欧洲一区二区在线观看 | 成人福利午夜 | 欧美日韩一区二区在线观看 | 波多野结衣绝顶大高潮 | 成人黄色激情小说 | 日韩高清一区 | 日日碰狠狠添天天爽无码 | av在线网页 | av在线伊人 | 国产一级黄色录像 | 天天操 夜夜操 | 国产精品久久999 | 日本欧美一区二区 | 婷婷丁香色 | 天天鲁一鲁摸一摸爽一爽 | 精品视频成人 | 婷婷调教口舌奴ⅴk | 国产成人短视频 | 奇米四色在线观看 | 欧美精品韩国精品 | 国产成人在线视频观看 | 精品一区二区三区成人免费视频 | 亚洲欧美综合视频 | 国产亚洲精品网站 | 97狠狠| 魔性诱惑 | 久章草在线观看 | 亚洲色图欧美色 | 国产伦理片在线观看 |