autojs免root脚本引擎开发的取APP当前页面activitys源码

说明

本文提供的代码仅供参考。不建议用于生产环境。
可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。

Auto.js简介

Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。

Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。

推荐教程

Auto.js Pro安卓全分辨率免ROOT引流脚本开发视频教程(HD超清1080p)

开发文档

Auto.js Pro开发文档
文档尚在完善中,可能有文档描述和代码实际行为有出入的情况。

为什么要使用Auto.js Pro开发脚本,有什么特点?

吸引我使用Auto.js Pro的原因有很多。最主要的几个原因是:

  • Auto.js Pro能开发免ROOT的安卓脚本
  • Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型
  • Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面
  • Auto.js Pro使用的javascript的语法比较优雅,代码可读性强
  • Auto.js Pro的命令库非常的丰富,接口比较多
  • Auto.js Pro脚本文件体积比较小。1000行的代码,打包后的apk文件只有3-5M,还没有广告

示例代码

// 此代码由飞云脚本圈www.feiyunjs.com整理提供
var window = floaty.window(
    
        
    
);

window.exitOnClose();

var i = 0;

setInterval(function(){
   
   
   
//文件路径
var path = "/sdcard/1.txt";
//要写入的文件内容
//以写入模式打开文件
var file = open(path, "a");
    //file:week(set)
//写入文件
    file.writeline(["\n\n当前包名: " + currentPackage() + "\n",
           "当前应用名:  " + app.getAppName(currentPackage())+ "\n",
           "当前活动:  " + currentActivity()]);
//关闭文件


//附加一行"啦啦啦啦"
file.writeline("");
//附加一行"哈哈哈哈"
//file.writeline("哈哈哈哈");
//附加两行ccc, ddd
//file.writelines(["ccc", "ddd"]);
//输出缓冲区
file.flush();
//关闭文件
file.close(); 
if(i == 5){
        exit()
    }
}, 4000);



window.text.click(()=>{
    window.setAdjustEnabled(!window.isAdjustEnabled());
    setClip(currentActivity());
    toast("   已复制\n当前活动:\n " + currentActivity())
});

setInterval(()=>{
    //对控件的操作需要在UI线程中执行
    ui.run(function(){
        window.text.setText(dynamicText());
    });
}, 1000);


function dynamicText(){
     var date = new Date();
    var str = util.format("时间: %d:%d:%d\n\n", date.getHours(), date.getMinutes(), date.getSeconds());

    str += util.format("内存使用量: %d%%\n\n", getMemoryUsage());
    str += "当前包名: \n" + currentPackage() + "\n\n";
    str += "当前应用名: \n" + app.getAppName(currentPackage())+ "\n\n";
    str += "当前活动: \n" + currentActivity();
    return str;
}

//获取内存使用率
function getMemoryUsage(){
    var usage = (100 * device.getAvailMem() / device.getTotalMem());
    //保留一位小数
    return Math.round(usage * 100) / 100;
}

你可能感兴趣的:(脚本源码)