0
回答
Android 模拟器联网
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
一般来说,Android Emulator(Android Virtual Device)不需要做什么特殊设置就可以连接到internet,是通过主机的IP出去的

模拟器提供通用的网络能力

网络地址空间

模拟器的每个实例运行在一个虚拟的路由器/防火墙服务后面, 以便于同你的开发机器的网络接口隔离开来.
一个模拟设备不可能看到你的开发机器, 或者其它的模拟设备实例. 也就是说,它只能看到自己通过以太网连接到防火墙

每个实例的虚拟路由器 管理着 10.0.2/24这个网络地址空间—被路由器管理的所有的地址,都是以10.0.2.x的形式存在的

被模拟器/路由器预先分配的地址是
10.0.2.1 路由器/网关地址
10.0.2.2 你的主机loopbackup接口的别名( 也就是你的开发机的127.0.0.1)
10.0.2.3 第1个DNS服务器
10.0.2.4/10.0.2.5/10.0.2.6 可选的第2个,3个,4个DNS(如果有的话)
10.0.2.15 模拟的手机设备,自己的网络/以太网接口
127.0.0.1 模拟的手机设备自己的loopbackp接口

因为AVD就是用QEMU改装的, 所以,用过qemu对这个应该很熟悉

每个模拟器实例都有自己的路由器 , 这些实例是相互隔离的,看不到的.

如果你想在模拟器中访问你的开发机,,请使用10.0.2.2这个IP

模拟器的虚拟路由器应该可以处理所有出去的TCP和UDP连接
模拟器不能处理ICMP等协议.

为了同在虚拟路由器之后的模拟器通信, ,必须在虚拟路由器上安装网络重定向. 连接到路由器上的某个指定的端口, 路由器会转发这些流量给模拟器设备.

用模拟器控制台命令, 或者使用ADB(Android Debug Bridge )工具

在模拟器控制台上,使用redir命令可以安装重定向

第1个模拟器实例的控制台,监听在5554端口
telnet locahost 5554
就可以连接上去, 然后使用
redir add tcp:9527:8080

将访问者开发机器 127.0.0.1:9527的数据,转发到 模拟器的10.0.2.15:8080

列出所有的重定向规则
redir list

可以在启动模拟器的命令行中指定 -dns-server

连接到模拟器控制台,查看网络状态
network status

模拟网络延时
network delay gprs
edge
umts
none (没有延时)

network delay : 设置最大或者最小延时

为了模拟网络速度,在模拟器启动时,可以加上-netspeed 参数

emulator -netspeed gsm

也可以连接到模拟器控制台,使用 netspeed 命令

network speed gsm
hscsd
gprs
edge
umts
hsdpa
full (没有限制)
:

短信发送
sms send

电话
gsm

比如
gsm call gsm accept

重要参数
-shell

Create a root shell console on the current terminal.
在当前的终端中建立一个root shell控制台

You can use this command even if the adb daemon in the emulated system is broken. Pressing Ctrl-c from the shell stops the emulator instead of the shell.

即使在模拟的系统中adb服务中断, 你也可以继续使用root, 按Ctrl-C停止模拟器而不是shell

比如
-shell-serial tcp::4444,server,nowait

-shell-serial stdio 等同于 -shell

adb -e pull /system/app/Development.apk ./Development.apk
adb -d install Development.apk

原文转自: http://zhiwei.li/
举报
无鸯
发帖于6年前 0回/1K+阅
顶部