linux安装配置apk打包程序gradle+jdk+Android_sdk+python自动化编译脚本
安装gradle:
1.下载gradle包
去这里下载需要的tar.gz包:https://services.gradle.org/distributions/
2.解压
tar zxvf gradle.tar.gz
3.移动到/usr/local/
mv gradle /usr/local/gradle
4.配置/etc/profile环境变量
vim /etc/profile 添加以下内容
export GRADLE_HOME=/usr/local/gradle
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${GRADLE_HOME}/bin
安装jdk:
1.下载jdk包
去这里下载需要的tar.gz包:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.解压
tar zxvf jdk.tar.gz
3.移动到/usr/local/java
mv jkd /usr/local/java
4.配置/etc/profile环境变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_111
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin
安装android sdk:
1.下载android sdk
下载SDK,下载地址:http://developer.android.com/sdk/index.html
2.因为SDK只有32位的,如果装的是64位系统,则要安装ia32-libs,运行32位程序
yum install glibc.i686
3.下载完成后解压,在终端进入到SDK的根目录,然后执行:tools/android update sdk --no-ui即可
4.配置/etc/profile环境变量
export ANDROID_HOME=/usr/local/android-sdk-linux
export PATH=${ANDROID_HOME}/tools:${PATH}:${ANDROID_HOME}/platform-tools:$PATH
5.在终端输入:android,如果Android SDK Manager窗口出来了,就证明环境配置成功
6.进入$SDK_HOME/toos目录,命令窗口运行:./android avd(可选操作)
2016-12-05添加自动构建脚本
代码思想:
1.记录错误日志,并发送错误信息给相关人员
2.每天定时检测有更新就打包,没有更新就记录日志
3.将打好的apk压缩移动到指定位置
#!/usr/bin/env python
#coding:utf8
import os
import time
import smtplib
from email.mime.text import MIMEText
mailto_list = ['xxoo.qin@fantasee.cn','xx@fantasee.cn','oo@fantasee.cn']
mail_host = "smtp.163.com" # 设置服务器
mail_user = "xianyin0@163.com" # 用户名
mail_pass = "5213344" # 口令
def send_mail(to_list, sub, content):#有错误发送邮件
me='xianyin0@163.com'
msg = MIMEText(content, format, 'utf-8')
msg["Accept-Language"] = "zh-CN"
msg["Accept-Charset"] = "ISO-8859-1,utf-8"
msg = MIMEText(content)
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ",".join(to_list)
try:
server = smtplib.SMTP()
server.connect(mail_host)
server.login(mail_user, mail_pass)
server.sendmail(me, to_list, msg.as_string())
server.close()
except Exception as e:
print(str(e))
def logger(content):#记录日志
date = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
with open('/root/log.txt','a') as f:
f.write('[%s]:%s\n'%(date,content))
def yunpos2():#yunpos2打包apk代码
os.chdir(r'/usr/local/yunpos2/pos/yunpos')
content=os.popen('svn up')
data = content.read()
if len(data)>50:
try:
data0=os.popen(r'gradle aR')
os.chdir(r'/usr/local/yunpos2/pos/yunpos/app/build/outputs/apk/')
data2 = os.popen('ls')
for i in data2.readlines():
pass
date2 = i.split('_',4)[0] + '_' + i.split('_',4)[1] + '_' + i.split('_',4)[2] + '_' + i.split('_',4)[3]
os.system(r'zip -r /var/ftp/apk/%s.zip yunpos2*.apk'%date2)
os.system('rm -rf yunpos2*.apk')
except:
logger('yunpos2打包失败')
send_mail(mailto_list, "yunpos2 packaging failure",data)
else:
logger('yunpos2代码没有更新')
def possdk():#possdk打包apk代码
os.chdir(r'/usr/local/yunpos2/pos/possdk')
content=os.popen('svn up')
data = content.read()
if len(data)>50:
try:
os.system(r'gradle aR')
os.chdir(r'/usr/local/yunpos2/pos/possdk/app/build/outputs/apk')
data2 = os.popen('ls')
for i in data2.readlines():
date2 = i.split('_',4)[0] + '_' + i.split('_',4)[1] + '_' + i.split('_',4)[2] + '_' + i.split('_',4)[3]
break
os.system(r'zip -r /var/ftp/apk/%s.zip yunpos*.apk'%date2)
os.system('rm -rf yunpos*.apk')
except:
logger('possdk打包失败')
send_mail(mailto_list, "possdk packaging failure",data)
else:
logger('possdk代码没有更新')
def yunpos():#yunpos打包apk代码
os.chdir(r'/usr/local/yunpos/android/yunpos')
content=os.popen('svn up')
data = content.read()
if len(data)>50:
try:
os.system(r'gradle aR')
os.chdir(r'/usr/local/yunpos/android/yunpos/build/outputs/apk')
data2 = os.popen('ls')
for i in data2.readlines():
date2 = i.split('_',4)[0] + '_' + i.split('_',4)[1] + '_' + i.split('_',4)[2] + '_' + i.split('_',4)[3]
break
os.system(r'zip -r /var/ftp/apk/%s.zip yunpos*.apk'%date2)
os.system('rm -rf yunpos*.apk')
except:
logger('yunpos打包失败')
send_mail(mailto_list, "yunpos packaging failure",data)
else:
logger('yunpos代码没有更新')
if __name__=='__main__':
yunpos2()
possdk()
yunpos()
linux安装配置apk打包程序gradle+jdk+Android_sdk+python自动化编译脚本的更多相关文章
- linux经常使用(一)linux 安装配置 jdk之 找不到安装文件文件夹及source /etc/profile 报unexpected end of file 错误 解决
linux 安装配置 jdk 应该算是一个非常主要的东西.可是我到如今才自己第一次 正式安装.果然出现了问题.. 问题就是 安装之后 找不到 安装路径 ,进而没法配置环境变量. 现象例如以下: 提示 ...
- linux安装nodejs运行vue程序
linux安装nodejs运行vue程序 1.与node官网下载安装包 https://nodejs.org/zh-cn/download/ 6.上传到服务器,并解压 tar -xvf node-v1 ...
- Webpack安装配置及打包详细过程
引言 前端经过漫长的发展,涌现出了很多实践方法来处理复杂的工作流程,让开发变得更加简便,其中,模块化可以使复杂的程序细化成为各个小的文件,而webpack并不强制你使用某种模块化方案,而是通过兼容所有 ...
- Linux安装配置php环境的方法
本文实例讲述了Linux安装配置php环境的方法.分享给大家供大家参考,具体如下: 1.获取安装文件: http://www.php.net/downloads.php php-5.3.8.tar.g ...
- Linux安装配置VPN服务器
一.实验简介 VPN ,中文翻译为虚拟专有网络,英文全称是 Virtual Private Network .现在 VPN 被普遍定义为通过 一个公用互联网络建立一个临时的.安全的连接,是一条穿过混乱 ...
- Linux安装配置apache
Linux安装配置apache 1.获取软件: http://httpd.apache.org/ httpd-2.2.21.tar.gz 2.安装步骤: 解压源文件: 1 tar zvxf ht ...
- Linux安装配置varnish web加速器
Linux安装配置varnish web加速器 Varnish是一款高性能的开源HTTP加速器,它可以来做纯粹的代理服务器,负载均衡,但varnish最主要的功能是缓存加速,也是它最出色的 ...
- Gradle Android最新自动化编译脚本教程
转自:http://blog.csdn.net/changemyself/article/details/39927381 一.前言 Gradle 是以 Groovy 语言为基础,面向Java应用为主 ...
- Gradle Android它自己的编译脚本教程的最新举措(提供demo源代码)
一.前言 Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自己主动化构建工具. 上面这句话我认为写得非常官方,大家仅仅需知道Gradle能够用来an ...
随机推荐
- android 中获取当前焦点所在屏幕中的位置 view.getLocationOnScreen(location)
final int[] location = new int[2]; view.getLocationOnScreen(location); final int[] location = new in ...
- python gevent 协程
简介 没有切换开销.因为子程序切换不是线程切换,而是由程序自身控制,没有线程切换的开销,因此执行效率高, 不需要锁机制.因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断 ...
- ios监听键盘弹出 频幕位置改变
- PAT线性结构_一元多项式求导、按给定步长反转链表、出栈序列存在性判断
02-线性结构1. 一元多项式求导 (25) 设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过100 ...
- 理工科应该的知道的C/C++数学计算库(转)
理工科应该的知道的C/C++数学计算库(转) 作为理工科学生,想必有限元分析.数值计算.三维建模.信号处理.性能分析.仿真分析...这些或多或少与我们常用的软件息息相关,假如有一天你只需要这些大型软件 ...
- 关于nodejs能同时接受多少个请求的问题?////zzz
关于nodejs能同时接受多少个请求的问题? 最近学习node,看了很多教程,都在赞扬nodejs的异步I/O,异步I/O的特点就是,每接收一个请求,使用异步调用处理请求,不用等待结果,可以继续运行其 ...
- gulp 外挂 rename 的使用
安装和使用就不详细说了.前面有. gulpfile.js 的配置 var gulp = require('gulp'), rename = require('gulp-rename'), // 记得先 ...
- SQL语句 在一个表中插入新字段
SQL语句 在一个表中插入新字段: alter table 表名 add 字段名 字段类型 例: alter table OpenCourses add Audio varchar(50)alter ...
- linux格式批量转换为dos格式
注:写的只是基本知识,望高手勿喷,写这个不是为了炫耀,只是为了方便其他人,仅此而已. 一:脚本功能: 批量处理目录以及子目录下的文件格式问题,能够轻易的将linux格式转换为dos格式. 二:写此博客 ...
- html5,表单的综合案例
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...