弃用autojs的currentActivity()方法以后,脚本更加稳定了,多台安卓新机型适配踩坑记录

前言

之前写autojs的脚本,因为机型都是固定的,所以适配的问题并不多。
偶尔会有打包后的app,启动时闪退,或者launch(packageName)的时候无法调出app的情况。
因为是偶发情况,问题并不大,也就没有深究。
在脚本的死循环中,也一直在用currentPackage、currentActivity等全局函数,用来判断页面位置。

最近autojs 7 pro停用之后,改用了autoXjs,并且手里有了一些最近几年主流的安卓机型,用来进行自动化测试。
在测试的过程中发现,有些机型,比如红米Note 12 Pro,还有VIVO x21A等,调用currentActivity()方法,获得的页面地址,并不正确。

经过多轮不同机型的测试,并不能确定是android的问题,还是autojs引擎的问题。

调整思路

起初,飞云以为是autoX的问题。于是换了网友发布的”AutojsPro 8.8.22-0可登录去限制版本“。
然而更换开发框架,并没有解决上述问题。

而且该破解版本,存在以下几个BUG:
1、打包界面在设置下拉菜单的时候,经常闪退。不过可以成功打包。
2、打包后的应用,使用了去限制代码,但是会出现间歇性失效,不能操作大厂APP。时灵时不灵。

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

存在问题代码

这是旧的脚本框架代码,仅供参考。在实际的业务中,不再建议这样编写。
因为其中,可能存在上述问题,导致脚本卡在某个页面,不能按照设定的流程去执行。

// autojs脚本主框架代码
var myApp = {};
myApp.packageName = "com.smile.gifmaker";

while (true) {
    myApp.activity = currentActivity();
    // console.log("页面地址:" + myApp.activity)

    switch (myApp.activity) {
        case "com.yxcorp.gifshow.HomeActivity":
            // log("页面:首页")

            break;
        case "com.yxcorp.login.userlogin.activity.FullScreenLoginActivity":
        case "com.yxcorp.gifshow.webview.KwaiYodaWebActivity":
            // log("页面:登录页面")

            break;
        default:
            if (currentPackage() != myApp.packageName) {
                launch(myApp.packageName);
            } else {
                back();
            };
    };
};
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 弃用autojs的currentActivity()方法以后,脚本更加稳定了,多台安卓新机型适配踩坑记录

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

了解详情