androidjar庫
㈠ Android開發,關於依賴庫和JAR包的區別以及
1.依賴庫和Jar包的區別
最近開發,需要用到外部依賴庫SwipeBackLib,這是一個項目文件,而不是一個打包好的Jar包文件,很明顯,使用Jar包會更加的方便簡潔以及能更輕松的移動,但是為什麼目前需要使用的外部庫分為兩種,有的需要導入依賴庫,而有的又可以直接導入jar包呢。
經過比較,導致這個原因出現的主要原因是,類似於SwipeBackLib或者SlideingMenu這類的依賴庫,裡面有自己的layout的文件,有layout就需要用到R文件,而在打包成Jar文件的時候,是不會有R文件,這也就造成了將一個這種的依賴庫強行打包成Jar文件時會出現錯誤。
PS:這是本人自己對於依賴庫和Jar包的理解
2.使用多個依賴庫可能出現的問題
在開發的時候,我需要同時用到SlidingMenu(滑動側邊欄)和SwipeBackLib(滑動返回)兩個依賴庫,將兩個依賴庫一起設為我項目的依賴的時候,使用時沒有出現報錯,但是運行時就會出現報錯,這很大的原因,是因為兩個依賴庫的R文件沖突造成的。
在解決這個問題的時候,我嘗試過很多方法,都不能解決,後來我想到,如果下次我又需要添加新的依賴庫的時候,我一個項目就有了三個依賴庫了,可移動性非常的差,我是不是可以將兩個依賴庫合並成一個,這樣既解決了移動性的問題,也解決了R文件沖突的問題。
步驟:
(1).新建一個Android項目,將項目里自動生成的文件刪除,只留下文件夾
(2).從兩個依賴庫中復制出對應的文件,放到新建項目中去
(3).如果遇到重復文件,則將代碼寫到一起即可
(4).修改R路徑更改肯定會出現的問題
(5).完成
經過這幾個步驟,我成功的將兩個依賴庫合並到了一起,項目添加依賴,使用,沒有出現問題
㈡ android怎麼導入jar包
jar包可以藉助第三方軟體導入Android系統手機。
在Android手機的應用商店搜索「jar模擬器「並下載安裝。
打開程序,此時該程序會在手機的Storage路徑中生成帶有jar字樣的文件夾;
將手機連接到電腦,將jar文件拷貝到相應文件夾即可;或者將jar文件拷貝到U盤,通過OTG線連接將U盤插到手機,再將jar文件拷貝到手機相應文件夾即可;
打開手機上的jar模擬器或者類似程序,在程序中就會看到jar包,點擊運行即可。
㈢ Android第三方類庫中的jar包不被混淆
假如你的項目中有這樣一個image類庫, 打開image類庫下的build.gradle文件,查看裡面有哪些 引用包 ,如果lib裡面也有包, lib中的也需要查看
假如現在,讓 最後一個" compile'com.blankj:utilcode:1.9.8 '" 不被混淆
打開圖中的 External Libraries 文件, 我們導入的所有的第三方jar包都在裡面
找到" compile'com.blankj:utilcode:1.9.8 '"
查看包名,在混淆文件中添加
所有的jar包都依次寫上 -keep class "jar包名" ,就ok了
--注意事項--
1.保證實體類不被混淆
2.保證第三方的jar包不被混淆,類似於,友盟,地圖,等等,配置的時候,就把混淆文件也過來,免得再回去找
3.添加基礎混淆配置,網上有很多的實例
################ 以下直接到 proguard-rules.pro文件中,實體類,第三方部分,需修改####################
㈣ Android引入多個jar包,沖突問題解決方案
Android引入多個jar包,沖突問題解決方案(引入jar包,即本地文件) 以引用載入第三方框架中也有okhttp3 okio沖突講解
(PS:如果不知道是那個jar沖突可以用指令gradlew app:dependencies查看)
1.找到項目中的libs->對應沖突的第三方包.jar。
3.用解壓工具打開(不是解壓亂塵,是打開。比如windows下可用360解壓打開)。
4.刪掉重復引用的包(okhttp3 + okio)。
5.重新打開虛喚項目,等待編譯。
6.可能出現innerClass mission警告,可以忽略掉,或者clean build。
7.如果還報錯的話那麼在app build.gradle加入嘩譽禪:
packagingOptions {
exclude 'META-INF/proguard/okhttp3.pro'
}
溫馨提示:
如果你的項目是因為剛剛添加了某個網路載入依賴導致的,那麼你就查看下這個庫下的哪一個依賴沖突了,在添加這個依賴的時候把它給過濾掉。具體寫法如下。
implementation ('com.***.***:XXX:1.2.0'){ // 所加的第三方框架
exclude mole: 'okhttp:3.10.0'
}
//或者要把組名一起添上去
implementation ('com.***.***:XXX:1.2.0'){ // 所加的第三方框架
exclude group: 'com.squareup.okhttp3'
}
㈤ android開發要哪些jar
am.jar:終端下執行am命令時所需的java庫。源碼目錄:framework/base/cmds/am
android.policy.jar:鎖屏界面需要用到的jar包,該包引用了android.test.runner.jar,源碼目錄:framework/base/policy
android.test.runner.jar:測試應用所需的jar包,該包引用了core.jar,core-junit.ajr以及framework.jar,源碼目錄:framework/base/test-runner
bmgr.jar:adb shell命令下對Android Device所有package備份和恢復的操作時所需的java庫。 不過這個android服務默認是Disabled,而且要backup的應用必須實現BackupAgent,在AndroidManifest.xml的application標簽中加入android:backupAgent屬性。源碼目錄:framework/base/cmds/bmgr
bouncycastle.jar: java三方的密匙庫,網上資料說用來apk簽名、https鏈接之類,官網 :http://www.bouncycastle.org/java.html
com.android.future.usb.accessory.jar:用於管理USB的上層java庫,在系統編譯時hardware層會調用到。源碼目錄:frameworks/base/libs/usb
com.android.location.provider.jar:
com.android.nfc_extras.jar:NFC外部庫。android/nfc/NfcAdapter.java會調用到包中的NfcAdapterExtras.java。源碼目錄:frameworks/base/nfc-extras
core-junit.jar :junit核心庫,在運行*Test.apk時被調用。
core-junitrunner.jar:未知,公司話機上有。
core-tests*.jar:framework下的一系列測試jar包,不做測試時可刪除。
core.jar:核心庫,啟動桌面時首先載入這個。源碼目錄:
ext.jar:android外部三方擴展包,源碼主要是external/nist-sip(java下的sip三方庫)、external/apache-http(apache的java三方庫)、external/tagsoup(符合SAX標準的HTML解析器)。其實這個jar包可以添加外部擴展jar包,只需在framework/base/Android.mk中的ext-dir添加src目錄即可。
framework-res.apk:android系統資源庫。
framework.jar:android的sdk中核心代碼。
ime.jar:ime命令所需jar包,用於查看當前話機輸入法列表、設置輸入法。源碼目錄:framework/base/cmds/ime
input.jar:input命令所需的jar包,用於模擬按鍵輸入。源碼目錄:framework/baes/cmds/input
javax.obex.jar:java藍牙API,用於對象交換協議。源碼目錄:framework/base/obex
monkey.jar:執行monkey命令所需jar包。源碼目錄:framework/base/cmds/monkey
pm.jar:執行pm命令所需的jar包,pm詳情見adb shell pm,源碼目錄:framework/base/cmds/pm
services.jar:話機框架層服務端的編譯後jar包,配合libandroid_servers.so在話機啟動時通過SystemServer以循環閉合管理的方式將各個service添加到ServiceManager中。源碼目錄:framework/base/service
sqlite-jdbc.jar: sqlite的Java DataBase Connextivity jar包。
svc.jar:svc命令所需jar包,可硬用來管理wifi,power和data。源碼目錄:framework/base/cmds/svc