autojs最后一篇常用功能函数.
程序员文章站
2022-06-27 20:07:31
base64加密和解密适配安卓5到9.如果有root,会用root点击或者滑动.不能点击的控件,通过坐标点击文本操作判断系统是否ROOT清理缓存判断网络状态...
加入我们的QQ群553908361,和各作者同群交流
一键加群:点击加群
该教程优先发布于收费脚本v群。
部分代码收集于网络(现在已经不知道作者谁了),如有侵权,请私信我进行删除
autojs最后一篇常用功能函数.
适配安卓5到9 注意,这些函数名你可以自定义,可以化简到你喜欢的名字,中文函数亦可
base64加密和解密
function FuckYourFamily(str) {
return java.lang.String(android.util.Base64.decode(java.lang.String(str).getBytes(), 0));
}
//调用方式,直接 FuckYourFamily(str) 即可,其中str为base64加密
适配安卓5到9.如果有root,会用root点击或者滑动.
function 滑动(x1, y1, x2, y2,time){
if(device.sdkInt<24){
Swipe(x1, y1, x2, y2,time)
}else{
swipe(x1, y1, x2, y2,time)
}
}
function 点击(x,y){
if(device.sdkInt<24){
Tap(x,y)
}else{
click(x,y)
}
}
function home(){
if(device.sdkInt<24){
Home()
}else{
home()
}
}
function back(){
if(device.sdkInt<24){
Back()
}else{
back()
}
}
/** * 不能点击的控件,通过坐标点击 * @param {*} uiSelector */
function clickUiBounds(ui) {
if (ui.exists()) {
var a = ui.findOnce();
if (a) {
var b = a.bounds();
if (b) {
click(b.centerX(), b.centerY());
return true;
}
}
}
return false;
}
配置读写
function 写配置(文件名, 键, 值) {
const storage = storages.create(文件名);
storage.put(键, 值);
}
function 读配置(文件名, 键, 默认值) {
const storage = storages.create(文件名);
if (storage.contains(键)) {
return storage.get(键, 默认值);
};
写配置(文件名, 键, 默认值);
return 默认值;
}
文本操作
function 到文本(数值) {
return 数值 + ""
}
function 到整数(文本) {
return 文本 * 1
}
function 随机数(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min
}
//log(随机数(1,5))
function 子文本替换(原始文本, 欲被替换的文本, 用作替换的文本) {
return 原始文本.replace(eval("/" + 欲被替换的文本 + "/g"), 用作替换的文本)
}
log(子文本替换("1234567890", "123", "qwe"))
function 取文本中间(str, firstStr, secondStr)
//字符串,开头,结尾
{
if (firstStr == "") { str = "**" + str; firstStr = "**" }
if (secondStr == "") { str = str + "**"; secondStr = "**" }
if (str == "" || str == null || str == undefined) {
return "";
}
if (str.indexOf(firstStr) < 0) {
return "";
}
var subFirstStr = str.substring(str.indexOf(firstStr) + firstStr.length, str.length);
var subSecondStr = subFirstStr.substring(0, subFirstStr.indexOf(secondStr));
return subSecondStr;}
判断系统是否ROOT
function isRoot() {
var r = shell("ls /system/bin", true).result.toString()
if (r.length > 50) {
return true
} else {
return false
}
}
判断网络状态
function networkInfo() {
importClass(android.net.ConnectivityManager);
var mConnectivityManager = context.getSystemService(context.CONNECTIVITY_SERVICE);
netInfo = mConnectivityManager.getActiveNetworkInfo();
if (netInfo != null && netInfo.isAvailable()) {
/网络连接
var name = netInfo.getTypeName();
if (netInfo.getType() == ConnectivityManager.TYPE_WIFI) {
/WiFi网络
return "WIFI"
} else if (netInfo.getType() == ConnectivityManager.TYPE_ETHERNET) {
/有线网络
return "有线"
} else if (netInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
/3g网络
return "移动"
}
else {
return "未知"
}
} else {
网络断开
return "断开"
}
}
清理缓存
checkSpace()
function clickUi(ui) {
if (ui.exists()) {
var a = ui.findOnce();
if (a) {
var b = a.bounds();
if (b) {
click(b.centerX(), b.centerY());
return true;
}
}
}
return false;
}
//清理缓存,如果缓存空间不足
function checkSpace() {
if (textStartsWith('存储空间').exists() && text('取消').exists()) {
var o = text('取消').findOnce();
if (o) {
clickui(o);
sleep(1000);
}
if (device.sdkInt>24) {
var intent = new Intent();
intent.setAction("android.settings.INTERNAL_STORAGE_SETTINGS"); //MEMORY_CARD_SETTINGS
app.startActivity(intent);
sleep(3000);
var o = text('缓存数据').findOnce(); //小米
if (o) {
clickui(o);
sleep(1000);
if (text('取消').exists() && text('确定').exists()) {
var o = text('确定').findOnce();
clickui(o);
sleep(10000);
}
}
swipe(100,200,100,500,500);//z注意,这里需要修改.这里是用于滑动的
var o = text('垃圾清理').findOnce(); //小米
if (o.length > 0) {
// clickObject(o[o.length - 1]);
o.click()
sleep(3000);
var iii = 10;
while (iii-- > 0) {
if (textStartsWith('清理选中垃圾').exists()) {
var o = textStartsWith('清理选中垃圾').findOnce();
o.click()
sleep(5000);
back();
break;
}
else
sleep(5000);
}
}
}
else {
app.startActivity({
action: "android.settings.INTERNAL_STORAGE_SETTINGS",
root: true
});
sleep(8000);
var o = text('缓存数据').findOnce(); //小米
if (o) {
o.click();
sleep(1000);
if (text('取消').exists() && text('确定').exists()) {
var o = text('确定').findOnce();
clickui(o);
sleep(10000);
}
}
}
back();
}
}
本文地址:https://blog.csdn.net/qq_30931547/article/details/108845590
上一篇: Android面试题之Activity篇
下一篇: Mybatis培训笔记