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 ...
随机推荐
- Go并发控制之sync.WaitGroup
WaitGroup 会将main goroutine阻塞直到所有的goroutine运行结束,从而达到并发控制的目的.使用方法非常简单,真心佩服创造Golang的大师们! type WaitGroup ...
- C# 获取汉字拼音首字母
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本节探讨C#获取汉字拼音首字母的方法: 代码类东西, ...
- could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
VS2008, 写一个简单的demo的时候出现了这个: 1>------ Build started: Project: GetExportTable, Configuration: Relea ...
- C#下没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
C#下没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)) 原因:没有原生支持64位,而是以32位兼容方式运行 解决办法:在项目属性里设置“生成” ...
- python基础:交互式解释器
什么是"交互式python解释器"? 当你看到">>>"符号,就意味着你进入交互式python解释器,又称作"提示符". ...
- EaeyUI
基础 定义 一个轻量级的JavaScript框架 基本用法 $(function(){代码}) 相当于window.load()(当窗口加载完毕后触发) 选择器是jQuery的根基 通过选择器选中元素 ...
- html中input标签的tabindex属性
当浏览者浏览网站时可以通过按TAB键在网页的链接中依次移动,这是一个相当方便实用的功能.但如果网页中链接太多,恐怕按TAB键就没什么作用了,这时不妨通过改变TAB键移动的顺序来突出重点,在某些重要页面 ...
- android 使用shape来优化界面效果
看下效果图: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=&quo ...
- 关于git自己所学到的东西
1.什么是Git(傻瓜内容跟踪器) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目 Git 是 Linus Torvalds (Linus在1991年创建了 ...
- rqt工具的使用
安装rqt工具sudo apt-get install ros-indigo-rqtsudo apt-get install ros-indigo-rqt-common-plugins或者rosdep ...