利用Android Studio自带的模拟器联网。
Android Studio自带的模拟器本身默认是不能上网的,因为默认DNS为10.0.2.3,使用这个DNS是不能上网的。

网上很多帖子已经给出了解决办法,但是会遇到下面这种情况:

%title插图%num

通过继续查询得知:通过shell命令设置(获取)IP、网关、dns信息,需要获取root权限。

下面给出打开Android Studio自带的模拟器联网功能的完整步骤(亲测可行):
首先把模拟器打开,然后需要把SDK文件夹下的platform-tools添加到系统变量中,至于怎么添加系统变量,请自行百度。

怎么检查自己是否添加成功呢,在cmd中输入:adb shell 回车,如果是下图的话代表添加成功。如果成功的话,输入exit即可退出adb。

%title插图%num

重点来了,进入到cmd后,需要输入adb root 将模拟器root一下,才能更改DNS。然后再输入adb shell。

接下来输入getprop获取模拟器系统属性。找到[net.eth0.dns1]这一项,发现后面为10.0.2.3,接下来我们输入setprop net.eth0.dns1 192.168.1.1.后面的ip也可为其他,不过我没尝试。(没有[net.eth0.dns1]的话因为系统是Android9.0及以上,建议换到8.0及以下)

网上很多帖子是[net.dns1],不过我的模拟器上面dns1前面有eth0,这个大家根据自己的模拟器情况决定。

然后打开模拟器的数据连接。即可使用模拟器的谷歌浏览器上网。

网友出现的问题:

1、adbd cannot run as root in production builds
解决办法:原因是模拟器的Android系统是Google Play,应该选用Google API。

%title插图%num %title插图%num
PS:我记得我之前root过一次,但好像是每次打开电脑要修改模拟器重要配置的话就需要root,总之一句话,root就完事了。

 

翠花上酸菜丶:adbd cannot run as root in production builds
翠花上酸菜丶回复BaldStrong:嗯嗯,谢谢
BaldStrong回复:找到原因了 https://icetutor.com/question/adb-root-is-not-working-on-emulator-cannot-run-as-root-in-production-builds/
BaldStrong回复:给你找了几个教程不知能否帮到你 https://blog.csdn.net/hlllmr1314/article/details/52217128 https://www.jianshu.com/p/e0646fbb72ed
AnyPlayer~:这样重新打开模拟器都需要进行设置,有没有其他的方法可以一劳永逸 ?
方峰同学回复:这个我按照文中方法试了,只需要设置一次,重启也还有效。
BaldStrong回复: 这个我之前就设置了一次,现在不搞Android了,我刚查了下,你可以试试把模拟器adb永久root后再设置dns,我没试,仅提供一个思路。
AnyPlayer~回复BaldStrong:没有,我重新启动模拟器就失效了
BaldStrong回复: 如果不删除这个模拟器的话,只设置一次就行。
weixin_41232585:我是Windows10,不知道是否和系统有关,getprop后能得到很多数据,但根本看不见模拟器的dns,root也不行,更别说设置了
BaldStrong回复shirwee_xu:没有[net.eth0.dns1]的话因为系统是Android9.0及以上,建议换到8.0及以下
shirwee_xu回复BaldStrong: 同没有模拟器的dns
BaldStrong回复Shirlyna:输入getprop,返回很多行,你仔细看一下有没有dns开头的,如果确实没有可以加我QQ给我截图看下:1421692663
Shirlyna回复BaldStrong:配置了sdk环境变量,进入adb一样没有dns
qq_42696259回复:我也是,根本看不见dns,呜呜呜
BaldStrong回复:你可以试着把SDK文件夹下的platform-tools添加到系统变量,不行的话百度下 进入adb 的步骤。
weixin_41232585回复BaldStrong:没加,在cmd用cd跳进去的,一样的效果吧
BaldStrong回复:你之前在Android Studio里面运行过模拟器吧?把SDK文件夹下的platform-tools添加到系统变量了吧?