云真机各功能的实现历程

一. 远程Shell功能

我们一开始实现的shell功能真的可以说是渣渣,通过前端发送对应的命令到服务端,服务端增加相应的 adb -s xxx shell 进行处理,这里就导致了有好几个问题

  1. 没有上下文的操作概念,也就是说想要进入到某个目录下,然后进行拉取的操作会变得非常的困难。
  2. 安全问题 用户完成可以在命令后面带上 管道符来进行操作对真正的服务器的内容。

其实解决这个问题的方式不难,主要是有没有找到相应的第三方库来替我们来解决这个问题,查找了下相关的开源项目的实现如:ws-scrcpy 以及 atxserver2 , 所以我们发现前端有一个非常棒的库

xterm.js 基本上只要创建好与后台的websocket连接以后,后续的所有的通讯都可以交给xterm去搞定了。而java的后台我们则使用 pty4j

二. 扫码功能

这个功能我们是直接抄的岩鼠的界面,当然逻辑是不太清楚对方怎么实现的,不过直接百度一搜索都能够搜索到很多关于 adb push 图片更新相册 文章说明, 不过发现在部分oppo的手机以及一加手机上这个方式并不能够生效。

查看了android的官方开发文档 有如下的一个说明

在这里插入图片描述

这个广播已经被废弃在api 29的版本。 所以这种发广播的方式 adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file: 可能就不太实用了。

又找到了另外的一篇文章 三种方法,刷新 Android 的 MediaStore!让你保存的图片立即出现在相册里!。 所以我们还是需要通过android代码去更新相册, 考虑到其实appiumSetting这个应用承担了很多这样子的工作,所以我们直接在appiumSetting这个包里面去新增一些逻辑接口了,相应的代码如下

package io.appium.settings.receivers;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值