編輯:Android開發實例
續上一篇《用Gradle 構建android程序之入門篇 》,這次把上次沒寫的關於,如何用gralde 構建帶有依賴的項目補全吧。
個人感覺還是說說,目前android gradle 插件的現況,如無意外應該是最新的。
目前最新的官方gradle android 是0.4,除了android 官方的gralde的插件,也有一些開發者很早以前開發的gradle 插件,不過現在基本不維護了,所以這裡不對這些第三方的gradle插件進行介紹。
android Gradle 0.4 插件maven中央庫,目前新的android gradle 構建系統基本完善,現在已知的問題有
如果,以上問題的你都碰到不到的話,從現在開始,用gradle來構建android程序是一個不錯的選擇。
這裡閱讀的前提是你已經把上一篇已經看過。
gradle 作為構建工具,能夠很方便的使用本地jar包,以下為使用的代碼塊。
- dependencies {
- //單文件依賴
- compile files('libs/android-support-v4.jar')
- //某個文件夾下面全部依賴
- compile fileTree(dir: 'libs', include: '*.jar')
- }
- android {
- }
gradle 同時支持maven,ivy,由於ivy我沒用過,所以用maven 作為例子,以下為代碼塊:
- repositories {
- //從中央庫裡面獲取依賴
- mavenCentral()
- //或者使用指定的本地maven 庫
- maven{
- url "file://F:/githubrepo/releases"
- }
- //或者使用指定的遠程maven庫
- maven{
- url "https://github.com/youxiachai/youxiachai-mvn-repo/raw/master/releases"
- }
- }
- dependencies {
- //應用格式: packageName:artifactId:version
- compile 'com.google.android:support-v4:r13'
- }
- android {
- }
對於項目依賴 android library的話,就不是依賴一個jar,那麼簡單了,在這裡需要使用gradle mulit project 機制。例子的話,我就不重復寫了,具體參考上一篇提到的德國人寫的例子。記得把插件版本改為 0.4 https://github.com/Goddchen/Android-Gradle-Examples/tree/master/Gradle%20Library%20Projects
注意對於android library build.gradle
記得要把
apply plugin: 'android' 改為 apply plugin: 'android-library'
Mulit project 設置是gradle 約定的一種格式,如果你需要編譯某個項目之前,要先編譯另外一個項目的時候,就需要用到,結構如下圖(來自於官方文檔):
MyProject/ | settings.gradle + app/ | build.gradle + libraries/ + lib1/ | build.gradle + lib2/ | build.gradle
你需要在你的workplace 目錄下面創建settings.gradle 的文件,然後在裡面寫上:
include ':app', ':libraries:lib1', ':libraries:lib2'
那樣,gradle mutil project 就設置完畢。
對於app project 如果需要應用libraries 目錄下的 lib1 ,你只需要在app project build.gradle
裡面的依賴中這麼寫:
- compile project(':libraries:lib1')
即可完成,寫完以後可以用gradle AndroidDependencies
來檢查依賴狀況。
- buildscript {
- repositories {
- mavenCentral()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:0.4'
- }
- }
對於buildscript{}
在android gradle是用來預置插件環境,一般不建議把依賴寫著裡面,推薦的依賴寫法是:
- buildscript {
- repositories {
- mavenCentral()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:0.4'
- }
- }
- repositories {
- //從中央庫裡面獲取依賴
- mavenCentral()
- //或者使用指定的本地maven 庫
- maven{
- url "file://F:/githubrepo/releases"
- }
- }
- dependencies {
- //應用格式: packageName:artifactId:version
- compile 'com.google.android:support-v4:r13'
- }
gradle 對於包的管理,支持filesystem,maven,ivy,這裡我重點說說如何利用maven 進行android 依賴包的管理
對於如何打包一個jar 包並且發布到maven,這是java 的基本知識,這裡就不說了。
我們現在要學習的是,例如發布一個android library 包。
在過去,android library並沒有一個很好的包管理方式,簡單來說,在gradle出現以前,官方並沒有一種用於管理android library 依賴包的方式,一般我們都是直接下載別人的android library project 源碼進行集成,而對於第三方的android-maven-plugin 用的是apklib 格式。
而現在,官方終於推出一種android library的打包格式,擴展名為*.aar
。前面提到,目前android gradle插件並不支持本地直接使用*.aar
文件,不過,支持包管理庫的引用方式,下面,我為大家說一下,怎麼對android library 發布使用。
打包android library
對android library 進行打包直接在library項目下面使用
gradle build
即可,然後,你就會在 build/libs 目錄下看到兩個*.aar
文件,一個debug包用的,一個是release 下用的,看個人需求使用,這裡我們用的是release 版本的 .aar 文件。
發布腳本
android library project 目錄的 build/libs 下創建一個build.gradle 文件
- apply plugin: 'maven'
- group = 'com.youxiachai'
- artifacts {
- //當前aar 文件名
- archives file('Gradlelib.aar')
- }
- uploadArchives {
- repositories {
- mavenDeployer {
- repository(url: "file://F:/githubrepo/releases")
- pom.version = 'r1'
- pom.artifactId = 'gradletest'
- }
- }
- }
gradle uploadArchives即可完成包的發布。
完成以上兩步就可以直接用maven 引用jar的依賴那樣,引用android library 的依賴。
Google I/O 2013 上面介紹的android Gralde build System (已經轉載到優酷)
Xavier Ducrohet Android SDK Tech Lead,上面那個視頻就是這個人演講的。
adt-dev社區 因為用gradle 構建android 是新系統,一般而言有問題是搜索不到的,有問題還是上社區直接問吧,一般Xavier Ducrohet 都會幫你解決。
轉自:http://www.cnblogs.com/youxilua/archive/2013/05/22/3092657.html
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
在項目開發中,可能系統自帶的一些widget不能滿足我們的需求,這時就需要自定義View。 通過查看系統中的常用widget如Button,TextView,Ed
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用