如何设置 Android 模拟器代理设置

我想在 Android 模拟器中使用浏览器,我想在我的机器上使用代理设置。我该怎么安排?

阅读非常好的 Android 手册,他们告诉我应该使用以下命令启动 Android:

emulator -avd myavd -http-proxy http://168.192.1.2:3300

但是我还是不能使用模拟器浏览器。请注意,我正在使用代理服务器的 IP 地址。

我做错了什么?

270665 次浏览

这对浏览器没有帮助,但是您也可以在代码中定义一个用于 HTTP 客户端的代理:

// proxy
private static final String PROXY = "123.123.123.123";
// proxy host
private static final HttpHost PROXY_HOST = new HttpHost(PROXY, 8080);
HttpParams httpParameters = new BasicHttpParams();
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, PROXY_HOST);

这些都没用 我在 Windows 64位上使用 Eclipse: 按照下面的步骤做... 对我来说很管用: Windows-> 首选项-> Android-> 启动-> 默认模拟器选项 Http://10.1.8.30:8080

在你的日食窗口

最简单也是最好的方法是这样做: 这已经在 Android 模拟器2.2中完成了

  1. 点击菜单
  2. 点击设置
  3. 点击无线及网络
  4. 使用流动网络
  5. 转到访问点名称
  6. 在这里你将 Telkila 互联网,点击它。
  7. In the Edit access point section, input the "proxy" and "port"
  8. 还要提供用户名和密码,其他字段保留为空。

为了设置代理服务器,我们需要设置 APNS设置:

  1. 去设置

  2. 进入无线网络

  3. 进入移动网络

  4. 转到访问点名。使用菜单添加新的 apns

    设置 Proxy = localhost

    设置使用代理服务器的 Port = Port,在我的例子中是8989

    For setting Name and apn here is the link:

    根据你的 sim卡你可以看到表

我没有运气,直到我尝试设置环境变量

Http://developer.android.com/tools/help/emulator.html

“如果没有提供-http-proxy 命令,模拟器会查找 http _ proxy 环境变量,并自动使用与上述格式相匹配的任何值。”

-http-proxy on Android Emulator

在运行配置 > Android 应用程序 > 应用程序 > 目标 > 其他模拟器命令行选项:-http-xy http://xx.xxx.xx.xx:8080

使用 AVD 机器人仿真器:

  1. Open the simulator ( "..\android-sdk\AVD Manager.exe")
  2. Go to Tools
  3. 进入选项
  4. 关于代理设置:

在第一个字段(HTTP Proxy Server)上,只设置代理的 IP 地址(XXX.XXX.XXX.XXX) 在第二个字段上设置代理的端口(例如: 8080)

然后,单击窗口上的 Close 并启动模拟器

——补充..。 然后 Alex 的步骤对我的案子有帮助:

Click on Menu
Click on Settings
Click on Wireless & Networks
Go to Mobile Networks
Go to Access Point Names
Here you will Telkila Internet (or other name), click on it.
In the Edit access point section, input the "proxy" and "port"

有时甚至在设置了所有的方法之后也可能不起作用。我已经尝试了所有的方法,比如

  1. 在仿真程序 APN 中设置代理
  2. 通过 Eclipse 首选项设置它—— > Android —— > 启动

什么都不管用。然后我做了下面的事情,立刻就管用了。

Goto eclipseRun —— > Run configuration 运行配置。在 Android 应用程序下你可以看到你的应用程序。现在,在右侧单击 Target 选项卡。在“附加仿真程序命令行选项”下添加以下内容。

-dns-server <DNS 服务器从您的本地计算机多达三个> -http-proxy http://<你的代理人>:<你的代理端口>

这里的问题在于 DNS 服务器设置应该来自您的本地系统。转到 Cmd提示和运行 Ipconfig检查您的 DNS 服务器。代理服务器和端口也是如此。任何对你的浏览器有用的东西都应该放在这里。

你可以在你的应用程序中设置代理。这可以通过设置类来完成。 例如,您可以向“ onCreate”方法添加以下代码行。

 Settings.System.putString(getContentResolver(), Settings.System.HTTP_PROXY, "myproxy:8080");

要更改代理设置,您必须在 AndroidManifest.xml 文件中拥有 android.permison.WRITE _ SETTings 权限。

In case if you are under proxy environment and internet is not running in your emulator, then please don't change any setting in emulator. Go to your eclipse project, right click , click on "Run as" then click on "Run Configuration". 在弹出窗口中选择“目标”并向下滚动一点, 您会发现“其他模拟器命令行选项” 在我输入的“其他模拟器命令行选项”中输入您的代理设置

代理 http://ee11s040:Om1l2ng3d4n2!08@hproxy.iitm.ac.in:3128

enter image description here

然后启动一个新的模拟器。

在删除服务器名称中的 http 之后,我尝试了一下,它对我很有效。

emulator -avd myavd -http-proxy 168.192.1.2:3300

the best way to set corporate proxy with ntlm authentication is to use cntlm:

Http://cntlm.sourceforge.net/

在 C: Program Files Cntlm Cntlm.ini 中安装和配置 默认情况下,cntlm 侦听127.0.0.1:3128

在 android 设备中设置一个新的 APN,代理主机为10.0.2.2,端口为3128 10.0.2.2是宿主环回接口的一个特殊别名(在开发计算机上为127.0.0.1)

see also Http://developer.android.com/tools/devices/emulator.html#emulatornetworking

问候

Are you sure that your address is 168.192.1.2 and not 192.168.1.2?

Notice the swapped first two numbers.

最简单的方法是从模拟器中删除默认 APN (在我的例子中是 T-mobile) ,然后 使用代理设置创建新的 APN。

注意: 我已经尝试了所有的命令行选项,并且还尝试将代理设置为 emulators default APN but nothing worked.

根据运行模拟器所使用的环境,检查日志以查看模拟器是如何启动的。我的开头是:

C: 用户 johan AppData 本地 Android Sdk 工具 Simulator.exe-netdelyno- netspeed full-avd Nexus _ 5X _ API _ 23

然后,在我的例子中添加-http-xy 选项:

C: 用户 johan AppData 本地 Android Sdk 工具模拟器.exe-net 延迟 none-netspeed full-avd Nexus _ 5X _ API _ 23 < strong > 代理服务器192.168.022:8888

在主机上安装 代理人安装代理程序以使用代理.你什么都不用做。你会没事的。代理捕获来自系统(包括 android 仿真器)的调用并通过配置的代理路由它。

Android 模拟器中有一个设置来设置代理。 enter image description here

在 Android Studio 上:

单击应用程序菜单下的“编辑配置”

enter image description here

  1. 转到 App 或 Android App (作为默认设置)
  2. 点击调试器
  3. 点击 LLDB 启动命令
  4. Tap +
  5. 添加命令 -http-proxy http://168.192.1.2:3300

enter image description here

就是这样。

更酷的东西如果你想使用你的电脑 IP,使用这个命令:

  • MacOS 上的 -http-proxy "$(ipconfig getifaddr en0)":8888
  • Linux 上的 -http-proxy "$(hostname -i)":8888

= = = = = = = UPDATE 23.2.2022 = = = = = = =

目前,我使用这些命令来启用/禁用代理:

adb shell settings put global http_proxy 127.0.0.1 :8889

或者动态地把我的电脑作为主机

adb shell settings put global http_proxy $(ipconfig getifaddr en0) :8889

禁用该代理使用:

adb shell settings put global http_proxy :0

在控制台中启动下一个命令:

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080

For some leanback (TV) emulators you can use cmd:

adb shell settings put global http_proxy 10.0.2.2:8888

  • 8888 - is a port of proxy on a local machine (host), so on a local machine the http proxy will be 127.0.0.1:8888

删除代理(在 cmd 行中按顺序运行) :

adb shell settings delete global http_proxy

adb shell settings put global global_http_proxy_host ""

adb shell settings put global global_http_proxy_port ""

在2022年,你可以使用如下 adb 命令:

adb shell settings put global http_proxy "your_PC_IP:PORT_YOU_LISTEN"

你可以使用以下命令禁用你的代理服务器:

adb shell settings put global http_proxy :0

有时候最简单的方法是使用带有 GooglePlay 的模拟器并在其上下载一个 VPN 客户端(比如 Cisco Anyconnect Client)

然后在模拟器上配置 VPN 并解决访问问题。