我想在 Android 模拟器中使用浏览器,并且我想在我的机器上使用代理设置。我该如何设置?
阅读了非常好的 Android 手册,他们告诉我应该使用以下命令启动 Android:
emulator -avd myavd -http-proxy http://168.192.1.2:3300
但我仍然无法使用模拟器浏览器。请注意,我正在使用代理服务器的 IP 地址。
我究竟做错了什么?
我想在 Android 模拟器中使用浏览器,并且我想在我的机器上使用代理设置。我该如何设置?
阅读了非常好的 Android 手册,他们告诉我应该使用以下命令启动 Android:
emulator -avd myavd -http-proxy http://168.192.1.2:3300
但我仍然无法使用模拟器浏览器。请注意,我正在使用代理服务器的 IP 地址。
我究竟做错了什么?
最简单和最好的方法是执行以下操作: Android Emulator 2.2 已完成此操作
在运行配置> Android 应用程序> 应用程序> 目标> 附加模拟器命令行选项:-http-proxy http://xx.xxx.xx.xx:8080
我在服务器名称中删除 http 后尝试过,它对我有用。
emulator -avd myavd -http-proxy 168.192.1.2:3300
这对浏览器没有帮助,但您也可以在代码中定义代理以与 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);
在 Android Studio 上:
单击应用程序菜单下的编辑配置
-http-proxy http://168.192.1.2:3300
就是这样。
如果你想使用你的 PC IP 更酷的东西,使用这个命令:
-http-proxy "$(ipconfig getifaddr en0)":8888
在 MacOS 上-http-proxy "$(hostname -i)":8888
在 Linux 上====== 2022 年 2 月 23 日更新 ======
目前我正在使用这些命令来启用/禁用代理:
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
在我尝试设置环境变量之前我没有运气http_proxy
http://developer.android.com/tools/help/emulator.html
“如果未提供 -http-proxy 命令,模拟器会查找 http_proxy 环境变量并自动使用与上述格式匹配的任何值。”
对于设置代理服务器,我们需要设置APNS
设置。去做这个:
进入设置
转到无线和网络
转到移动网络
转到接入点名称。使用菜单添加新的 apns
设置代理=本地主机
设置 Port = 您用来制作代理服务器的端口,在我的例子中是 8989
根据你的sim
卡你可以看到桌子
最简单的方法是从模拟器中删除默认 APN(在我的情况下是 T-mobile)并使用您的代理设置创建新的 APN。
注意:我已经尝试了所有命令行选项,还尝试为模拟器默认 APN 设置代理,但没有任何效果。
对于某些leanback
(电视)模拟器,您可以使用 cmd:
adb shell settings put global http_proxy 10.0.2.2:8888
8888
- 是本地机器(主机)上的代理端口,因此在本地机器上,http 代理将是 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 ""
在您的主机中安装Proxifier 。设置 proxifier 以使用您的代理。你不需要做任何其他事情。你会好起来的。Proxifier 捕获来自系统(包括 android 模拟器)的调用,并通过配置的代理对其进行路由。
我在 Windows 64 位上使用 Eclipse:执行以下步骤...它对我有用:窗口 -> 首选项 -> Android -> 启动 -> 默认模拟器选项 -http-proxy="http:/ /10.1.8.30:8080"
在你的日食窗口中
有时即使设置了所有它也可能无法正常工作。我已经尝试了所有的方法,比如
没有任何效果。然后我做了以下立即奏效。
转到 eclipse 运行 --> 运行配置。在 Android 应用程序下,您可以看到您的应用程序。现在,在右侧单击目标选项卡。在“其他模拟器命令行选项”下添加以下内容。
-dns-server <本地机器的DNS服务器最多三个> -http-proxy http://<你的代理>:<你的代理端口>
这里的问题是 DNS 服务器设置应该来自您的本地系统。转到cmd提示符并运行ipconfig以检查您的 DNS 服务器。与代理服务器和端口相同。任何适用于您的浏览器的东西都应该放在这里。
根据您用于运行模拟器的环境,检查日志以了解模拟器是如何启动的。我的开始是:
C:\Users\johan\AppData\Local\Android\Sdk\tools\emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_23
然后你添加 -http-proxy 选项,在我的例子中:
C:\Users\johan\AppData\Local\Android\Sdk\tools\emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_23 -http-proxy 192.168.0.22:8888
您确定您的地址是 168.192.1.2 而不是 192.168.1.2?
注意交换的前两个数字。
如果您在代理环境下并且模拟器中没有运行互联网,请不要更改模拟器中的任何设置。转到您的 Eclipse 项目,右键单击,单击“运行方式”,然后单击“运行配置”。在弹出窗口中选择“Target”并向下滚动一点,你会发现“Additional Emulator Command Line Options”在我输入的“Additional Emulator Command Line Options”中输入您的代理设置
-http-代理http://ee11s040:Om1l2ng3d4n2!08@hproxy.iitm.ac.in:3128
然后启动一个新的模拟器。
使用 ntlm 身份验证设置公司代理的最佳方法是使用 cntlm:
在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)
另见 http://developer.android.com/tools/devices/emulator.html#emulatornetworking
问候
在控制台中启动下一个命令:
emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080
拥有 AVD 安卓模拟器:
在第一个字段(HTTP 代理服务器)上仅设置您的代理的 IP 地址(XXX.XXX.XXX.XXX)在第二个字段上设置您的代理端口(例如:8080)
然后,单击窗口上的关闭并启动模拟器
---- 添加...然后亚历克斯步骤适用于我的情况:
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"
您可以在您的应用程序中设置代理。这可以使用设置类来完成。例如,您可以在“onCreate”方法中添加以下行。
Settings.System.putString(getContentResolver(), Settings.System.HTTP_PROXY, "myproxy:8080");
要更改代理设置,您必须在 AndroidManifest.xml 文件中拥有 android.permission.WRITE_SETTINGS 权限。