最近Android工程越来越大了,AndroidStudio编译起来越来越慢,编译的时候就电脑卡死,当然更换电脑应该是最好的办法啦,但是这个要实现起来是有困难的,所以想了下,得找另一台专门的机器来编译,这样就不至于卡死了。
准备工作
找机器&安装Ubuntu
找了台专门的PC机,首选必须是CPU强劲点的,但是有时候你不一定有得选, 那就这样吧。
打开Ubuntu的官网发现最新已经到16.04了,那就它了,下载Ubuntu Desktop版本,然后通过UltraISO把iso镜像写入到U盘,制作成启动盘,接下来就可以从U盘启动然后安装Ubuntu,具体怎么搞就不多说了,网上一搜一大把。
不过Ubuntu有很多个版本,如果想试试别的发行版的话,倒是可以参考Ubuntu的wiki。
安装SVN工具
因为我的代码还是托管在SVN服务器上面,所以SVN还是需要安装的,不过好在这个可以通过apt命令来安装
sudo apt-get install subversion
安装Android SDK & NDK
这个还是有点麻烦的,Android的官网 是在developer.android.com这个域名下的,而这个域名被墙了,得翻墙。
不过在2016年底的Google开发者大会上宣布为开发者启用了developers.google.cn, developer.android.google.cn, firebase.google.cn这三个CN的域名,这意味着中国的开发者不用翻墙也可以访问Android官网啦,AndroidStudio下载页面在这,AndroidStudio下载后到设置里边打开SDK 管理器里边,把工程编译所需要的tools,Platform-tools,platform,build-tools,ndk,Support库都下载好。
// 下载android-studio的 linux版本
wget https://dl.google.com/dl/android/studio/ide-zips/2.2.3.0/android-studio-ide-145.3537739-linux.zip
//unzip 解压zip
unzip android-studio-ide-145.3537739-linux.zip
//启动AndroidStudio
./{path}/android-studio/bin/studio.sh
然后再把sdk、ndk的路径加入到环境变量,就可以直接执行命令行调用。
安装Gradle编译工具
这一步其实是可选的,因为一般工程里边都会自带了gradlew的批处理工具,执行gradlew build会自动去下载对应版本的的Gradle,然后解压,然后使用下载的gradle去编译工程的,当然在网络情况一般的情况下,在第一次编译的时候会非常慢,还是自己手动安装需要的Gradle版本比较靠谱啦。
AndroidStudio里边已经自带了Gradle,把这个Gradle的路径直接配置到环境变量里边,也就可以是可以用的
当然还有一种方式就是直接使用apt安装
//安装gradle
sudo apt-get install gradle
记得安装好Gradle后一定要看下版本,因为不同的Android Gradle Plugin对Gradle的版本是有要求的,具体可以看官网上的说明
至此远程Ubuntu的环境就搭建好了。接下来就要回到自己的机器上了。
Windows平台安装SSH客户端
对于Mac和Linux平台是自带了Bash环境的,都安装了SSH客户端,直接SSH连上Ubuntu就可以操作了,但是对于Windows来讲还是建议需要安装一个Cygwin,这样就可以模拟获得跟Linux上一样的Shell环境了。安装教程在这,就不多介绍了。
如果有Git需求的,其实可以直接安装Git客户端,这个自带了Shell环境,可以使用SSH命令的,就不需要再单独安装Cygwin或者MinGW了。
这里值得一提的是文件夹路径的问题,在Bash中跟Windows表示有点不一样,没有盘符的概念。
#Windows路径
C:/Users/qiaobo/path
#Bash中表示成
/C/Users/qiaobo/path
使用Ubuntu编译并安装
- SSH登录Ubuntu
//qiaobo是用户名
//12.2.3.1是Ubuntu的IP地址,
//22是端口,一般来讲22是默认端口可以缺省
ssh qiaobo@12.2.3.1 -p 22
//再输入密码就进去,如果是第一次会有一个是否信任对方地址的询问
- SVN拉取代码
//新建一个文件夹
mkdir svncode
//检出代码到svncode文件夹
cd svncode
svn checkout http://svn.etransfar.com/code/shijidaima/trunk
//在这里会要求输入账号跟密码
- SVN更新代码
并不是每次都需要去检出代码的,如果已经检出过了,那就只需要更新代码就好了
//更新代码
cd trunk
svn update
- 开始编译
//编译Release版本
gradle assembleRelease
//编译Debug版本
gradle assembleDebug
这里需要注意gradle版本,如果本地没有安装gradle,或者gradle版本不对,那么就使用./gradlew 来替换gradle吧,当然这个需要在工程目录下面有gradlew脚本文件。
不过需要注意的是 执行gradlew脚本会先去下载对应的gradle版本,然后再运行gradle,如果网速慢的话,得等很久。
- 把编译结果Copy出来
这个时候需要再开启一个Bash窗口,执行scp命令把结果apk拷贝出来。
scp -P 22 qiaobo@12.2.3.1:/path/trunk/app/build/outputs/apk/app-GuanWang-debug.apk /localpath/
- 本地安装apk
adb install -r /localpath/app-GuanWang-debug.apk
好啦,至此就整个编译过程就结束了,就不用担心自己的机器卡死了