我想在 Android 模拟器中使用浏览器,并且我想在我的机器上使用代理设置。我该如何设置?
阅读了非常好的 Android 手册,他们告诉我应该使用以下命令启动 Android:
emulator -avd myavd -http-proxy http://168.192.1.2:3300
但我仍然无法使用模拟器浏览器。请注意,我正在使用代理服务器的 IP 地址。
我究竟做错了什么?
最简单和最好的方法是执行以下操作: Android Emulator 2.2 已完成此操作
单击菜单 单击设置 单击无线和网络 转到移动网络 转到接入点名称 这里您将出现 Telkila Internet,单击它。在编辑接入点部分,输入“代理”和“端口”,还提供用户名和密码,其余字段留空。
https://i.stack.imgur.com/A2ajQ.png
运行配置>安卓应用>应用程序>目标>其他模拟器命令行选项:-http-proxy http://xx.xxx.xx.xx:8080
-http-proxy http://username:password@host:port
emulator is not recognized as a command
..我需要在 PATH 变量中添加任何内容吗??我正在使用 Android Studio 1.0.1 并在我的办公系统中有代理。
https://i.stack.imgur.com/MyZ1e.jpg
我在服务器名称中删除 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 上:
单击应用程序菜单下的编辑配置
https://i.stack.imgur.com/Kh7q3.png
转到 App 或 Android App(作为默认设置)点击 Debugger 点击 LLDB 启动命令 点击 + 添加你的命令 -http-proxy http://168.192.1.2:3300
https://i.stack.imgur.com/SlFPC.png
就是这样。
如果你想使用你的 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 Set Proxy = localhost Set Port = 您用来制作代理服务器的端口,在我的情况下是 8989 用于设置名称和 apn 这里是链接:根据您的 sim 卡,您可以看到表格
最简单的方法是从模拟器中删除默认 APN(在我的情况下是 T-mobile)并使用您的代理设置创建新的 APN。
注意:我已经尝试了所有命令行选项,还尝试为模拟器默认 APN 设置代理,但没有任何效果。
在您的主机中安装 Proxifier。 Setup proxifier to use your proxy。你不需要做任何其他事情。你会好起来的。 Proxifier 捕获来自系统(包括 android 模拟器)的调用,并通过配置的代理对其进行路由。
对于某些 leanback
(TV) 模拟器,您可以使用 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 ""
我在 Windows 64 位上使用 Eclipse:执行以下步骤...它对我有用:窗口 -> 首选项 -> Android -> 启动 -> 默认模拟器选项 -http-proxy="http:/ /10.1.8.30:8080"
在你的日食窗口中
有时即使设置了所有它也可能无法正常工作。我已经尝试了所有的方法,比如
在 Emulator APN 中设置代理 通过 eclipse 首选项设置它 --> Android --> 启动
没有任何效果。然后我做了以下立即奏效。
转到 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
如果您在代理环境下并且模拟器中没有运行互联网,请不要更改模拟器中的任何设置。转到您的 Eclipse 项目,右键单击,单击“运行方式”,然后单击“运行配置”。在弹出窗口中选择“Target”并向下滚动一点,你会发现“Additional Emulator Command Line Options”在我输入的“Additional Emulator Command Line Options”中输入您的代理设置
-http代理http://ee11s040:Om1l2ng3d4n2!08@hproxy.iitm.ac.in:3128
https://i.stack.imgur.com/oelqY.png
然后启动一个新的模拟器。
使用 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
问候
您确定您的地址是 168.192.1.2 而不是 192.168.1.2?
注意交换的前两个数字。
在控制台中启动下一个命令:
emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080
拥有 AVD 安卓模拟器:
打开模拟器(“..\android-sdk\AVD Manager.exe”)转到工具转到代理设置上的选项:
在第一个字段(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 权限。
对于 2022,您可以使用如下 adb 命令:
adb shell settings put global http_proxy "your_PC_IP:PORT_YOU_LISTEN"
您可以使用以下命令禁用您的代理:
adb shell settings put global http_proxy :0