本文共 4011 字,大约阅读时间需要 13 分钟。
一、安装Buck
是一个由Facebook推出的开源Android build工具。Buck可以加速你的Android构建,它通过独立构件并行来发挥多核的性能。进一步的,它还可以通过跟踪不变资源的情况下减少增量构建次数,从而以最小的资源集重建。它采用特殊的构建步骤,与Ant构建脚本不同。Facebook称,Buck最关注的就是速度,Buck的速度是Ant的两倍。
0、缺陷
1、环境
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
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
vim ~/.bash_profileexport 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.
buck build toolusage: 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 APKoptions: --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"
- }
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 {
- ...
- }
- }
- ...
- }
android { ... signingConfigs { release { ... } } ...}
中的 signingConfig name
2、在工程根目录下的.gitignore里添加忽略配置
- #buck
- .buckconfig
- */BUCK
- .buckd
- .okbuck
- buck-out
#buck.buckconfig*/BUCK.buckd.okbuckbuck-out
3、生成 buck 配置
./gradlew okbuck
4、编译
在工程根目录执行buck install app即可开始使用buck构建安装了(假设你的application module叫app)
buck install app
三、使用Buck for IDEA 修改 生成后的 buck 文件
目前 Okbuck 生成的 buck 文件还有局限性,需要手动修改,可以使用此
转载地址:http://vwitd.baihongyu.com/