侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Lua脚本自动生成APK包

技术  /  管理员 发布于 5年前   406

上次用了纯bat写了个脚本生成APK包,感觉bat扩展性和语法差的令人发指,这次用lua重写了一个脚本
可以根据需要自行扩展了。
使用前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 ANTrequire('support') --tools pathslocal 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 pathslocal 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 directorylocal function dir_exist(dir)  return os.execute(string.format('pushd "%s">nul 2>nul && popd', dir))end --remove old assetsif dir_exist(ASSETS_DIR) then  rmdir(ASSETS_DIR)end --remove old APKlocal 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 directorylocal 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  endendfile_list:close() --encryption with ASmakerlocal 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 buildlocal 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 updatelocal and_cmd = 'call '..ANDROID_HOME..'\\tools\\android'..' update project -p '..WORK_DIRlocal 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) --antlocal 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


  • 上一条:
    基于CSS的网站导航菜单
    下一条:
    css模块化的思想让后期维护变得简单
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 2024.07.09日OpenAI将终止对中国等国家和地区API服务(0个评论)
    • 2024/6/9最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(0个评论)
    • 国外服务器实现api.openai.com反代nginx配置(0个评论)
    • 2024/4/28最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2017-09
    • 2018-01
    • 2018-07
    • 2018-08
    • 2018-09
    • 2018-12
    • 2019-01
    • 2019-02
    • 2019-03
    • 2019-04
    • 2019-05
    • 2019-06
    • 2019-07
    • 2019-08
    • 2019-09
    • 2019-10
    • 2019-11
    • 2019-12
    • 2020-01
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-12
    • 2024-02
    • 2024-04
    • 2024-05
    • 2024-06
    • 2025-02
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客