使用 buck 打包 Android( 使用OkBuck给Android Studio+gradle生成 buck 脚本)
2016-08-05 15:17
519 查看
一、安装Buck
Buck是一个由Facebook推出的开源Android build工具。Buck可以加速你的Android构建,它通过独立构件并行来发挥多核的性能。进一步的,它还可以通过跟踪不变资源的情况下减少增量构建次数,从而以最小的资源集重建。它采用特殊的构建步骤,与Ant构建脚本不同。Facebook称,Buck最关注的就是速度,Buck的速度是Ant的两倍。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) 在终端里执行如下命令:[html] view
plain copy
git clone https://github.com/facebook/buck.git
如果下载不动的话,可以去网盘里下载。
2) 加入环境变量
[html] view
plain copy
vim ~/.bash_profile
export PATH="/Users/liumeng/Documents/MySDK/buck-master/bin:$PATH"
source ~/.bash_profile
3、安装 Watchman
Facebook 开源的一个文件监控服务,用来监视文件并且记录文件的改动情况,当文件变更它可以触发一些操作,例如执行一些命令等等。安装watchman,是为了避免Buck每次都去解析 build files,同时可以缓存其他一些东西,减少编译时间。Watchman安装很简单,脚本如下:[html] view
plain copy
brew install watchman
4、验证
[html] viewplain copy
buck --help
如果一切正常的话,你会得到如下日志信息:
[html] view
plain copy
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 添加
[html] viewplain copy
buildscript {
repositories {
jcenter()
}
dependencies {
...
classpath "com.github.piasy:okbuck-gradle-plugin:0.2.3"
...
}
}
allprojects {
...
}
apply plugin: 'com.github.piasy.okbuck-gradle-plugin'
okbuck {
target "android-21"
overwrite true
signConfigName "release"
resPackages = [
'app' : 'net.masonliu.app',
'library': 'net.masonliu.okhttpplus'
]
}
1) apply plugin 要放到 allprojects 下面;
2) overwrite指定是否覆盖已有的buck配置文件;
3) resPackages用于指定每个Android library module和Android application module的R文件的包名,你需要在resPackages里面为每个module指定包名,将dummylibrary/app替换为你的module的名字,引号里面的内容通常都是对应module的AndroidManifest.xml中的包名。
4) signConfigName是指
[html] view
plain copy
android {
...
signingConfigs {
release {
...
}
}
...
}
中的 signingConfig name
2、在工程根目录下的.gitignore里添加忽略配置
[html] viewplain copy
#buck
.buckconfig
*/BUCK
.buckd
.okbuck
buck-out
3、生成 buck 配置
[html] viewplain copy
./gradlew okbuck
4、编译
在工程根目录执行buck install app即可开始使用buck构建安装了(假设你的application module叫app)[html] view
plain copy
buck install app
三、使用Buck for IDEA 修改 生成后的 buck 文件
目前 Okbuck 生成的 buck 文件还有局限性,需要手动修改,可以使用此插件参考 buck文件 语法:
http://zgssheng.cn/2014/03/facebook-buck%E7%BC%96%E8%AF%91apk%E5%8C%85/
相关文章推荐
- Android动态改变Icon总结笔记
- android Math 用法大全
- BaseAdapter——convertView回收机制与动态控件响应o
- Android书籍推荐
- Android中内容观察者的使用---- ContentObserver类详解
- 横向listview_android原生
- android ios 网页爬虫
- Android源码工程转化为Android Studio项目的方法
- Ubuntu下创建启动Android studio的快捷方式
- Android 点击按钮实现控件显示隐藏
- Android ANR 分析解决方法
- android 中handler的用法分析 (二)
- Android文件上传
- android自动化之MonkeyRunner测试环境配置(一)
- Android中View动画的学习掌握(补间动画,属性动画)
- Android ANR产生的原因及如何避免
- 简单android计算器的实现
- Android Camera之SurfaceView学习笔记
- Android四大图片缓存(Imageloader,Picasso,Glide,Fresco)原理、特性对比
- Android Touch事件传递机制详解 下