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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

as安装过程中gradle_重新认识AndroidStudio和Gradle,这些都是我们应该知道的

發布時間:2025/4/16 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 as安装过程中gradle_重新认识AndroidStudio和Gradle,这些都是我们应该知道的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

主要從AndroidStudio的環境安裝升級GradleEclipse轉AS,多渠道配置Maven私服Action,Option快捷鍵等幾個方面出發講一些操作技巧以及我對AndroidStudio使用的一些理解與經驗。本文較全面的講述了我們在開發中必須要了解的比較多而全可能不能馬上記住目的在于大家看我之后能有一個認識在需要使用的時候知道有這么個東西。希望對你的開發工作有所幫助不足之處請批評指正。

一、Install&Settings&Update

1、Gradle

Gradle官方會不斷更新我們可以使用本地安裝的方式并配置path我們就可以使用Terminal直接輸入gradle命令執行構建任務。當然如果我們想快速更新可以修改配置文件。 首先修改project\gradle\warpper\gradle-wapper.properties 文件其中distributionUrl的值distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip

這里實際是從網絡下載配置的版本會自動檢測如果不是的就會下載。

然后修改 project的build.gradledependencies?{

classpath?'com.android.tools.build:gradle:1.3.0'

//?NOTE:?Do?not?place?your?application?dependencies?here;?they?belong

//?in?the?individual?module?build.gradle?files

}

注意這兩個配置是一一對應的比如gradle-2.4-all對應的就是1.3.0。后者的意思是這個project配置的gradle構建版本為1.3.0前者的意思是這個project使用的gradle的版本為2.4。我們會發現如果我們修改前者如果本地沒有安裝這個版本的gradle會自動從gradle官網下載。但是如果我們修改后者它會自動從jcenter()倉庫下載一些plugin之類的。

2、AS具體的安裝和更新網上有許多的詳細教程我只想說以下三點。Android Studio是Google官方基于IntelliJ IDEA開發的一款Android應用開發工具,絕逼比Eclipse強大還沒有轉的盡快吧:

關閉AndroidStudio的自檢升級如果準備好升級還是自己選擇想升級的版本升級靠譜

升級前導出AndroidStudio的配置文件settings.jar(C:\Users\Administrator.AndroidStudio1.4\config目錄下或者操作File|Export Setings導出)升級后導入Settings.jar這樣就不需要重新配置有必要的話給自己備份一個說不定老天無緣無故掛了重裝很方便。

具體細節的配置可以閱讀強烈建議直接打開AS的設置窗口多轉幾次就熟悉了里邊的各種配置啦。也可以參考這邊文章1.4版本有點舊了差不多夠用打造你的開發工具settings必備

二、Gradle

1 簡述Groovy語言

Groovy是一種開發語言是在Java平臺上的具有向PythonRuby語言特性的靈活動態語言,Groovy保重了這些特性像Java語法一樣被Java開發者使用。編譯最終都會轉成java的.class文件。他們的關系如下圖。我想這大概也是Gradle構建系統為什么要選擇Groovy的原因它具有java語言的特性開發者容易理解使用。一定要明白我們在build.gradle里邊不是簡單的配置而是直接的邏輯開發。如果你熟練掌握Groovy那么你在build.grale里邊可以做任何你想做的事。

2 Gradle編程框架

Gradle是一個工具同時它也是一個編程框架。使用這個工具可以完成app的編譯打包等工作也可以干別的工作Gradle里邊有許多不同的插件對應不同的工程結構、打包方式和輸出文件類型。我們經常使用到的便是maven\java\com.android.application\android-library等。當按照要求配置好gradle的環境后執行gradle的task便會自動編譯打包輸出你想要的.apk.aar.jar文件,如果你足夠牛逼你有gradle就夠了直接拿記事本開發

如下圖是Gradle的工作流程。Initializtion 初始化執行settings.gradle(我們看到都是include",實際里邊可深了

Hook 通過API來添加這中間我們可以自己編程干些自己想做的事情

Configuration 解析每個project的build.gradle確定project以及內部Task關系形成一個有向圖

Execution 執行任務輸入命令 gradle xxx ,按照順序執行該task的所有依賴以自己本身

3 關于gradle的task

每個構建由一個或者多個project構成一個project代表一個jar一個moudle等等。一個project包含若干個task包含多少由插件決定而每一個task就是更細的構建任務比如創建一個jar、生成Javadoc、上傳aar到maven倉庫。我們可以通過執行如下命令查看所有的task:gradle?tasks?--all

當然我們也可以在AS中可以看到所有的task雙擊就可以執行單個的task.

當然我們也可以在build.gradle中寫自己的task。關于詳細的task介紹可以查看網絡資料進行學習推薦Gradle入門系列基本花上半天到一天的時候簡單的過一遍就有一個大概的了解。

4 Gradle環境下Android的文件結構project-namebuild//構建生成文件

libs//本地的依賴jar包等

src//本moudule所有的代碼和資源文件tests//單元測試報告apk//輸出我們需要的.apk文件

lint-results.html//lint檢查報告assets//資源文件

exploded-aar//如果我們依賴了許多的aar或者依賴工程最終都“copy"到了這個目錄下

mainfests//合并的mainfestintermediates//構建打包的資源文件

outputs

reports

ivy.xml//moudle的配置task任務、依賴關系等java//java code

jni //navtive jni so

gen

res

assets

AndroidManifest.xml +build.gradle //moduleandroidTest//需要android環境的單元測試比如UI的單元測試

Test//普通的java單元測試

main//主渠道gradle

module-name

build.gradle // for all module

gradle.propeties //全局配置文件

local.properties //SDK、NDK配置

config.gradle//自定義的配置文件

settings.gradle//module管理

6 關于幾個buid.gradle、gradle.propeties文件build.gradle文件(主工程的Top-level)apply?from:"config.gradle"//可以給所有的moudle引入一個配置文件

buildscript?{

repositories?{

jcenter()

}

dependencies?{

classpath?'com.android.tools.build:gradle:1.3.0'

//?NOTE:?Do?not?place?your?application?dependencies?here;?they?belong

//?in?the?individual?module?build.gradle?files

}

}

allprojects?{

repositories?{

jcenter()//引入遠程倉庫

maven?{?url?MAVEN_URL?}//引入自己的私有maven倉庫

}

}

gradle.properties(全局配置文件#?This?can?really?make?a?significant?difference?if?you?are?building?a?very?complex?project?with?many?sub-module?dependencies:

#sub-moudle并行構建

org.gradle.parallel=true

#后臺進程構建

org.gradle.daemon=true

#私有maven倉庫地址

MAVEN_URL=?http://xxx.xx.1.147:8081/nexus/content/repositories/thirdparty/

build.gradle(module)apply?plugin:?'com.android.application'//插件?決定是apk\aar\jar等

android?{

compileSdkVersion?23

buildToolsVersion?"24.0.0"

//?此處注釋保持默認打開關閉后可使不嚴格的圖片可以通過編譯,但會導致apk包變大

//aaptOptions.cruncherEnabled?=?false

//aaptOptions.useNewCruncher?=?false

packagingOptions?{

exclude?'META-INF/NOTICE.txt'//?這里是具體的沖突文件全路徑

exclude?'META-INF/LICENSE.txt'

}

//默認配置

defaultConfig?{

applicationId?"com.locove.meet"

minSdkVersion?16

targetSdkVersion?23

versionCode?1

versionName?"1.0"

multiDexEnabled=true//65536問題

}

sourceSets?{

main?{

jniLibs.srcDirs?=?['libs']//重新配置路徑

}

}

buildTypes?{

release?{

//?zipAlign優化

zipAlignEnabled?true

//?移除無用的resource文件

shrinkResources?false

//?混淆

minifyEnabled?false

proguardFiles?getDefaultProguardFile('proguard-android.txt'),?'proguard-rules.pro'

signingConfig?signingConfigs.releaseConfig

}

}

}

dependencies?{

compile?fileTree(dir:?'libs',?include:?['*.jar'])

compile?'com.google.code.gson:gson:2.2.+'

testCompile?'junit:junit:4.12'

}

7 gradle編譯文件和緩存文件gradle緩存文件C:\Users\Administrator.gradle\caches\modules-2\files-2.1

idea緩存文件 C:\Users\Administrator.AndroidStudio1.4

三、構建過程簡析

這里參考了QQ音樂技術團隊Android構建過程分析?下圖是文章末尾的一張構建流程圖解壓合并資源

主要是assets目錄res目錄Androidmainfest.xml目錄。其中合并的時候會涉及到優先級的問題詳情請查看該篇文章。

AAPT(Android Asset Packaging Tool)打包R.java文件 資源ID

app.ap 壓縮包

對png圖進行優化等

源碼編譯

生成.class字節碼在這里可以進行刪除無用類字節碼優化重命名包名還有一點就是代碼混淆。生成dex、打包簽名、zipalign

三、構建速度優化

AS編譯太慢是我們經常吐槽的我們該做些什么來加快編譯的速度呢前面我們簡單的了解了gradle構建項目的流程。我們可以從以下幾個方面來做

注意AS配置

如及時更新Gradle和JDK版本、擴大AS內存等修改-Xms256m、取消AS的自更新設置去除不經常使用的插件等。

慎重sub-module

減少sub-module或者將sub-module導成aar,并上傳到私有的maven倉庫就更加方便啦,每增加一個sub-module的構建的時間會增加很多。從根上解決這個問題我們應該增加sub-module時要慎重同時要考慮他的獨立性,與主module要完全解耦。這樣我們不會再開發的時候產品要換個ui圖也跑到sub-module里邊修改。當我們修改了sub-module的時候編譯器會檢測到修改重新編譯然后copy到主工程的buid/intermediates/exploded-aar目錄下。

守護進程deamon:

當我們在gradle.peopeties中配置org.gradle.daemon=true的時候相當于開了個進程這樣我們構建項目的許多工作比如加載虛擬機之類的就在該進程中完成。

并行編譯parallel:

這個適用于有多個依賴sub-module的情況下如果單單只有一個module實測會耗時更多。看看官方的說法When configured, Gradle will run in incubating parallel mode.This option should only be used with decoupled projects. org.gradle.parallel=true。這里通過增大gradle運行的java虛擬機大小達到多個module并行構建的目的。

依賴庫使用固定版本

我們配置依賴的時候 如依賴V4包com.android.support:support-v4:23.0.0+再后邊有個+后表示依賴最新的這樣可以保證依賴的庫有更新時能夠得到更新。但是小編并不建議這么做。因為每次構建都需要訪問網絡去判斷是否有最新版本這樣也是需要耗時的。我們可能需要頻繁的構建調試但是我們一般很少更新庫。當然這些可以配置在你的release分支上總之調試的請配置固定版本吧。

去除無用的構建任務task

Gradle每次構建都執行了默認的許多task其中部分task是我們不需要執行的至少在調試的時候不需要我們可以把這些屏蔽掉方法如下tasks.whenTaskAdded?{?task?->

if?(task.name.contains('AndroidTest')?||?task.name.contains('Test'))?{

task.enabled?=?false

}

}

巧用include

對于我們沒有依賴的module我們可以在settings.gradle里邊去掉改module的include建議寫成一行只include一個module如下include:'lib1'

//include:'lib2'

這樣我們實際就只include了lib1,當我們sync或者build\clean的時候就沒有lib2的事啦這樣解決時間。

減少構建過程中的I/O操作I/O操作如copy文件訪問git等,Debug版本配置的minSdkVersion 21+builder faster

Instant Run:

最后還想說幾點

1、不僅僅只是快1mms

這里的每一項我都嘗試配置使用過實際測試基本可以解決個10多mms當然也得看你的項目當然的狀態以及你編輯修改的東西。雖然解決下的時間不是很顯眼但是如果用百分數來看可以提高到20%的速度你就能感受到其中的價值啦然后再乘以你編譯的次數絕對的節約時間。

2、組件化的優勢

另外一點我曾在知乎上也回答過盡量的模塊化項目內容對于一些功能特點我們都可以抽象成小組件在demo中調試完成然后挪到工程里邊。這樣不僅豐富了自己的公共庫也提高了工作效率。

3、java調試或者說單元測試

對于純java的業務相信在model層里有很多都是我們可以通過只運行java來調試比如我最近在做單詞的短語匹配算法那么我在調試的時候再class里邊寫個main方法很low的方案僅調試算法部分就好然后實際還是要使用單元測試更憂。

四、Maven倉庫

1、Jcenter和mavenCentral區別jcenter比mavenCentral倉庫要全性能優響應要快但有一些構建還是僅存在maven里邊。

jcenter上傳lib流程更加簡單。

參數group 分組

artifact 名稱

version 版本

2、maven私服本機搭建maven私服

build.gradle

手動上傳上傳

遠程依賴

五、依賴以及統一依賴管理依賴種類aar

jar/AndroidManifest.xml (mandatory)

/classes.jar (mandatory)

/res/ (mandatory)

/R.txt (mandatory)

/assets/ (optional)

/libs/*.jar (optional)

/jni//*.so (optional)

/proguard.txt (optional)

/lint.jar (optional)庫library)依賴

工程moudle依賴

Dependency configurationscompile

runtime

testCompile

testRuntime

xxxCompile

依賴方式@aar

+1 自動更新最新版本建議Release版本中使用指定了文件類型為aar

You shouldn't need to put @aar if the pom declares the packaging as aar (which is true in your case).本地依賴離線:AS可以配置離線那么遠程依賴會使用本地緩存的而不再去請求加載

遠程倉庫依賴

依賴配置testCompile group: 'junit', name: 'junit', version: '4.+'

compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'

compile com.tencent.bugly:crashreport:2.1.5+

compile 'com.stubworld.core:CorelibAndroid:1.0@aar'build.gradle

project Structure

統一依賴管理實際就是將每個moudle的依賴配置寫到一個全局的配置文件中方便我們管理。我們可以添加一個全局的config.gradle,然后在全局的build.gradle中apply一下。詳解請參考文章搭建自己的maven私服并使用Gradle統一依賴管理

五、多渠道BuildType+ProductFlavor=Build Variant

buildType稱為構建類型ProductFlavor稱為定制產品。怎么理解呢buldType默認有debug和release兩個版本而productFlavor默認是匿名的。我們可以這么理解buildType是我們開發需要的通用類型比如默認的調試、發行版本、也可以定制方便測試人員測試的版本對于ProductFlavor就是我們需要對產品進行定制啦不同的Product對應了獨有的部分代碼比如我們要開發個免費版、企業版這里是舉個例子主要還是要看你的產品構成。兩者還有一個區別在于buildType默認共享一個defaultConfig,但是不同的Product可以對應不同的xxxConfig,由此就可以擁有不同包名等。

下面教你如果給有多重依賴關系module配置多渠道直接貼碼說明 我們假設A依賴了B、B依賴了C//A為主工程

productFlavors{

free{

//免費版

minSdkVersion?21

}

pay{

//付費版

minSdkVersion?14

}

}

buildTypes{

release{

resValue?"string",?"app_name",?"CoolApp"

signingConfig?signingConfigs.release

buildConfigField?"String",?"API_URL",?'"http://api.dev.com/"'

buildConfigField?"boolean",?"REPORT_CRASHES",?"true"

}

debug{

applicationIdSuffix?".debug"

versionNameSuffix?"-debug"

resValue?"string",?"app_name",?"CoolApp?(debug)"

signingConfig?signingConfigs.debug

buildConfigField?"String",?"API_URL",?'"http://api.prod.com/"'

buildConfigField?"boolean",?"REPORT_CRASHES",?"false"

}

}

dependencies{

freeCompile?project(path:'B',configuration:'freeRelease')

freeCompile?project(path:'B',configuration:'freeDebug')

payCompile?project(path:'B',configuration:'payRelease')

payCompile?project(path:'B',configuration:'payDebug')

}

//B為依賴工程

publishNonDefault?true?//依賴工程這一句很重要不然sync不過

productFlavors{

free{

}

pay{

}

}

buildTypes{

debug{

}

release{

}

}

dependencies{

freeCompile?project(path:'C',configuration:'freeRelease')

freeCompile?project(path:'C',configuration:'freeDebug')

payCompile?project(path:'C',configuration:'payRelease')

payCompile?project(path:'C',configuration:'payDebug')

}

//在對應的module里面新建和main平級和productFlavors名字相同的問題夾并且將src等放在和main相同的路徑下就ok啦編譯不同的渠道會找不同的文件。多渠道的意義可以配置不同的URL地址

不同的名字、版本名、ApplicationId

不同的簽名配置

不同的源碼

不同的manifest

不同的sdk

小結

不同的產品要求、不同的生產環境我們都可以通過配置多個渠道來達到我們的工作要求省時省力。

六、Eclipse項目徹底轉為AS1、策略步驟一Eclipse導出獲得xxx.gradle

步驟二畫出依賴關系圖

步驟三調整文件結構把文件結果弄成標準的用資源管理器就可

步驟四修改build.gradle,修復依賴關系

步驟五建立gradle統一管理對于大項目依賴負責常更新的還是有必要的

2、坑

平時使用的時候也會出現這種問題好好的sync的時候一直報R文件找不到clean后還是不行我的解決方案是在settings.gradle文件里邊注釋掉報錯的module所有上層的include包括自身sync一下沒有問題。然后打開自己sync沒有問題然后逐層向上打開工程一切ok。Multiple dex files define?http://Lcom.xxx.xxx.xxxR文件不存在

3、技巧依賴關系理清由下至上

靈活使用settings.gradle,控制include可以syncbuild任何一個工程以及所依賴的工程減少時間方法查找問題提高效率

構建交給服務器如果公司有服務器構建的話對于大項目可以交給服務器來編譯解放自己的電腦來干別的工作

clean、Invalidate Caches、Restart、刪除.idea、.gradle

七、 只有一個快捷鍵Acton or option

網絡上有許多的快捷鍵大全之類的看的密密麻麻的東西我就頭暈最后在知乎上有位大神提到AS只有一個快捷鍵那就是Control+Shift+A瞬間頓悟。所以后面我很少去既什么操作快捷鍵是什么而只是研究快捷操作英文名是什么比如說定位跳轉到某一行我只要control+shift+A然后輸入Line,就會列出所有有關line的操作與此同時每次操作我都會留意下跟在后邊括號里邊的快捷鍵是啥如此往復循環一次使用頻率高的就給記住直接的快捷鍵沒有記住的模糊搜索下操作指令名稱也能快速找到如果沒有可以去keymap里邊自定義設置。關于操作大概總結了以下幾類1、提示源碼提示Documentationctrl Ctrl+shilf+space 連續兩次放大查看 再次點擊縮小

查看某個方法的調用路徑Call Hierachy Ctrl+alt+h

查看某個方法的具體內容Definition Ctrl+Shift+I

extends或者implement 的所有子類 chooseImplementation Ctrl+Alt+B \Ctrl+T

2、編輯同起點按住Alt同時鼠標上下走

不同起點按住Shift+Alt ,同時鼠標多處點擊多行編輯

自動補全Surround if.else,try/catch可以使用快捷鍵Ctrl+Alt+T (Code | Surround With)

3、查找和替換 file find goto search replace打開文件enter file name ctrl+shift+r 輸入文件名

打開文件-資源文件 ctrl+alt+F12 , 按住ctrl,鼠標點擊

打開一個類 enter class name ctrl+shift+t 輸入類名

跳轉到一個方法File Structure Ctrl+O 輸入方法名

打開某一個對象 symbol 輸入對象名

跳轉到某一行line 輸入行數

跳轉到當期接口的實現方法implementation(s) ctrl+t

全部文件替換 Replace in path 比如你要替換整個工程真某個字符串

書簽 bookmarks 我的總結是有限的實際在官方文檔中有分類說明

八、代碼檢查操作 Analyze | Inspect Code | 窗口顯示

AndroidperformanceUnused resources //沒有使用到的資源reslint

class structureFile can be local //可以是局部變量的寫成了全局變量

ImportsUnused import 沒有使用的import

GeneralDefault File Template Usage //有些沒有使用模板的規范

Performance issues'StringBuffer'can be replaced with 'String'

Probable bugsString comparison using '==', instead of 'equals()'

簡單舉例也可以在面板上直接輸入文字搜索

九、調試

這里不再過多敘述啦本人實際開發中使用的也是比較基礎不過有個技巧當我們按住Alt鍵然后點擊某一行代碼可以查看到這一行代碼的執行結果。前提是這行代碼已經執行過啦覺得還是挺好用的。更多可以參考Android Studio代碼調試大全學習。

十、 終極技巧合理使用插件pluginSimpleUML

MarkDown

書簽、喜歡分組bookMarks、favorites

抓屏布局分析LayoutInspector

宏Edit|Macors

這個和office辦公軟件有點類似我們可以錄制一段操作然后播放就可以自動執行錄制好的操作。Templates模板File 的頭部可能有聲明作者、日期的注釋這里可以自動生成。SaveAsTemplates可以將某一個class或者文件保存為模板新建的時候直接生成引用。.notnull 自動填充為空的判斷

.for

具體的有很多在設置面板中查看LiveTemplates (Settings|Live Teamplates)

FileTemplates

File and Code Templates

Project Templates

前后綴Editor|Code Style|Java

這個可以自動給變量添加一個前后綴比如我們的成員變量常在前面加一個m。

Intentions

意圖這里可以根據預設的代碼結構來填充修改代碼比如我們有 a.equals("A"),如果我們按 Alt+Enter,就會有一個split的提示選項點擊之后代碼就會變成 “A".equalsa。具體有很多打開設置面板自己看吧。

版本管理分支代碼對比 AS右下角的邊框有分支可以看點開就可以有許多的功能。前提是已經激活配置好git.

Annotatelayout布局遍歷

巧用Alt+Enter

當我們的代碼報錯的時候當我們希望有更多功能的時候按這個快捷鍵就會有很多驚喜。比如我們在一個Class上使用該快捷鍵就會有提示添加單元測試 Create Test 然后一秒鐘添加好了單元測試類。巧用Settings.gradle 我們可以通過注釋include達到自由管理項目中各個moudle在我們編譯出錯的時候方便查問題。

快捷鍵有這個命令圖就夠啦。

模板 Tools/Save File as a Template

巧用AS無處不在的篩選排列顯示project里邊的 project/android/FlattenPackages

Find Usage 結果列表中的 write

以及每個工具面板中的篩選按鈕

巧用注解@NonNull 官方文檔 Improve Code Inspection with Annotations

面板區域內直接輸入搜索

我們在很多的面板比如左側的項目導航欄可以直接輸入字母模糊搜索你需要的文件。LocalHistory

代碼編輯的歷史記錄方便找回意外丟失修改的代碼。一些有趣的task根據git提交自動配置版本號defaultConfig?{

#?Add?10000?to?move?past?old?SVN?revisions.

versionCode?gitCommitCount()?+?10000??:?0

}

def?gitCommitCount()?{

try?{

def?stdout?=?new?ByteArrayOutputStream()

exec?{

commandLine?'git',?'rev-list',?'--count',?'HEAD'

standardOutput?=?stdout

}

def?commitCount?=?stdout.toString().trim().toInteger()

return?commitCount

}

catch?(ignored)?{

return?0;

}

}

def?gitRevision()?{

try?{

def?stdout?=?new?ByteArrayOutputStream()

exec?{

commandLine?'git',?'rev-list',?'HEAD',?'-n',?'1'

standardOutput?=?stdout

}

def?commitRevision?=?stdout.toString().trim()

return?commitRevision

}

catch?(ignored)?{

return?"(unknown?revision)";

}

}

其他參考

十一、 AndroidStudio 2.2版本特性設計布局編輯器

約束布局

開發改進C++支持

示例瀏覽器

構建Instant Run 改進

Java 8 支持

Open JDK 支持

測試模擬器增加了虛擬傳感器

apk分析器

十二、總結Gradle是一個強大的包裝機

maven遠程依賴很給力

快捷鍵只有一個那就是Ctrl+Shift+A

絕招有很多.套路太深別說你不懂

妹紙都是浮云我們天天雙眼就盯著AndroidStudio,所謂日久生情。

總結

以上是生活随笔為你收集整理的as安装过程中gradle_重新认识AndroidStudio和Gradle,这些都是我们应该知道的的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。