今天在AAuto官方技术群里,@CC真是活学活用,分享一段简单代码,其功能就是在快手发布应用的是还进行自动使用UPX压缩程序。 根据@CC的提示,我也画葫芦并优化一下,充分考虑逻辑性。具体如何自动化,请看下面的步骤以及代码。

步骤

1、先去upx官方网站(官方的开源,安全木有后门,放心)下载最新upx,下载地址:http://upx.sourceforge.net/#downloadupx 如下图所示

2、解压upx到你安装的AAuto目录里,比如完整路径如下 F:/Program Files/aauto/upx/upx.exe

3、找到快手的publish.aau文件并双击打开他,其相对路径是 /extensions/trigger/publish.aau, 比如我的完整路径是F:/Program Files/aauto/extensions/trigger/publish.aau

4、找到大概第79行代码,winform.btnExplorer.oncommand 触发事件,并做一下调整和修改。

winform.btnExplorer.oncommand = function(id,event){
    winform.btnExplorer.text = "请稍候..."
    winform.btnExplorer.disabled = true;
    /*
    Description: 浏览发布应用进行UPX压缩
    Author:ninja911
    Homepage: http://www.ninja911.com
    */
    var file_compress = fsys.joinpath(getPublisDir(),    ide.getProjectProperty("name") + "_compressed.exe" );    //重新定义upx压缩后输出的文件路径(包含文件名)
    var file_upx = fsys.joinpath(io._exedir,"/upx/upx.exe");    //定义upx程序,官方原版下载地址http://upx.sourceforge.net/#downloadupx,选择upx308w.zip    Win32/i386这个版本
    if (io.exist(winform.editPublishPath.text)) {    //如果存在原exe文件
        win.delay(200);    //延迟200毫秒
        var cmd = '"'+ file_upx +'" -9 -q -k -o "'+ file_compress + '" "'+ winform.editPublishPath.text +'" ';    //初始化命令
        if (io.exist(file_compress)) fsys.delete(file_compress);    //如果存在重定义的文件则删除
        var prcs = process("", cmd, {flags =  0x1/*_STARTF_USESHOWWINDOW*/});    //创建通道进程,不弹出黑窗口
        thread.wait(prcs.thandle);    //等待进程结束
    }
    process.explore_select( winform.editPublishPath.text );
    
    winform.close();
}

大功告成, 完成所有步骤,不必关闭快手IDE,可以马上打开一个项目main.aau试试了。在发布目录会自动生成一个xxxx\_compressed.exe文件,这就是经过upx压缩后的。 就发现利用UPX压缩后的程序文件大小只有原版的接近1/3了,这样有利程序通过网络传输,减少传输流量。

分类: 应用开发 标签: AAuto快手自动UPX压缩

评论

暂无评论数据

暂无评论数据

目录