如何在连接到远程系统的设备上部署和执行应用程序?

阿姆贾德

我需要在连接到同一网络中另一台计算机的设备上部署测试应用程序并发出命令。

我通过http://developer.android.com/tools/help/adb.html#directingcommands阅读,但找不到答案。

我尝试使用,adb connect <remote machine IP>但出现unable to connect错误。

有没有办法adb在连接到远程系统的设备上部署应用程序并执行命令?

亚历克斯·P。

adb 标签Wiki

Android调试桥(adb)是一种多功能的命令行工具,可让您与仿真器实例或连接的Android设备进行通信。它是一个客户端服务器程序,包括三个组件:

  1. 在您的开发计算机上运行的客户端。您可以通过发出adb命令从Shell调用客户端。其他Android工具(例如ADT插件和DDMS)也会创建adb客户端。
  2. 服务器,在开发计算机上作为后台进程运行。服务器管理客户端与在模拟器或设备上运行的adb守护程序之间的通信。
  3. 守护程序,在每个仿真器或设备实例上作为后台进程运行。

adb connect命令用于将本地adb 服务器网络连接设备上adbd 守护程序连接。但是,您想要的是将本地adb 客户端连接到远程(在另一个系统上运行)adb 服务器adb可执行文件的默认行为是连接到adb 服务器的本地实例如果没有找到,它将尝试启动一个。这种方法非常适合在单个系统上完成所有开发的大多数环境。但是在更复杂的环境中,这可能会导致启动多个adb 服务器实例而且由于adbd 守护程序仅支持连接到单个adb 一次一台服务器-该设备将被一个系统识别,并且在其他任何地方都将丢失。

因此,为了adb可靠地识别那些更复杂配置中的设备,您需要告诉adb您停止猜测并手动指定哪个部分adb(即serverclient)应该在哪个系统上运行。

首先,请确保adb在本地和远程系统上都安装了相同且足够新的版本(最新的Google官方版本通常效果最好)。而且,任何adb一个系统上当前都没有服务器在运行。

然后,adb server使用以下命令在远程系统上启动实例(将设备插入该实例):

adb -a -P <PORT_NUMBER> nodaemon server

现在,您可以adb通过添加-H <REMOTE_IP> -P <PORT_NUMBER>以下adb命令来强制本地系统上的客户端使用其他(远程)服务器,而不是启动其自己的(本地)实例

adb -H <REMOTE_IP> -P <PORT_NUMBER> devices

另外,在客户端设置ANDROID_ADB_SERVER_ADDRESS=<REMOTE_IP>ANDROID_ADB_SERVER_PORT=<PORT_NUMBER>环境变量将使您避免必须为每个命令指定<REMOTE_IP><PORT_NUMBER>adb

如果省略,则<PORT_NUMBER>默认为5037

这个官方的内部adb编排解决方案不是SSH隧道的互斥替代方案,它只是解决了另一个更重要的问题。您可以在此之上添加隧道以增加额外的安全性或帮助解决多站点网络环境中的路由问题。但是单凭隧道无法解决所有adb连接问题。

虚拟化环境也是如此-adb server主机来宾系统之间运行多个实例也将导致adb连接问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在一个存储设备上部署由前端和后端组成的应用程序

在 IIS(远程系统)上部署应用程序后,转换为日期不起作用

如何在Ubuntu上部署Amber应用程序?

如何在ubuntu上部署Play框架应用程序?

如何在Kubernetes上部署Kafka Stream应用程序?

如何在 Kubernetes 上部署 SGX 应用程序?

如何在IIS上部署WCF服务应用程序

如何在weblogic上部署Spring Boot应用程序?

如何在cpanel上部署nextjs应用程序?

如何在Heroku上部署Webpack应用程序?

如何在Amazon Kinesis服务上部署和运行Amazon Kinesis应用程序

如何在单个应用程序服务上部署ASPNET Core Web API和ASPNET WebAPI

如何在 Linux 服务器上部署 Node.js 和 MongoDB 应用程序

如何在Spring Boot应用程序中通过SSH隧道连接到远程MySQL

无法使用Aws Ecs上部署的.net核心应用程序连接到Aurora MySql

如何从Java Se连接到在glassfish上部署的远程Ejb?

在远程服务器上部署,启动和停止Scala应用程序

如何在实时服务器上部署Spring Boot应用程序并使用mysql建立数据库连接

在 iOS 设备上部署供个人使用的应用程序

在Windows系统上部署Java应用程序

如何在两个不同的服务器之间部署和设置连接到一个 Heroku 应用程序

连接到Linux系统时,自动在Android设备上安装多个应用程序

如何在 Azure(首选通过 Azure Pipelines)上部署 Vue(前端)和 Spring Boot(后端)应用程序?

如何在同一主机上部署 Vue.js 2 应用程序和 Laravel 5.4 API

在Heroku上部署打字稿应用程序,执行错误

如何在每个开口处将应用程序重新连接到同一蓝牙低功耗设备?

使用Tomcat和PostgreSQL在Docker上部署应用程序

如何将PC中的程序连接到Android设备中的应用程序

如何在本地tomcat服务器上部署angular2应用程序?