脚本打包之python打apk
来源:互联网 发布:js判断 写法 编辑:程序博客网 时间:2024/05/18 03:46
打包平台是windows ,环境变量如有疑问请自行搜索
#打包平台是windows ,环境变量如有疑问请自行搜索import os, sys, os.pathimport shutilimport xml.dom.minidomimport timefrom xml.etree import ElementTree as ETfrom xml.etree.ElementTree import SubElementfrom xml.etree.ElementTree import Elementfrom xml.etree.ElementTree import ElementTreecurdir = os.path.split(os.path.realpath(__file__))[0]os.chdir(curdir)packageVersion = "1.0.0" versionName = "1.0.0_100" //资源目录version = "1.0.0"#拷贝资源源路径ResourcePath = "E://test/resource"packageName = "com.test.game"Android_Root_Path = "E://test/code_android"#拷贝资源目标路径Android_Res = Android_Root_Path + "/assets"//windows的cmd运行命令def run_cmd(cmdstr): printlog(cmdstr) ret = os.system(cmdstr) if ret < 0: printlog('run_cmd result = ' + str(ret)) exit(0) else: printlog('run_cmd result = ' + str(ret))def DownLoad_Resource(Path): //如果有svn或者git更新文件,打包可以同步最新 我这里写的是svn if os.path.isdir(Path): run_cmd('svn cleanup %s' %Path) run_cmd('svn revert --depth=infinity %s' %Path) run_cmd('svn update %s' %Path) else:printlog("resource is NULL") sys.exit(1) DownLoad_Resource(code_Android,code_Android_URL)DownLoad_Resource(version_Release,version_Release_URL)#删除打包的旧资源shutil.rmtree(Android_Res,True,None)xmlns = 'http://schemas.android.com/apk/res/android'def copy_assert(): if os.path.exists(ResourcePath): copy_tree_overlap(ResourcePath,Android_Res) else: printlog("resource is NULL") sys.exit(1) #把游戏资源拷贝到android工程下copy_assert()def getOldPackageName(decompileDir): manifestFile = decompileDir + '/AndroidManifest.xml' ET.register_namespace('android', xmlns) targetTree = ET.parse(manifestFile) root = targetTree.getroot() package = root.attrib.get('package') old_package = package return old_packagedef renameVersionCode(decompileDir, versionCode,versinName): if versionCode is None or versionCode == '' or versinName is None or versinName == '' : return manifestFile = decompileDir + '/AndroidManifest.xml' ET.register_namespace('android', androidNS) targetTree = ET.parse(manifestFile) root = targetTree.getroot() version_code = '{http://schemas.android.com/apk/res/android}versionCode' version_name = '{http://schemas.android.com/apk/res/android}versionName' root.attrib[version_code] = versionCode root.attrib[version_name] = versinName targetTree.write(manifestFile, 'UTF-8')def renamePackageName(decompileDir, packageName): if packageName is None or packageName == '': return manifestFile = decompileDir + '/AndroidManifest.xml' ET.register_namespace('android', 'http://schemas.android.com/apk/res/android') targetTree = ET.parse(manifestFile) root = targetTree.getroot() root.attrib['package'] = packageName targetTree.write(manifestFile, 'UTF-8')# 修改 AndroidManifest.xml中的 versionCode 和 versionName##修改工程文件包名android_java_file_path = Android_Root_Path +"/"+"src/com/test/game/test.java"modifyFileContent(android_java_file_path, ".java", getOldPackageName(Android_Root_Path)+".R;", packageName+".R;") ##if os.path.isfile(android_manifest_file):renamePackageName(Android_Root_Path,packageName)#版本号修改renameVersionCode(Android_Root_Path,packageVersion,version)#执行脚本bat = Android_Root_Path+"/BuildRelease_apk.bat"if os.path.isfile(bat): run_cmd(bat +" " +"android" + " " + versionName);#运行windows批处理打包脚本#bat content -------------bat windows --------------------------------------------------------#切换当前目录cd /d %~dp0ant cleanant release@echo off setlocal enabledelayedexpansion if not "%1" == "" (set platform=%1set versionName=%2set hour=%Time:~0,2%if hour leq 9 (set hour=0%TIME:~1,1%)echo !hour!if exist .\ApkOut (rmdir /s /q .\ApkOut)mkdir ApkOutset timestr=%Date:~0,4%_%Date:~5,2%_%Date:~8,2%_!hour!_%Time:~3,2%_!platform!echo !timestr!echo !versionName!copy /Y .\bin\Game-release.apk .\ApkOut\!timestr!_!versionName!_release.apkcopy /Y .\bin\Game-release-unsigned.apk .\ApkOut\!timestr!_!versionName!_unsigned.apk)----------------------------bat windows ---------------------------------------------------------------
0 0
- 脚本打包之python打apk
- python学习之 打包脚本
- android ant脚本打包apk
- MoSync 自动打包apk 脚本
- 脚本实现apk多渠道打包
- Android——使用Python脚本进行多渠道打包-秒打100个包!
- linux python 脚本打包
- py2exe打包python脚本
- 五、python脚本打包
- Python资源打包脚本
- 详解高速神器python脚步打包android apk,超级快!!(打包系列教程之六)
- Python之自动化打包脚本(针对server设备)
- 脚本ADT打包APK的注意事项
- [打包、发布] [Android]使用命令行打APK包
- Eclipse集成Ant 打包签名APK和打混淆jar
- apktool之APK解压、打包
- Android之apk打包流程
- 使用Pyinstaller打包Python脚本
- FUNCTION line.count does not exist. Check the 'Function Name Parsing and Resolution' section in the
- Apache+Php安装配置全过程
- MongoDB 聚集分析
- 文档存储工具Xwiki网址
- Servlet有参数的init和无参的init方法
- 脚本打包之python打apk
- Android6.0 权限问题 详解
- iBET Online Casino GG Game Room Slot Game Info(GG Game Room, GG Game Room Slot Game, GG Game Room Sl
- 强化学习读书笔记
- Linux环境下共享内存
- PTA 一 排座位
- 如何将zynq7000自带的ramdisk8M文件系统扩到ramdisk24M制作
- SharedPreferences改造,写个工具类
- 搬圆桌