Android Studio通過(guò)Artifactory搭建本地倉(cāng)庫(kù)優(yōu)化編譯速度的方法
Android Studio 編譯速度慢,一般來(lái)說(shuō),原因有下面幾個(gè)。
- Gradle下載慢
- 依賴(lài)庫(kù)下載慢
- 依賴(lài)庫(kù)使用"+"(使用最新的),每次都需要去查找新的(盡量不適用這種方式)
這里,大部分的庫(kù),我們可以通過(guò)阿里云代理倉(cāng)庫(kù)。
但是,如果有我們自己的私有庫(kù)或者插件的話。肯定不希望放到阿里云上了。
這個(gè)時(shí)候,我們就需要建立,我們自己的本地倉(cāng)庫(kù),讓私有倉(cāng)庫(kù),依賴(lài)阿里云的私有倉(cāng)庫(kù)。
依賴(lài)關(guān)系,如下圖
這樣,既保證了我們私有庫(kù)的安全性,又讓我們的依賴(lài)庫(kù)也享受到了阿里云代理倉(cāng)庫(kù)的便利。
通過(guò)Artifactory搭建本地倉(cāng)庫(kù)可以參考:架構(gòu)師教程Artifactory破解步驟。這里就不說(shuō)明了。
下面,我們主要說(shuō)明的是本地倉(cāng)庫(kù)的配置及在項(xiàng)目中的引用。
一,本地倉(cāng)庫(kù)的創(chuàng)建
這里又分為2個(gè)部分:
依賴(lài)本地的庫(kù)
比如,Gradle的版本,或者自己寫(xiě)的Gradle插件等等
依賴(lài)遠(yuǎn)程的庫(kù)
比如,OKHttp,Retrofit等等第三方庫(kù)
創(chuàng)建虛擬組
這樣的話,方便我們的引入。不用每個(gè)庫(kù)都引入進(jìn)來(lái)。
1,創(chuàng)建依賴(lài)本地的庫(kù)
點(diǎn)擊左側(cè)的Admin→local,進(jìn)入Local Repositories。
點(diǎn)擊右上角的按鈕(New)
選擇Maven,然后,填寫(xiě)Repository key,我們就起一個(gè)android_local(自己定義就好)。
然后,點(diǎn)擊Save & Finish,到這里就創(chuàng)建了一個(gè)本地的Maven倉(cāng)庫(kù)。
然后,我們?cè)贚ocal Repositories下面就看到了,我們創(chuàng)建的本地庫(kù)。
下面,我們就要把我們下載好的Gradle,放到這個(gè)本地倉(cāng)庫(kù)。
點(diǎn)擊左側(cè)欄第2個(gè)按鈕,Artifact Repository Browser
選擇,我們的android_local的maven庫(kù),點(diǎn)擊右側(cè)Deploy,把我們的Gradle的zip上傳上去就可以了
如下圖
上傳完成后,我們?cè)谧髠?cè)的android_local下面,就看到了這個(gè)Gradle的zip包
這里,有個(gè)東西需要配置一下。倉(cāng)庫(kù)默認(rèn)上傳文件大小是100M,我們需要改大一些,不然,上傳會(huì)失敗。
點(diǎn)擊左側(cè)的Amin→General Configuration
。
修改File Upload Max Size (MB)
,這個(gè)選項(xiàng),我們改成400M,點(diǎn)擊Save。
如下圖,修改完后,再上傳我們的Gradle的zip就沒(méi)有問(wèn)題了。
到這里,我們建立的本地的倉(cāng)庫(kù)就配置完成了
2,依賴(lài)遠(yuǎn)程的庫(kù)
我們項(xiàng)目除了Gradle以外,開(kāi)發(fā)時(shí)會(huì)用到很多的第三方庫(kù),這個(gè)時(shí)候,我們還需要配置一個(gè)依賴(lài)遠(yuǎn)程的倉(cāng)庫(kù)。
根據(jù)上面的流程,我們的遠(yuǎn)程倉(cāng)庫(kù),需要依賴(lài)阿里云的代理倉(cāng)庫(kù)。這里先創(chuàng)建一個(gè)jcenter倉(cāng)庫(kù)。
首先,點(diǎn)擊左側(cè)的Admin–→Remote
然后,跟本地倉(cāng)庫(kù)一樣,點(diǎn)擊右側(cè)的New按鈕
我們填寫(xiě)一個(gè)repository key叫aliyun_maven。并填寫(xiě)地址。
填寫(xiě)完成后,點(diǎn)擊右下角的Save & Finish。
就創(chuàng)建好了,我們的jcenter倉(cāng)庫(kù)。
我們還要?jiǎng)?chuàng)建google的本地倉(cāng)庫(kù),最好再創(chuàng)建一個(gè)public的倉(cāng)庫(kù)(防止,其他的地方找不到)
創(chuàng)建完成后,我們看下,我們的遠(yuǎn)程倉(cāng)庫(kù)列表
可以看到,我們的3個(gè)遠(yuǎn)程倉(cāng)庫(kù)都創(chuàng)建好了。
3,創(chuàng)建虛擬組
上面,我們把Gradle的文件倉(cāng)庫(kù)和依賴(lài)庫(kù)依賴(lài)的google(),jcenter()倉(cāng)庫(kù),都創(chuàng)建好了。
如果,我們每個(gè)都依賴(lài)到項(xiàng)目的話,很不方便。首先,需要寫(xiě)很多;其次,就是如果再添加其他倉(cāng)庫(kù)的話,我們也需要都次都改動(dòng),這個(gè)地方。
這里,我們就創(chuàng)建一個(gè)虛擬組。這樣,我們的項(xiàng)目,只需要依賴(lài)一個(gè)虛擬組,讓虛擬組把上面的倉(cāng)庫(kù)都添加進(jìn)去就可以了。
首先,點(diǎn)擊左側(cè)的Admin–→Virtual。
其次,還是點(diǎn)擊右上角的New按鈕。填寫(xiě)Repository key,把上面的aliyun_jcenter,android_local等等倉(cāng)庫(kù)添加進(jìn)去。
最后,點(diǎn)擊Save & Finish
這樣,我們的組就創(chuàng)建好了。
最后,看下我們所有創(chuàng)建的倉(cāng)庫(kù)。
二,使用本地倉(cāng)庫(kù)
上面的本地倉(cāng)庫(kù)創(chuàng)建好以后,我們就不用直接依賴(lài)google()等倉(cāng)庫(kù)了。
修改我們的項(xiàng)目配置。
1, gradle–→wrapper–gradle-wrapper.properties 下的gradle下載地址
#distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip distributionUrl=http\://localhost:8081/artifactory/android_local/gradle-4.10.1-all.zip
這里,我們直接依賴(lài)我們的本地倉(cāng)庫(kù)的地址。
2, 修改項(xiàng)目下的build.gradle
buildscript { repositories { // google() // jcenter() maven{ url 'http://localhost:8081/artifactory/android_depend/' } } dependencies { classpath 'com.android.tools.build:gradle:3.3.1' } } allprojects { repositories { // google() // jcenter() maven{ url 'http://localhost:8081/artifactory/android_depend/' } } }
這里,我們看到我們不在直接依賴(lài)jcenter(),google()倉(cāng)庫(kù)了。而是依賴(lài),我們自己的本地倉(cāng)庫(kù)的那個(gè)虛擬組。
這樣,以后我們有自己的私有庫(kù)或者插件的話,就保證了安全性。我們本地倉(cāng)庫(kù)依賴(lài)了阿里云的代理倉(cāng)庫(kù)。也不用擔(dān)心下載不下來(lái)的問(wèn)題了。
到此這篇關(guān)于Android Studio通過(guò)Artifactory搭建本地倉(cāng)庫(kù)優(yōu)化編譯速度的方法的文章就介紹到這了,更多相關(guān)Android Studio Artifactory搭建本地倉(cāng)庫(kù) 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android編程之SurfaceView學(xué)習(xí)示例詳解
這篇文章主要介紹了Android編程之SurfaceView學(xué)習(xí)示例,結(jié)合實(shí)例分析了SurfaceView的功能、使用方法與注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10Android Studio配置反混淆的實(shí)現(xiàn)
這篇文章主要介紹了Android Studio如何混淆的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10解決Android 沉浸式狀態(tài)欄和華為虛擬按鍵沖突問(wèn)題
對(duì)于現(xiàn)在的 App 來(lái)說(shuō),布局頁(yè)面基本都會(huì)用到沉浸式狀態(tài)欄,單純的沉浸式狀態(tài)欄很容易解決,但是在華為手機(jī)上存在一個(gè)底部虛擬按鍵的問(wèn)題,會(huì)導(dǎo)致頁(yè)面底部和頂部出現(xiàn)很大的問(wèn)題,下面通過(guò)本文給大家分享Android 沉浸式狀態(tài)欄和華為虛擬按鍵沖突問(wèn)題,一起看看吧2017-07-07Android實(shí)現(xiàn)多點(diǎn)觸控功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)多點(diǎn)觸控功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Android升級(jí)gradle 后引入aar包報(bào)錯(cuò)解決
這篇文章主要為大家介紹了Android升級(jí)gradle 后引入aar包報(bào)錯(cuò)解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Android實(shí)戰(zhàn)打飛機(jī)游戲之菜單頁(yè)面設(shè)計(jì)(1)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)戰(zhàn)打飛機(jī)游戲之菜單頁(yè)面設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07Android編程之SharedPreferences文件存儲(chǔ)操作實(shí)例分析
這篇文章主要介紹了Android編程之SharedPreferences文件存儲(chǔ)操作方法,實(shí)例分析了SharedPreferences文件操作的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04Android ListView實(shí)現(xiàn)單選及多選等功能示例
這篇文章主要介紹了Android ListView實(shí)現(xiàn)單選及多選等功能的方法,結(jié)合實(shí)例形式分析了ListView單選、多選及長(zhǎng)按多選等功能相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-08-08Android?NDK開(kāi)發(fā)(C語(yǔ)言--聯(lián)合體與枚舉)
這篇文章主要介紹了Android?NDK開(kāi)發(fā)C語(yǔ)言聯(lián)合體與枚舉,共用體是一種特殊的數(shù)據(jù)類(lèi)型,允許您在相同的內(nèi)存位置存儲(chǔ)不同的數(shù)據(jù)類(lèi)型。您可以定義一個(gè)帶有多成員的共用體,但是任何時(shí)候只能有一個(gè)成員帶有值。下面詳細(xì)介紹該內(nèi)容,需要的朋友可以參考一下2021-12-12