Android Studio目录结构和Gradle构建Android项目
一,Android Studio的目錄結構和工程項目介紹
二,Eclipse工程與Android Studio工程的區別
? ? 1,Eclipse工程能導入AS運行,但AS建立的工程不能再Eclipse中運行。
? ? ?2,工程結構不一樣,在Eclipse中的一個Project就代表一個項目工程即Android應用,而在Android Studio中一個Project代表一個項目空間,相當于Eclipse中的workspace,一個Module相當于Eclipse的project即一個Android應用。如上圖中,Tuke_App_Demo是項目空間,前面的圖標右下角有個杯子,app是Module,前面的圖標右下角一個手機,一個項目空間可以有很多Module。
? ? ? 3,工程目錄上的區別,在Eclipse中src部分一般是java文件,res部分是資源文件,包括布局文件和多媒體資源等
包括java文件和資源文件全部放到了src目錄下,src目錄下包括一個main文件夾,再下面就是java文件夾和res文件夾,其實這里,java文件夾就相當于Eclipse中的src,res還是那個res,這里想起了本山老師的小品“src已經不是那個src了,res還是那個res”
三,什么是Gradle?
? ? ? ?Java的自動化構建工具,大家一定對Ant和Maven都不會陌生,對,Gradle就是這樣一種類似的工具,不過它比Ant和Maven強大的多,而且使用起來更加方便簡單并且兼容Maven。Gradle是以Groovy為基礎,面向java應用,基于DSL語法的自動化構建工具。是google引入,替換ant和maven的新工具。
? ? ? ? Gradle以Module來管理project,在Gradle構建Gradle Project中通常包含application module(apply plugin:'com.android.application')和library module(apply plugin:'com.android.library')
? ? ? ? Gradle在Project中使用時,基本上全都使用.gradle文件來配置,是一種腳本化得工程構建,而不是原先ADT中那種Eclipse的可視化構建。Gradle的依賴管理能力及其強大,幾乎所有的開源項目都可以簡單的通過一條compile指令完成依賴的配置。
四,安裝Gradle
? ? ? ? 第一次創建項目成功后會下載Gradle,貌似不翻墻也可以下載,但是訪問慢,建議翻墻下載。那么下載的地址什么呢?看目錄中有個gradle-wrapper.properties文件
#Mon Dec 28 10:00:20 PST 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip 最后一項就是下載Gradle的地址。
? ? ? ? ? 也可以手動用命令下載Gradle,在Android Studio下方的Terminal終端中,在項目空間目錄下輸入“gradlew -v”,如果項目沒有下載過上述版本的Gradle,就會開始下載,如果下載過,就會顯示當前已下載的Gradle版本信息。 ??
那么下載的Gradle位置在什么地方呢?
window系統中下載位置是?:C:\Documents and Settings<用戶名>.gradle\wrapper\dists 目錄
會看到這個目錄下下載的gradle-x.xx-all文件夾。如果下載實在太慢,可以到Gradle官網https://gradle.org/install下載對應的版本,然后將下載的.zip文件(也可以解壓)復制到上述的gradle-x.xx-all 文件夾下,不過還是建議讓它直接下載的好。
五,Gradle的基本概念
如果你用Android Studio新建一個項目的時候,默認生成一大堆關于gradle的東西,其中最重要的是兩個build.gradle的文件:一個是項目空間的build.gradle文件,一個是module中的build.gradle文件
項目空間的build.gradle文件:
buildscript,repositories和dependencies本身是方法名。后面跟的大括號部分,都是一個閉包,作為方法的參數。
閉包可以簡單的理解為一個代碼塊或方法指針。
buildscript節點的內容完全不用動,大概意思就是支持jcenter中央倉庫,聲明Gradle的版本。jcenter中央倉庫中的包可以在module中的build.gradle文件的dependencies直接用compile引用。
module中的build.gradle文件:
1,apply plugin: 'com.android.application'。//apply是一個方法,plugin是參數,值為'com.android.application'當值是'com.android.library'時,此module是一個依賴包。
2,android{…}。設置編譯android項目的參數。
? ? ? 支持的配置有:
? ? ? minSdkVersion 最小支持sdk版本
? ? ? targetSdkVersion 編譯時的目標sdk版本
? ? ? versionCode 程序版本號
? ? ? versionName 程序版本名稱
? ? ? packageName 程序包名
? ? ? Package Name for the test application 測試用的程序包名
? ? ? Instrumentation test runner 測試用的instrumentation實例
3,dependencies{...}.設置當前module的依賴包,jar或者庫工程。當需要依賴其他jar包時只需要添加一句compile即可。
module的build.gradle文件可以在File->Project Structure里設置
六,使用Gradle構建一個Android項目
Gradle構建系統有自己的生命周期,初始化、配置和運行三個階段。
? ? ?1,初始化階段,會去讀取根工程中setting.gradle中的include信息,決定有哪幾個工程加入構建,創建project實例,比如下面有三個工程: include ':app', ':lib1', ':lib2'
? ? ?2,配置階段,會去執行所有工程的build.gradle腳本,配置project對象,一個對象由多個任務組成,此階段也會去創建、配置task及相關信息。
? ? ?3,運行階段,根據gradle命令傳遞過來的task名稱,執行相關依賴任務
a,在Android Studio下方的Terminal終端中,使用“gradlew clean”指令。
如果是第一次使用gradle構建,則會下載相關依賴包并且對環境進行初始化,如果出錯了,一般可能是下載超時,試多幾次即可,最后你會看到如下提示:BUILD SUCCESSFUL 完成以上的步驟,就可以正式使用gralde 構建你的android項目了
b,接著執行“gradlew build”指令
就完成了android 項目的構建了。如果,你是照著以上步驟走的話,你將會在項目目錄里面看到一個build 的目錄,里面就是用gradle 構建android項目的全部東西了。最終打包的apk 就在build/apk 目錄下了。然后,你會發現,兩個apk 一個是 [項目名]-debug-unaligned [項目名]-release-unsigned,看名字就猜到一個是調試模式沒有進行優化的apk(可直接安裝),一個是release模式但沒有簽名的apk(不可直接安裝)
打簽名包
默認輸出 release apk 是沒有簽名的,那么我們需要簽名的很簡單,只需要在android{}里面補充加上如下代碼即可。
signingConfigs {myConfig {storeFile file("storm.keystore")storePassword "storm"keyAlias "storm"keyPassword "storm"} } 或者在File->Project Structure中設置
然后運行,gradlew clean,gradlew build。
總結
以上是生活随笔為你收集整理的Android Studio目录结构和Gradle构建Android项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Studio的gradl
- 下一篇: Android Studio的Gradl