使用 buck 打包 Android( 使用OkBuck給Android Studio+gradle生成 buck 指令碼)
阿新 • • 發佈:2019-02-07
一、安裝Buck
Buck是一個由Facebook推出的開源Android build工具。Buck可以加速你的Android構建,它通過獨立構件並行來發揮多核的效能。進一步的,它還可以通過跟蹤不變資源的情況下減少增量構建次數,從而以最小的資源集重建。它採用特殊的構建步驟,與Ant構建指令碼不同。Facebook稱,Buck最關注的就是速度,Buck的速度是Ant的兩倍。0、缺陷
暫不支援databinding1、環境
Buck當前只支援 Mac OS X 和 Linux本文以Mac OS X平臺為例進行介紹
首先需要確保你的 OS X 滿足以下條件:
Oracle JDK 7
Apache Ant 1.8 (or newer)
Python 2.6 or 2.7
Git
C 編譯器:gcc或者clang
Android SDK
上述環境都要加入環境變數裡。
2、安裝Buck
1) 在終端裡執行如下命令:
git clone https://github.com/facebook/buck.git
如果下載不動的話,可以去網盤裡下載。 2) 加入環境變數
vim ~/.bash_profile
export PATH="/Users/liumeng/Documents/MySDK/buck-master/bin:$PATH"
source ~/.bash_profile
3、安裝 Watchman
Facebook 開源的一個檔案監控服務,用來監視檔案並且記錄檔案的改動情況,當檔案變更它可以觸發一些操作,例如執行一些命令等等。安裝watchman,是為了避免Buck每次都去解析 build files,同時可以快取其他一些東西,減少編譯時間。Watchman安裝很簡單,指令碼如下:brew install watchman
4、驗證
buck --help
如果一切正常的話,你會得到如下日誌資訊:buck build tool usage: buck [options] buck command --help buck command [command-options] available commands: audit lists the inputs for the specified target build builds the specified target clean deletes any generated files fetch downloads remote resources to your local machine install builds and installs an application project generates project configuration files for an IDE query provides facilities to query information about the target nodes graph quickstart generates a default project directory server query and control the http server targets prints the list of buildable targets test builds and runs the tests for the specified target uninstall uninstalls an APK options: --help : Shows this screen and exits. --version (-V) : Show version number.
二、使用OkBuck 給 Android Studio + Gradle 一鍵生成 buck 指令碼
1、在現有工程的根目錄下的 build.gradle 新增
buildscript {
repositories {
jcenter()
}
dependencies {
...
classpath "com.github.piasy:okbuck-gradle-plugin:0.4.2"
...
}
}
allprojects {
...
}
apply plugin: 'com.github.piasy.okbuck-gradle-plugin'
okbuck {
target "android-21"
}
1) apply plugin 要放到 allprojects 下面;
2 resPackages用於指定每個Android library module和Android application module的R檔案的包名,你需要在resPackages裡面為每個module指定包名,將dummylibrary/app替換為你的module的名字,引號裡面的內容通常都是對應module的AndroidManifest.xml中的包名。3) signConfigName是指
android {
...
signingConfigs {
release {
...
}
}
...
}
中的 signingConfig name
2、在工程根目錄下的.gitignore裡新增忽略配置
#buck
.buckconfig
*/BUCK
.buckd
.okbuck
buck-out
3、生成 buck 配置
./gradlew okbuck
4、編譯
在工程根目錄執行buck install app即可開始使用buck構建安裝了(假設你的application module叫app)buck install app