zoukankan      html  css  js  c++  java
  • Android Studio 模拟器修改hosts文件的方法 2020.8

    因为服务端尚未部署到真正的服务器, 只在本地方便调试。所以安卓访问接口需要修改hosts文件。但是根据网上的很多教程,直接通过adb命令修改并不好用会提示系统文件只读。

    adb root
    // adbd is already running as root
    adb remount
    // remount succeeded
    adb pull /system/etc/hosts
    // [100%] /system/etc/hosts
    // 这里对拉取的文件进行修改
    adb push hosts /etc/hosts
    // adb: error: failed to copy 'hosts' to '/etc/hosts': Read-only file system

    经过一番摸索,总算找到了解决方案。

    起初找到的方案是通过adb shell 进入安卓系统命令行,修改文件系统的只读权限。 但是实际测试发现并没有用。 包括先将文件推送到模拟器的 /sdcard 目录,再通过模拟器命令行复制到系统文件夹等方法均以失败告终。

    其实最新的模拟器api已经不允许这样操作了。 正确的方法是:

    在模拟器启动的时候增加 可写参数

    也就是说,你得先关闭模拟器,然后通过命令行增加启动参数的方式启动模拟器,直接通过Android studio 启动是无法配置参数的。

    cd ~/Library/Android/sdk/platform-tools //进入emulator所在的目标文件夹 
    emulator -list-avds //列出所有模拟器,方法下一步操作模拟器的名字
    emulator -avd Nexus_S_API_24_X86 -writable-system //启动你想要修改的模拟器,其中 Nexus_S_API_24_X86 即为上一步你列出的要启动的模拟器名字

    这样启动成功后再通过上面的方法修改就可以了

    adb root //root 运行 
    adb remount //挂载文件
    adb pull /system/etc/hosts //将模拟器hosts文件拉取到宿主机当前目录
    // 手动在指定文件夹下(本文中放在桌面)打开host文件修改
    adb push ~/Desktop/hosts /system/etc/hosts //将修改完成的hosts文件放到模拟器中。 
    adb shell cat /etc/hosts //查看host文件是否修改成功

    参考:https://stackoverflow.com/questions/41117715/how-to-edit-etc-hosts-file-in-android-studio-emulator-running-in-nougat

  • 相关阅读:
    Maven介绍
    自考:计算机网络原理 2018版 李全龙 课后习题答案
    jmeter分布式部署遇到的坑
    mysql循环 insert插入多条数据
    认识Nacos.
    mysql中where子句中使用别名查询出现问题
    python之bytes和string相互转换
    什么叫线圈?什么寄存器?什么叫保持寄存器?
    Modbus-RTU详解(转载)
    python进制之间的转换函数
  • 原文地址:https://www.cnblogs.com/aleafo/p/13402141.html
Copyright © 2011-2022 走看看