受用不盡的Gradle使用方法與技巧

2021-07-09 07:02:35 字數 1805 閱讀 7827

描述

gradle儘管比android studio早出現,但直到成了官方ide之後,gradle才逐漸流行起來。然而,我們是否將這個強大的自動化構建系統的優勢發揮地淋漓盡致了呢?

專案與build的特定全域性變數

用gradle可以自動生成buildconfig類,其中能夠生成附加字段。這對配置伺服器url之類的工作十分有用,使用它也能輕鬆開啟或關閉功能。

defaultconfig

buildtypes

release

} 可以從buildconfig的final類buildconfig.twitter_token,buildconfig.report_crashes與buildconfig.api_url進行訪問,後兩個根據所在的build類不同也會有差異。

這樣一來使用者就能同時安裝發布版與debug版了(切記,在安卓系統中無法安裝同名的不同應用)。使用者可以在崩潰報告工具中以不同的版本名篩選問題與崩潰。通過檢視應用名很容易找到目前所執行的版本。

在android系統中,所有應用都必須經過證書數字簽名才能安裝,以便系統能夠識別應用的作者。而其中有些屬於敏感資訊,不應被別人看到。

使用者永遠不該將這類資訊check in到源**管理工具中。

有些人主張,每個人都應當有自己的本地配置檔案,甚至用全域性的~/.gradle/build.gradle,不過如果你要執行持續整合(ci)或部署,特別是沒有自己ci伺服器的情況下,不應在cvs系統裡存放任何型別的純文字憑證。

自動生成版本名稱(versionname)與版本號(versioncode)

將你的版本拆分成邏輯元件,分別管理。不用再考慮版本號修改的是否正確,也不用擔心版本名更新的是否合適了。

def versionmajor = 1

def versionminor = 0

def versionpatch = 0

android .$.$」

} }

給buildconfig增加git hash與build時間

def gitsha = 『git rev-parse –short head』.execute(, project.rootdir).text.trim()

def buildtime = new date().format(「yyyy-mm-dd』t』hh:mm:ss』z』」, timezone.gettimezone(「utc」))

android \」」

buildconfigfield 「string」, 「build_time」, 「\」$\」」

} }

現在有兩個可用變數:buildconfig.git_sha和buildconfig.build_time,用來結合日誌與提交資訊或者build時間再好不過。

扣緊安全帶

想要快速完成部署,只需建立dev型別,將minsdkversion設定為21。注意:這樣做的話,就無法獲得針對真實minsdk的合適linting了。因此很明顯只能用在日常工作中,而不能用在發布時。這樣一來,安卓gradle外掛程式可以將應用程式的每個模組構建為不同的dex檔案(pre-dex),並生成可以在android lollipop及以上系統中測試的apk包,而無需再耗費大量時間進行dex合併程序。

使用這個小技巧,我們可以實時看到安卓單元測試的記錄結果。

android

showstandardstreams = true

} }

} 現在執行測試時,輸出結果如下:

描述gradle,tell me i』m pretty

全部放在一起的話,順序如下:

android

release

}

機械秒錶的使用方法 秒錶的使用方法!

秒錶是一種常用的測時儀器。又可稱 機械停表 由暫停按鈕 發條柄頭 分針等組成。它是利用擺的等時性控制指標轉動而計時的。它是利用擺的等時性控制指標轉動而計時的。在它的正面是乙個大表盤,上方有乙個小表盤 圖1.4 2 秒針沿大表盤轉動,分針沿小表盤轉動。分針和秒針所指的時間和就是所測的時間間隔。在表正上...

巨集的使用方法

巨集的使用方法 最近做專案需要記錄許多使用者選擇.例如記錄使用者選擇的星期.用笨方法的話,就用結構吧.例如typedef struct tagid bool week 1 bool week 2 bool week 3 bool week 4 bool week 5 bool week 6 bool...

Oracle CURSOR的使用方法

前言 oracle的對錶操作中有一種類似於dataset的物件操作方法cursor,它可以通過建立表的操作物件或者說表的指標物件來達到從表裡面提取資料的操作。說明 一般通過sql語言可以針對某個表的某一行或多行資料進行操作比如說select,update等。這些操作必須以sql語句的語法格式來被直譯...