編輯:關於Android編程
gradle是Android開發中引入的全新的構建系統,因為全新的構建系統主要是出於下面的目的:
1. 方便復用代碼和資源
2. 構建多種版本的apk更見簡單,不論是為多渠道構建不同的apk還是構建不同環境的apk(debug,release)
3. 方便配置,擴展,自定義構建過程
4. 良好的IDE集成
為什麼選擇Gradle?
Gradle主要有以下幾個有點:
1. 使用領域驅動語言(DSL)來描述構建邏輯
2. 構建腳本使用Groovy,可以方便的定制構建邏輯
3. 內建的依賴管理系統,使用Maven或者Ivy
4. 非常靈活。可以使用最佳實踐但並不強制
5. 良好的IDE支持
Gradle項目使用項目根目錄下的build.gradle文件來配置
一個最簡單的Java項目的build.gradle如下
apply plugin: 'java'
這表示改項目會使用Gradle的java插件,該插件是Gradle默認提供的,java插件提供了構建java應用和運行測試的功能。
最簡單的Android項目build.gralde
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.11.1' } } apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion "19.0.0" }
該Android構建文件包含3個部分:
1.buildscript { ... } 配置驅動構建過程的代碼,意思就是buildscript中的配置僅僅在構建過程中起作用,也就是構建程序所使用的配置。
上面的代碼中就聲明了我們的構建程序會使用Maven中央倉庫,並且有一個classpath依賴是指向一個Maven庫的。這個Maven庫就是Android Gradle插件,版本號是0.11.1。
2.隨後就是使用這個Android插件,和之前使用Java插件一樣。
3.最後,android { ... }配置了Android項目構建時需要的所有參數。
默認情況下,只需要指定compileSdkVersion和buildtoolsVersion,compileSdkVersion指定使用哪個版本的sdk編譯,buildToolsVersion指定使用哪個版本的構建工具。
注意點:
1. 只需要使用android插件,再使用Java插件會報錯.
2. 在local.properties中使用sdk.dir屬性指定SDK路徑,或者你可以使用ANDROID_HOME環境變量。
項目結構
Gradle采用約定優於配置的原則,最簡單方式是使用一個默認的目錄結構。當然目錄結構是可以自己修改的。
默認情況下,android gradle項目的代碼都在src目錄下,src下會有兩個目錄main和androidTest,其中main目錄下是項目代碼,androidTest目錄下是測試代碼。
src/main/ src/androidTest/
在main和androidTest目錄下面,針對不同類型的code,又不會不同的目錄。
對於Java和Android的Gradle插件,Java代碼和Java資源分別對應了java目錄和resources目錄。Android插件還需要一些其他的目錄和文件,比如
AndroidManifest.xml res/ assets/ aidl/ rs/ jni/
下面我們來看一下如何更改這些默認的配置。
Android工程,默認情況下,java文件和resource文件分別在src/main/java和src/main/res目錄下,在build.gradle文件,andorid{}裡面添加下面的代碼,便可以將java文件和resource文件放到src/java和src/resources目錄下。(注意,如果你在gradle文件中修改了,只需要重新sync一下,gradle會自動創建新的目錄,並將對應的文件移動到新的目錄下)
sourceSets { main { java { srcDir 'src/java' } resources { srcDir 'src/resources' } } }
更簡便的寫法是
sourceSets { main.java.srcDirs = ['src/java'] main.resources.srcDirs = ['src/resources'] }
數組裡其實是可以指定多個目錄,這樣就可以將代碼和資源放置到多個目錄下。
在看一個Android項目的例子:
android { sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } androidTest.setRoot('tests') } }
這裡的main code其實使用的就是Android Gradle的默認值,而androidTest不再使用默認的androidTest目錄,而是使用tests目錄。
前言我們所熟知的,Android 的圖形繪制主要是基於 View 這個類實現。 每個 View 的繪制都需要經過 onMeasure、onLayout、onDraw 三步
現在開發中Android RecyclerView可能用的比較多,不過ListView作為常用控件學習它的使用和擴展也是十分重要的。簡單封裝了一個下拉刷新和上拉加載的Li
在Android上,搜索是一個核心用戶特性。用戶可以搜索可用的任何數據,不管內容是存促於設備本身或者需要通過網絡訪問。Android提供了一個搜索框架為用戶創建一個一致的
本文實例為大家分享了Android音樂播放器的具體代碼,供大家參考,具體內容如下1.播放項目內的音樂package com.thm.g150820_android26_p