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()





 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM