一、启动服务端程序
因为我们只要调试客户端程序,所以本地部署和服务器部署都可以。本地部署优点是随时可以调试,也不会造成垃圾数据。缺点是会浪费你机器的新能。
我用的本地部署,参考官方文档链接见下,运行后如下图:
https://sonic-cloud.gitee.io/#/Deploy
二、下载Agent源码
注意:由于Sonic目前还不是一个稳定版本,每次迭代基础技术架构变动较多,所以你要下载和服务端同版本的Agent代码。
我用的 v1.4.0-release,所以下载的这个版本。
1、访问代码官网 https://github.com/SonicCloudOrg/sonic-agent ,点击 v1.4.0-release
2、从这里下载源码,上边是编译好的对应各平台包,也一同下来后续编译打包有用
三、idea加载脚本
1、将源码解压后正常idea打开项目即可
2、修改配置。修改配置跟安卓Agent类似,参见官网的Agent部署文档:https://sonic-cloud.gitee.io/#/Deploy?tag=agent 。唯一的区别就是配置文件所在的目录不同。主要也是改这三个配置
3、打开 AgentApplication.java 点击运行即可
4、运行过程中会检查依赖库、工具
注意:我在这步被坑了2次
- 在检查 adbkit 时候失败,根据推荐命令安装又各种失败。最后改了 中科院Mirrors的brew镜像源才成功,参见:https://blog.csdn.net/huangbiao86/article/details/121464539
- 在运行的时候老提示我没有权限,让我执行 chmod 777,反复执行并检查已经是777权限还是不行。最后发现是mac不允许运行未知源程序,允许后即可(如果不会配置baidu吧)。
5、到此就已经可以正常调试了
四、修改后重新打包
升级 v1.4.0-release 后发现,安卓远控时不知道为啥都会自动回到桌面,但我的需求是想保持已启动的app在前台。我测试过 scrapy 他是不需要切桌面的,没办法只能自己动手丰衣足食了。
最后找到 AndroidWSServer.java 的 144 开启 scrapy 前主动发了个 sendkey 3,将它注释后就不会回到桌面了。由于改动了源码所以就要重新打包了,打包步骤如下:
1、根据官网编译jar包,就是 mvn package -P 指定编译配置即可
2、在命令行进入项目目录。我把源码解压到了这个目录 Desktop/sonic_dev/sonic-agent-1.4.0-release,cd进去即可
3、由于我要打包mac系统所以执行如下命令
mvn package -Pmacosx-x86_64
4、看到如下内容表明编译成功了,jar包就在红框的目录里
5、这里就用到下载源码时候让你下载的zip文件了,找到 sonic-agent-v1.4.0-release-macosx_x86_64.zip 解压后,将编译好的 jar 替换原来的 jar 即可。
java -jar xxxx.jarz
注意:运行前还需要修改zip文件夹中的配置
6、如果你不知道 P 后边应该跟啥,可以打开pom.xml查一下,其中 profileActive 就是
7、最后多说一句,我猜可能是 plugins 下打了几个平台相关的执行文件造成的需要根据平台出包