作为一个有着丰富实践经验的开发者,同时也是一个有一定基础和实践经验的逆向工程师新手,我刚开始面对这个项目的时候是一头雾水的,即使看完之后还是不知道从何下手,在这之前我玩游戏从来没有用过游戏助手之类的东西。
我曾经也是一个单纯、纯真的年轻人!
我在想,如果我是一个半职业玩家,一个新手能比我做得好多少呢?经过仔细阅读、探索、查看源代码,我逐渐步入正轨。我将其记录如下,供大家参考:
文章来源:星光小站掘金
结果
图片说明:我是第二名,昨天才跳了170多分,后面几跳大多都失败了,今天用了游戏助手之后,分数提升了好几倍。
Q&A:别人得分过万,你只有几百分?原因是:跟朋友讨论,以为微信出新防作弊措施,随机检测屏幕按压是模拟按压还是真实按压,模拟按压将无法上传分数。
还有人说做了时间间隔测试,点击查看,由于没看过源码,不好下结论,这里就说一下是因为模拟按压导致的。
问答:那么我该如何上传我的分数?
原因是:俗话说魔鬼总是比正义者强大。微信有计划,我有梯子:我快速在每次模拟按压结束时进行简化的真实按压,意图覆盖模拟按压检测,最后我成功了。具体操作会在经验里分享。
原则
原理部分是给同事或者有兴趣的朋友看的,如果没有必要可以略过,直接进入实际操作。
游戏助手主要通过adb命令来实现截图和模拟按压。截图有两个作用:一是确定手机分辨率,进而确定预估跳跃距离和按压时长的比例关系;二是识别起点和目标点的xy坐标,并计算距离。模拟按压的目的自然就是实现跳跃。
更专业、具体的写法和算法请去查看源码。
例如:
实战
第一步点击下载:点击或者选择ZIP,然后解压,如下图所示:
该目录为核心目录:功能jar包(下)和源码文件(src包下)。
而.md是一些示例图片和说明文字,可以忽略。
第二步,搭建运行环境:
游戏助手需要在电脑上运行,手机需要通过 USB 连接电脑。由于助手是 Java 编写的,所以需要下载 JDK 并配置 Java 运行环境。(很简单,不懂的可以自行百度。)助手使用 adb 命令来实现截屏和模拟按压,所以请自行百度 adb.exe 下载,然后放到前面解压的 //libs 文件夹中。

第三步,尝试运行.jar
我先自我介绍一下,我2013年毕业于上海交通大学,在小公司工作过,也进过华为、OPPO等大公司,2018年加入阿里巴巴,一直到现在。
我知道大部分工程师想要提升自己的技能,往往都是自学或者上课,但培训机构的学费动辄几千元,压力真的很大。没有系统的自学效率低、耗时长,而且很容易碰天花板、停滞不前!
因此我收集整理了一本《2024年全套移动开发学习资料》,初衷很简单,就是为了帮助那些想要提升自己却不知道从何下手的朋友,同时也减轻大家的负担。
既有适合新手学习的零基础资料,也有适合经验3年以上小伙伴深入学习提升的进阶课程,基本覆盖了95%以上的开发知识点,真正做到了系统化!
由于文件比较大,这里只截图了部分目录大纲,各个节点都有工厂访谈、学习笔记、源码讲义、实战项目、讲解视频,后续会持续更新。
如果你觉得这些内容对你有帮助,可以加V获取:(注)
结尾
评论里有同学问怎么学控件,我的建议是搜一下,同事给的例子很多,这些例子已经足够入门了。
有朋友说如果认真做的话需要懂NDK和JVM等知识。首先NDK并不是什么神秘的东西,按照官方的步骤去做就知道是啥了,无非就是一些代码格式化和/JAVA内存交互,更高级的还有/JAVA线程交互。线程交互确实有点蛋疼,不过正常避免就好。再说了初学者为什么要关心NDK呢?根据我之前的经验我只在两个项目中用过它:音视频通讯和一个嵌入式信号处理(离线)。嵌入式信号处理就是JAVA->NDK->.SO->我原来的代码这样调用的,其他的大多都是游戏里用的,一般互联网公司会有人给你们公司的SO包。
至于JVM,相信我,该掌握的你一定掌握,不该掌握的就交给JVM的专家来做吧,还是省点心,有时间再看看计算机系统和编译原理吧。
总之一句话,多写多练,这是一个程序员最基本的素质。尽量挤出时间看理论基础书籍。JVM 不是未来 30 年唯一的虚拟机,JAVA 也未必在未来 30 年内风靡业界,其他系统和语言也会大量涌现。但是,你扎实的理论知识能让你快速理解和学习一门语言或框架。在日常生活中多写多练,能让你快速熟练地将所学知识运用到实践中。
对于初学者来说,一句话,多练习。
之后,其他的系统和语言也会大量涌现,但是你扎实的理论知识会让你很快的理解和学习一门语言或框架,你规律的写作会让你很快熟练的把学到的新东西运用到实践中去。**
对于初学者来说,一句话,多练习。
本文已收录于开源项目:《学习笔记总结+移动架构视频+大厂面试题+项目实战源码》