admin管理员组

文章数量:1609986

说明

本文提供的代码仅供参考。不建议用于生产环境。
可能有些地方在最新版本的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整理提供
/**
 * 作者: 家
 * 功能:  动态布局
 */
"ui";
importClass(android.widget.TextView)
ui.layout(
  <vertical id="帮主">
  <horizontal>
    <button id="管家" textSize="16sp" margin="8" gravity="center" >管家加人</button>
    <button id="白夫人" textSize="16sp" margin="8" gravity="center" >白夫人减人</button>
    <button id="乔峰" textSize="16sp" margin="8" gravity="center" >乔峰加布局</button>
  </horizontal>
  </vertical>
)
var 帮主 = ui.帮主
ui.管家.click(
  () => {
    addTextView(帮主)
  }
)
ui.白夫人.click(
  () => {
    delView(帮主)
  }
)
ui.乔峰.click(
  () => {
    log('加布局开始')
    addLayout(帮主)
    log('加布局结束')
  }
)

function delView(parent) {
  log('得不到的就毁掉它')
  parent.removeView(parent.getChildAt(1))
}

function addTextView(parent) {
  // var child = view
  var child = new TextView(context);
  child.setTextSize(20);
  child.setTextColor(colors.parseColor("#ff00f0"))
  child.setText("左护法");
  child.setGravity(0); //左护法
  parent.addView(child);
  log(child)
  var child = new TextView(context);
  child.setTextSize(20);
  child.setTextColor(colors.parseColor("#ff00f0"))
  child.setText("大长老"); //中间的是大长老
  child.setGravity(1);
  parent.addView(child);
  log(child)
  var child = new TextView(context);
  child.setTextSize(20);
  child.setTextColor(colors.parseColor("#ff00f0"))
  child.setText("右护法");
  child.setGravity(5); //右护法
  parent.addView(child);
  log(child)
}

function addLayout(parent) {
  var layo = new android.widget.LinearLayout(context)
  // var layo=android.widget.FrameLayout.LinearLayout(context)
  layo.setOrientation(android.widget.LinearLayout.HORIZONTAL);
  layo.setId(android.view.View.generateViewId())
  // layo.setOrientation( android.widget.FrameLayout.LinearLayout.VERTICAL );
  var child1 = new TextView(context);
  child1.setTextSize(20);
  child1.setTextColor(colors.parseColor("#ff00f0"))
  child1.setText("左护法");
  child1.setGravity(0); //左护法
  child1.setLayoutParams(new android.widget.LinearLayout.LayoutParams(0, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, 1));
  // child1.setLayoutParams(new android.widget.LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, 0, 1));
  var child2 = new TextView(context);
  child2.setTextSize(20);
  child2.setTextColor(colors.parseColor("#ff00f0"))
  child2.setText("大长老"); //中间的是大长老
  child2.setGravity(1);
  child2.setLayoutParams(new android.widget.LinearLayout.LayoutParams(0, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, 1));
  var child3 = new TextView(context);
  child3.setTextSize(20);
  child3.setTextColor(colors.parseColor("#ff00f0"))
  child3.setText("右护法");
  child3.setGravity(5); //右护法
  child3.setLayoutParams(new android.widget.LinearLayout.LayoutParams(0, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, 1));
  layo.addView(child1)
  layo.addView(child2)
  layo.addView(child3)
  parent.addView(layo)
}
// mView.setLayoutParams(new android.widget.LinearLayout.LayoutParams(
//   android.widget.LinearLayout.LayoutParams.MATCH_PARENT, 0, 1));
// 第一个参数是width,第二个参数是height,第三个参数是weight
// 如果orientation是vertical,width就是0,如果orientation是horizontal,height就是0

本文标签: 布局例子动态autojs安卓免