说明

本文提供的代码仅供参考。
可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。

Auto.js简介

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

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

开发文档

Auto.js Pro开发文档优化版
文档尚在完善中,可能有文档描述和代码实际行为有出入的情况。
模板、样式、generator来自Node.js。

为什么要使用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,还没有广告

相关教程

Auto.js Pro安卓全分辨率免ROOT引流脚本开发教程

示例代码

 //此代码由飞云脚本圈整理提供(www.feiyunjs.com)
"ui";var color = "#009688";
ui.layout(<drawer id="drawer"><vertical h="*" w="*"><appbar><toolbar id="toolbar" title="Intent生成器 V0.2"/></appbar><frame id="body" h="*" w="*"></frame></vertical><vertical layout_gravity="left" bg="#ffffff" w="280"><list id="menu"><horizontal bg="?selectableItemBackground" w="*"><img w="50" h="50" padding="16" src="{{this.icon}}" tint="{{color}}"/><text textColor="black" textSize="15sp" text="{{this.title}}" layout_gravity="center"/></horizontal></list></vertical></drawer>
);
activity.setSupportActionBar(ui.toolbar);
ui.toolbar.setupWithDrawer(ui.drawer);
ui.menu.on("item_click", item => {if (item.onclick) item.onclick();ui.drawer.closeDrawers();
});
function setContainer(v) {ui.body.removeAllViews();ui.body.addView(v, new android.widget.FrameLayout.LayoutParams(-1, -1));
}ui.menu.setDataSource([{title: "首页",icon: "@drawable/ic_android_black_48dp",onclick: () => aboutUi.activate()
}, {title: "启动Activity",icon: "@drawable/ic_android_black_48dp",onclick: () => launchUi.activate()
}, {title: "隐藏Activity",icon: "@drawable/ic_android_black_48dp",onclick: () => hiddenUi.activate()
}, {title: "退出",icon: "@drawable/ic_exit_to_app_black_48dp",onclick: () => ui.finish()
}]);
var aboutUi = {ui : ui.inflate(<vertical padding="15dp"><text textColor="black" textSize="15sp">本生成器用于生成Auto.js可用的启动Intent的代码</text></vertical>),activate : function() {setContainer(this.ui);}
}
function intentAsJson(intent) {var r = {};if (intent.action) r.action = String(intent.action);if (intent.type) r.type = String(intent.type);if (intent.data) r.data = String(intent.data);if (intent.component) {r.packageName = String(intent.component.packageName);r.className = String(intent.component.className);}return r;
}
function copyIntent(json) {dialogs.select("操作", ["查看JSON", "复制为app.intent", "复制为app.startActivity", "直接启动"], i => {switch (i) {case 0:dialogs.alert("Intent JSON", JSON.stringify(json, null, 4));break;case 1:setClip("app.intent(" + JSON.stringify(json, null, 4) + ");");break;case 2:setClip("app.startActivity(" + JSON.stringify(json, null, 4) + ");");break;case 3:app.startActivity(json);break;}});
}
var launchUi = {ui : ui.inflate(<vertical gravity="center"><progressbar id="launch_progress" /><list id="launch_list" h="*" w="*"><vertical padding="8dp" w="*"><text textColor="black" textSize="14sp" text="{{this.name}}" /><text textSize="12sp" text="{{this.packageName}}" /></vertical></list></vertical>),initList : function() {var self = this;ui.launch_progress.visibility = android.view.View.VISIBLE;ui.launch_list.visibility = android.view.View.GONE;threads.start(function() {self.listData = self.loadList();ui.run(function() {ui.launch_list.setDataSource(self.listData);ui.launch_progress.visibility = android.view.View.GONE;ui.launch_list.visibility = android.view.View.VISIBLE;});});ui.launch_list.on("item_click", item => {copyIntent(item.intent);});},loadList : function() {var pm = context.getPackageManager();var lp = pm.getInstalledPackages(0).toArray();var i, r = [], t;for (i in lp) {if (!lp[i].applicationInfo) continue;if (!(t = pm.getLaunchIntentForPackage(lp[i].packageName))) continue;r.push({name : pm.getApplicationLabel(lp[i].applicationInfo),packageName : lp[i].packageName,intent : intentAsJson(t)});}return r;},activate : function() {setContainer(this.ui);if (!this.inited) this.initList();this.inited = true;}
}var hiddenUi = {ui : ui.inflate(<vertical gravity="center"><progressbar id="hidden_progress" /><list id="hidden_list" h="*" w="*"><vertical padding="8dp" w="*"><text textColor="black" textSize="14sp" text="{{this.name}}" /><text textSize="12sp" text="{{this.packageName + ' (' + this.intents.length + '个Activity)'}}" /></vertical></list></vertical>),initList : function() {var self = this;ui.hidden_progress.visibility = android.view.View.VISIBLE;ui.hidden_list.visibility = android.view.View.GONE;threads.start(function() {self.listData = self.loadList();ui.run(function() {ui.hidden_list.setDataSource(self.listData);ui.hidden_progress.visibility = android.view.View.GONE;ui.hidden_list.visibility = android.view.View.VISIBLE;});});ui.hidden_list.on("item_click", item => {dialogs.select("选择Activity", item.intents.map(e => e.name), i => {if (i < 0) return;copyIntent({action : "android.intent.action.MAIN",packageName : item.packageName,className : item.intents[i].className});});});},loadList : function() {var pm = context.getPackageManager();var lp = pm.getInstalledPackages(0).toArray();var i, j, cur, r = [], e, activities;for (i in lp) {cur = {name : pm.getApplicationLabel(lp[i].applicationInfo),packageName : lp[i].packageName,intents : []}r.push(cur);try {activities = pm.getPackageInfo(lp[i].packageName, 1).activities;for (j in activities) {e = activities[j];if (!e.enabled || !e.exported) continue;cur.intents.push({name : e.labelRes != 0 ?e.loadLabel(pm) + " (" + this.shortenName(e.name) + ")" :this.shortenName(e.name),className : e.name});}} catch(e) {log(e)}}return r;},shortenName : function(name) {var i = name.lastIndexOf(".");if (i < 0) return name;return name.slice(i + 1);},activate : function() {setContainer(this.ui);if (!this.inited) this.initList();this.inited = true;}
}
aboutUi.activate();

autojs脚本引擎开发的的Intent生成器工具源码免费分享开源相关推荐

  1. autojs免root脚本引擎开发的QQ空间说说点赞源码

    说明 本文提供的代码仅供参考.不建议用于生产环境. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能" ...

  2. autojs免root脚本引擎开发的QQ名片点赞源码免费分享

    说明 本文提供的代码仅供参考.不建议用于生产环境. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能" ...

  3. autojs脚本引擎实现的安卓手机发短信源码

    说明 本文提供的代码仅供参考.不建议用于生产环境. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能" ...

  4. android 脚本引擎,autojs脚本引擎实现的安卓手机发短信源码

    说明 本文提供的代码仅供参考.不建议用于生产环境. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能" ...

  5. python小工具开发_python音乐下载小工具源码(tkinter)

    [实例简介]入门级示例源码,搜狗音乐下载 [实例截图] [核心代码] import requests import re import tkinter #获取gethush def gethush(m ...

  6. 搜狗php开发,搜狗图床接口PHP源码案例分享

    此源码转自唯爱网络,代码为PHP版本,调用搜狗图片上传. 此代码为PHP 类,请自行下载研究. namespace app\home\controller; use app\home\controll ...

  7. PHP开发的爱养车网站源码 养车O2O平台源码

    PHP开发的爱养车网站源码/租车卖车保险维修保养车险业务平台/养车O2O平台源码, 安装环境:SSL+PHP7.2+MYSQL+伪静态+Redis 源码免费分享,需要学习可私信我. 系统采用FastA ...

  8. SpringBoot-web开发(二): 页面和图标定制(源码分析)

    [SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) 目录 一.首页 1. 源码分析 2. 访问首页测试 二.动态页面 1. 动态资源目录t ...

  9. 用ionic快速开发hybird App(已附源码,在下面+总结见解)

    用ionic快速开发hybird App(已附源码,在下面+总结见解) 1.ionic简介 ionic 是用于敏捷开发APP的解决方案.核心思路是:利用成熟的前端开发技术,来写UI和业务逻辑.也就是说 ...

最新文章

  1. python3+requests库框架设计08-发送邮件
  2. 7月清北学堂培训 Day 5
  3. 【DSP复习主要知识点】(大概)
  4. 【JAVA基础篇】集合框架
  5. C#LeetCode刷题之#501-二叉搜索树中的众数​​​​​​​(Find Mode in Binary Search Tree)
  6. React中refs的理解
  7. element-ui主表格多选后 二级弹框表格默认全选数据
  8. linux 命令行 光标移动技巧
  9. soapui直接下载响应内容为本地的文件
  10. 杨辉三角相关性质以及组合数
  11. 有量纲和无量纲是什么意思_物理量和量纲
  12. Linux 下文件和目录的特点
  13. NPM => npm登录-发包-删包-整体流程
  14. 数据压缩实验 LZW编解码算法的实现与分析
  15. ui设计现状与意义_对于ui设计行业来说,用户界面设计的发展现状是什么?
  16. vce 题库导入_PDF 题库转VCE 文件
  17. 计算机类专业教指委委员名单,教育部高等学校计算机类专业教学指导委员会举办《高校计算机系统能力培养教学研讨会》...
  18. 中外企业文化杂志中外企业文化杂志社中外企业文化编辑部2022年第5期目录
  19. 手动绘制R语言Logistic回归模型的外部验证校准曲线(Calibration curve)(2)
  20. 系统程序员成长计划-管道过滤器(Pipe-And-Filter)模式

热门文章

  1. 从顶会层面看科研!计算机顶级会议大盘点(下)
  2. C++中的结构体与类
  3. 2021-2027全球与中国工业RFID特种电子标签市场现状及未来发展趋势
  4. Drools(8):WorkBench使用
  5. 怎么去除pdf文件的水印?好用软件说明
  6. quartus 2操作
  7. ASP.NET AJAX---TimerHiddenField控件小实例 (实现倒计时)
  8. java中shot占几个字节_Java 占用字节数
  9. 【毕业设计】基于RFID的门禁系统 - 单片机 物联网 嵌入式 stm32
  10. 螺旋测微器b类不确定度_物理实验直测量不确定度评估.ppt