可以根据需要自行扩展了。

使用前tool path 还有 target path的前两个还是需要自己设置下。

一些小的函数 jit_file copy_file 我就不贴了 比较简单,用来luajit 和 拷贝。

-- Authors: sails鸢@oschina

-- Date: 20th , August , 2014

-- Note:

-- This is used for Cocos2dx + Lua

-- This is a script to making .APK file for android platform

-- Make sure you have installed java, ant, android sdk, ndk, svn, jit

-- Also plz check and rewrite following paths before you use this script

-- Remarks:

-- The script will update your cocos engine directory and your Lua script which probably is Resources

-- then it should jit your Lua files , use ASMaker to encrypt your Lua-jit files

-- all files and resources will move to this folder proj.android/assets

-- finally it will make a .APK package with ANT

require('support')

--tools paths

local JAVA_HOME = 'C:\\Program Files\\Java\\jdk1.8.0_05'

local ANT_HOME = 'D:\\ProgramSoftware\\apache-ant-1.9.4'

local ANDROID_HOME = '"D:\\ProgramSoftware\\android sdk\\sdk"'

local NDK_HOME =  'D:\\ProgramSoftware\\android-ndk-r9d-windows-x86_64\\android-ndk-r9d'

local SVN_HOME = 'C:\\Program Files\\TortoiseSVN\\bin\\'

--target paths

local ENGINE_DIR = 'D:\\engine'

local WORK_DIR = 'D:\\engine\\projects\\XXXX\\proj.android'

local RESOURCES_DIR = WORK_DIR ..'\\..\\Resources'

local ASSETS_DIR = WORK_DIR ..'\\assets'

--function detect directory

local function dir_exist(dir)

return os.execute(string.format('pushd "%s">nul 2>nul && popd', dir))

end

--remove old assets

if dir_exist(ASSETS_DIR) then

rmdir(ASSETS_DIR)

end

--remove old APK

local old_apk , err = io.open(WORK_DIR..'\\bin\\XXXX-release.apk')

if err == nil then

old_apk:close()

delfile(WORK_DIR..'\\bin\\XXXX-release.apk')

end

--svn update

--check

--svn_up(ENGINE_DIR)

--svn_up(WORK_DIR..'\\..')

--luajit

--iter directory

local cmd = string.format("pushd %q &dir /b /s &popd" , RESOURCES_DIR)

local file_list = io.popen(cmd)

for line in file_list:lines() do

line_to = string.gsub(line, 'Resources', 'Resources_jit')

if dir_exist(line) then

check_mk_path(line_to)

else

if(string.find(line,'.lua$')) then

jit_file(WORK_DIR, line , line_to)

else

copy_file(line , line_to)

end

end

end

file_list:close()

--encryption with ASmaker

local enc_cmd = WORK_DIR..'\\ASmaker.exe'..' -i '..WORK_DIR..'\\..\\Resources_jit'.." -o "..ASSETS_DIR..' -f .lua -e .exe'

local enc_re = run_one_cmd(enc_cmd)

if enc_re:find ("失败") then

print("ASmaker加密文件夹失败!",enc_re)

os.exit(1)

end

--ndk build

local ndk_cmd = 'call '..NDK_HOME..'\\ndk-build'..' -C '..WORK_DIR..' '..'NDK_MODULE_PATH='..ENGINE_DIR..';'..ENGINE_DIR..'\\cocos2dx\\platform\\third_party\\android\\prebuilt'

local ndk_re = run_one_cmd(ndk_cmd)

if ndk_re:find ("error") then

print("NDK build失败!",ndk_re)

os.exit(1)

end

--android update

local and_cmd = 'call '..ANDROID_HOME..'\\tools\\android'..' update project -p '..WORK_DIR

local and_re = run_one_cmd(and_cmd)

and_cmd = 'call "'..ANDROID_HOME..'\\tools\\android"'..' update lib-project -p '..ENGINE_DIR..'\\cocos2dx\\platform\\android\\java'

and_re = run_one_cmd(and_cmd)

--ant

local ant_cmd = 'pushd '..WORK_DIR..'&call '..ANT_HOME..'\\bin\\ant release'

local ant_re = run_one_cmd(ant_cmd)

if ant_re:find ("failed") then

print("生成APK失败!",ant_re)

os.exit(1)

end

以上代码就是本文所要分享的全部内容了,希望大家能够喜欢。

Java script生成apk_lua脚本实现自动生成APK包相关推荐

  1. appium自动化脚本之自动安装apk包到手机

    Appium基础篇3-第一个appium自动化脚本之自动安装apk包到手机 这篇,我们开始来一个实战练习,如何通过appium自动把电脑上一个安卓程序包给安装到一台安卓手机中.在写脚本之前,我们需要统 ...

  2. Appium基础篇3-第一个appium自动化脚本之自动安装apk包到手机

    这篇,我们开始来一个实战练习,如何通过appium自动把电脑上一个安卓程序包给安装到一台安卓手机中.在写脚本之前,我们需要统一下方法和工具.我们知道Appium和selenium一样都支持Java和P ...

  3. mybaitis快速生成_Mybatis中使用mybatis-generator结合Ant脚本快速自动生成Model、Mapper等文件...

    使用过Mybatis的同学都知道,针对每一个项目中使用到的数据库表都需要建立其对应的数据库增删改查xxxMapper.xml文件.实体类xxx.java文件以及其他类用来调用进行数据库操作的xxxMa ...

  4. android getter不起作用,java - 如何在Android Studio中自动生成getter和setter

    java - 如何在Android Studio中自动生成getter和setter Android Studio中是否有一个快捷方式可以自动生成给定类中的getter和setter? 14个解决方案 ...

  5. Java支持latex,基于Java和LaTeX的文档自动生成技术研究

    基于Java和 LaTeX 的文档 自动生成技术研究 ◆尚宝欣 徐 屹 (东北电力大学理学院,吉林 长春 132012) [摘 要]讨论了结合Java与LaTex 自动生成 PDF文档的方法.针 展名 ...

  6. 渗透工具NessusToReport:一个nessus自动报告生成工具,可以用来自动生成nessus扫描器的中文报告--NessusToReport

    Git地址: Hypdncy/NessusToReport: nessus扫描报告自动化生成工具 (github.com) NessusToReport 这是一个nessus自动报告生成工具,可以用来 ...

  7. 用java做小学数学系统_自动生成中小学数学题目的控制台小程序

    正版现货scratch+小学数学编程教材 106.5元 包邮 (需用券) 去购买 > 前段时间写了一个自动生成中小学数学题目的控制台小程序 下面简要介绍一下我这次的一个开发过程 需求: 1.命令 ...

  8. 使用java通过固定的excel模板自动生成数据库表的ddl建表语句

    有时候要建很多表或一个表有很多字段,一个个复制字段弄太麻烦了,为了提高点工作效率,写了个小工具通过固定的excel模板自动生成基础的ddl建表语句 maven依赖 <!--核心jar包--> ...

  9. java poi获取word文档自动生成的序号

    POI不能获取word自动生成的序号,但是可以自己根据级别自己写出来. maven <dependency><groupId>org.apache.poi</groupI ...

最新文章

  1. Web应用扫描工具Wapiti
  2. Spring boot的put请求
  3. SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别
  4. C# 8 新特性 - using 声明
  5. kickstart模式实现批量安装centos7.x系统
  6. 在Windows 7 专业版 SP1安装多语言包的办法 摘录
  7. css 精灵图的使用
  8. 软件开发报价的计算方法
  9. Java面试八股文(素材来自网络)
  10. Flex builder3相关
  11. 信息学奥赛一本通评测系统P1336
  12. 1、【QT】QT6.2 官网下载与安装教程
  13. seo公司,杭州谷歌seo公司
  14. 火爆全网的 “蚂蚁牙黑” 特效 今天你也可以做。
  15. 苹果home兼容问题修改--苹果fixed定位被遮挡-或者距离太近
  16. MindMaster思维导图及亿图图示会员 优惠活动
  17. 2020-11-17
  18. IOS版aplayer使用教程_Google地球 安卓手机版(教程)流畅使用
  19. ncut算法分割图像的matlab,Ncut_9 归一化切割和图像分割算法及其论文, 不仅度量了不同分组之间总体不相似性, matlab 269万源代码下载- www.pudn.com...
  20. NDK开发(四):仿QQ变声

热门文章

  1. 微信小程序继续入坑指南
  2. 图管够!灌篮高手、女儿国…阿里日_这帮程序员太会玩了!
  3. JCP执行委员会新成员选举结果揭晓:Hologic未获通过
  4. 怎样从red hat linux图形登录改成从文本登录
  5. linux下修改max_user_processes和open_file的最大值
  6. 三次握手 四次握手 与socket函数的关系
  7. 一个学妹写的按键检测函数把我秀翻了!
  8. Android bootchart分析
  9. mysql显示RMB符号乱码_mysql显示乱码
  10. python读取csv文件_python3.0读取csv文件