【懒人精灵】在golang中实现懒人精灵的滑动功能,懒人混合式开发

为什么要混合开发

混合开发有点麻烦,因为golang是强类型的语言,函数写起来要比lua的函数复杂的多。同样的功能,golang的代码量要大好多。

但是呢,有弊就有利。将核心代码放在golang里实现,能够极大的提高脚本的安全性。特别是你的脚本商业价值比较高,用的人很多,混合式开发就很有必要了。

通过混合式开发,打包后如果被逆向,别人也只能得到lua部分的代码。无法拿到golang的代码。
这样以来,破解得到的脚本源码就是残缺不全的。因为核心方法都写到golang里了。
lua只负责调用,不负责具体的业务和逻辑。

file

lua

注册懒人的方法到gobridge中

gobridge.register("touchDown", touchDown)                      
gobridge.register("touchMove", touchMove)                      
gobridge.register("touchUp", touchUp) 

golang

调用懒人的方法实现分步滑动


// 实现滑动功能
// 注意:此函数不支持在无障碍模式下使用,只能在激活或者root模式下使用
// 参数:
//   swipeJson: JSON字符串,格式为[X1, Y1, X2, Y2]
//   speed: 滑动速度
// 返回:滑动是否成功
func Swipe(swipeJson string, speed int) bool {
    // 解析JSON坐标参数
    var coords []int
    if err := json.Unmarshal([]byte(swipeJson), &coords); err != nil {
        return false
    }

    // 验证坐标格式
    if len(coords) != 4 {
        return false
    }
    x1, y1, x2, y2 := coords[0], coords[1], coords[2], coords[3]

    // 处理速度参数
    if speed <= 0 {
        speed = 30
    }

    // 计算滑动距离(欧几里得距离)
    distance := math.Hypot(float64(x2-x1), float64(y2-y1))
    // 计算步数(向下取整)
    steps := int(math.Floor(distance / float64(speed)))
    // 至少保证1步,避免距离过小时无滑动动作
    if steps < 1 {
        steps = 1
    }

    // 计算每步的X和Y方向增量
    stepX := float64(x2-x1) / float64(steps)
    stepY := float64(y2-y1) / float64(steps)

    // 触发按下操作
    bridge.Call("touchDown", 1, x1, y1)

    // 分步移动
    for i := 1; i <= steps; i++ {
        // 计算当前步的坐标(四舍五入为整数坐标)
        currentX := int(math.Round(float64(x1) + stepX*float64(i)))
        currentY := int(math.Round(float64(y1) + stepY*float64(i)))

        bridge.Call("touchMove", 1, currentX, currentY)

        // 每步间隔40ms(与Lua保持一致)
        time.Sleep(40 * time.Millisecond)
    }

    // 结束滑动,抬起触摸
    bridge.Call("touchUp", 1)

    return true
}

懒人精灵调用go的方法

print('滑动', gobridge.call("libgo.so", "Swipe",jsonLib.encode({728,209,739,316}),20))

应用场景

温馨提示:此处内容需要后才能查看!

1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】在golang中实现懒人精灵的滑动功能,懒人混合式开发

企业级大数据智能营销管理系统

源码转让