Sonic 开源已经一个多月啦!
官网在这里
大家想支持记得点一下 star 哦,Sonic 承诺永久免费!
然而,即将迎来 v1.2.0-release 版本,投屏优化、iOS 即将来袭!
感谢前端大佬@Roy2017参与前端开源
本次主要介绍的是前端自定义布局与触控优化,可以实现在线打王者(上班不要这样做哦)
测试机型为安卓 10 的华为 p40
快看我用 sonic 在训练营拿了一血
众所周知,minitouch 已经不兼容安卓 10 以上了,gif 图中那种流畅的触控交互是怎么实现的呢?
十分感谢 STF,给我提供了思路。
1、调用安卓内部的 android.hardware.input.InputManager
2、因为安卓 10 以上是 minitouch 被禁用了/dev/device/input 权限,思路就是把 minitouch 的调用方式,改造成用 apk 调用第一步的内部 api
3、在 apk 暴露 socket 服务,当然这里参考了 STF 的做法,但是去除了一些不必要的服务与二开优化。
4、剩下的兼容 minitouch 的数据格式即可,STF 在这里限定了多点触控只能两个点,其实可以根据自己的需求二开,增加更多
MotionEvent.PointerProperties pointerProps0 = new MotionEvent.PointerProperties();
pointerProps0.id = 0;
pointerProps0.toolType = MotionEvent.TOOL_TYPE_FINGER;
MotionEvent.PointerProperties pointerProps1 = new MotionEvent.PointerProperties();
pointerProps1.id = 1;
pointerProps1.toolType = MotionEvent.TOOL_TYPE_FINGER;
pointerProperties[0] = pointerProps0;
pointerProperties[1] = pointerProps1;
5、因为支持多点触控,前端将键盘 wasd 按键关联到摇杆坐标就可以了,当然是自定义区域与按键的
多点触控指令
d 0 10 10 50
c
d 1 20 20 50
c
u 0
c
u 1
c
1、安装 apk
2、exec app_process /system/bin com.sonic.plugins.assist.SonicTouchService,开启 socket 服务
3、将 sonictouchservice 转发即可
1、优化了启动速度,让手机 1~2s 即可开启投屏
2、自定义前端布局,不再担心空间不够用啦!
下一篇将介绍 v1.2.0 的新模块,iOS 模块,大家多多支持哦!
欢迎大家加群了解