Android自动化实施(2)—服务器上搭建Android环境

继上一篇文章说道编写android Ant编译脚本,脱离IDE编译带来的慢的痛苦。
为了偷懒,必须自动化。

2.如何在服务器中搭建Android环境

服务器中没有ui如何搭建Android环境呢?

首先将Google提供的Android linux SDK上传到服务器
或者使用curl 直接下载到服务器,高兴用啥就用啥。

解包。必须保证服务器的java环境已经配置好了。没配置好的赶快去yum install 或者 apt-get install

本人也是通过SDK中的REDEAME文件了解到的
可以使用

android update sdk --no-ui  
或者  
android update sdk -u   

这个组命令通过命令行去下载android sdk
但是时去下载会下载全部的包,有些包使我们不需要的,只选择几个必须包就ok 的。
执行

android list sdk   

会得到如下的信息

Packages available for installation or update: 19  
   1- Documentation for Android SDK, API 17, revision 1  
   2- ARM EABI v7a System Image, Android API 17, revision 1  
   3- Google APIs, Android API 17, revision 1  
   4- Google APIs, Android API 16, revision 3  
   5- Google APIs, Android API 15, revision 2  
   6- Google APIs, Android API 14, revision 2  
   7- Google APIs, Android API 13, revision 1  
   8- Google APIs, Android API 12, revision 1  
   9- Google APIs, Android API 11, revision 1  
  10- Google APIs, Android API 10, revision 2  
  11- Intel Atom x86 System Image, Android API 10, revision 1  
  12- Google APIs, Android API 8, revision 2  
  13- Google APIs, Android API 7, revision 1  
  14- Google APIs, Android API 4, revision 2  
  15- Google APIs, Android API 3, revision 3  
  16- Google Play Billing Library, revision 2  
  17- Google Play Licensing Library, revision 2  
  18- Google USB Driver, revision 7  
  19- Intel x86 Emulator Accelerator (HAXM), revision 2  

使用

android update sdk --no--ui -filter 1,2,3,4  
或者  
android update sdk -u -t 1,2,3,4  

即可下载需要的依赖包。

这时候可能会报如下这个错。

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory  

不用担心,因为Google Android SDK 不支持64位机,怎么办呢?
看这篇文章点我,这篇文章会告诉你安装几个编译依赖即可解决问题,分别是

yum whatprovides ld-linux.so.2  
yum install xxx  
对于libncurses.so.5 和 libstdc++.so.6 执行同样操作  

将上一篇中的代码上传到服务器配置好ant环境
修改local.properties的sdk路径

在项目根目录来一发

ant release  

是不是很开心。

这时候可以写一个shell 脚本 package.sh 然后在服务器端执行即可。如果使用Java则使用JavaRuntime调用这个脚本就可以让服务器自动打包。

这里要提下,我在windows里写的shell脚本放在服务器端无法执行,各种奇怪问题,最后才发现是文件在两个OS间有差别造成的,比如换行Windows下是\r\n 但是Linux下是\n,最后在服务器上重写了这个脚本才可以顺利编译。经验告诉我们开发环境要和线上环境一致。
尼玛啊。

版权为本人xeodou所有。转载请注明出处。谢谢。