首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2017年最后一篇文章:微信小程序游戏“跳一跳”刷榜原理解析!

最近微信出了一个"跳一跳"的小游戏,这个游戏其实在之前有手机端版本,无奈微信借助强大的用户把这游戏又拿起来弄火了,而且通过最新版的微信可以看出,微信已经开始重视小程序的入口释放了,同时本人在最近的使用过程中也发现小程序真的很方面,未来的形式谁都说准呀!不多说废话了,直接看本文的重点,这个游戏的玩法很简单,只要长按圆柱体根据距离决定长按时间:

游戏出来之后,就有很多人开始研究刷榜工具原理了,网上有很多版本Python,Kotlin等语言写的工具,这里我就用Java来写一个,不过本文更重要的是介绍原理,以及其他的实现思路介绍。工具的核心原理就是借助了两个重要的adb命令:

第一、截图命令:adb shell screencap -p [图片路径]

截取手机屏幕保存到设备目录下,一般都是SD卡,然后在借助adb pull命令弄到本地。

第二、模拟滑动事件:adb shell input touchscreen swipe x1 y1 x2 y2 time

滑动参数可以看到,从[x1,y1]点滑动到[x2,y2]点,然后是滑动的时间。

无独有偶,这两个命令既然都是我写的Android应用安全防护和逆向分析书中的第三章的包含命令:

上面介绍完了核心原理之后,接下来就来看看原理吧:

这个工具原理是基于adb命令的,所以操作之前必须配置好adb工具环境,具体方法可搜索!PC端写的工具可以有很多语言实现,这里用我会的Java语言,其实就是JavaSE开发,借助JFrame来实现写一个Java应用。内部使用工具类Runtime来执行adb截图命令,然后把图片渲染到JPanel面板上:

最后给面板加上鼠标点击事件即可:

这里需要注意两点:

第一、需要一个变量来记录跳跃的起始点,因为我们在操作之前必须先点击面板图片上的物体中心点作为圆柱跳跃的起始点,然后在点击一次下一个物体的中心点作为圆柱跳跃的着陆点!

第二、计算路径问题,这里利用鼠标点击位置的x和y值,利用勾股定理计算即可!

然后就是计算滑动的时间,也就是距离除以圆柱跳跃的速度,这个速度测试发现介于0.3~0.5左右,可以自己调节!有了时间之后就可以直接发送adb命令进行模拟滑动了,因为我们只想圆柱体原地滑动一定时间,所以命令为:adb shell input touchscreen swipe 170 187 170 187 time;滑动的起始点和终点都是在自己圆柱体的范围,只是让圆柱体滑动停留的时间到位即可。

好了上面大致介绍了这个原理,下面来具体看看操作效果吧:

https://github.com/fourbrother/WXJumpGameUtils

延伸

这一篇的内容也算是2017年最后一篇文章了,感谢大家对编码美丽的支持,对我的支持,最后祝福大家新年快乐,2018继续努力奋斗!

手机查看文章不方便,可以网页看

《Android应用安全防护和逆向分析》

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171230G09JEI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券