• android 下修改 hosts文件 及 out of memory的解决


    因为android模拟器host文件无法修改,导致无法通过域名使用http方法调用内网服务,因此从网上大量转载的一种方法,这种方法:

        1. 通过emulator -avd avdName -partition-size 128 启动模拟器

        2.通过adb root 和 adb remount 命令获得root权限。

        3.通过 adb pull /system/etc/hosts 命令将hosts文件转移到PC上,手动修改hosts,并且通过adb push将hosts文件再推送回去。

         这个问题是因为linux中的换行符和window中的回车换行不一致引起的,网上大部分方法是让利用ultraedit等编辑器直接修改,但是我复制到编辑器上依然无法修改。上贴中的malbers回复说,利用echo命令,可以直接通过命令将需要修改的内容添加到hosts文件中,试了一下,果然可行。

         首先键入 adb shell 命令(新版本的sdk adb命令被转移到了platform-tools目录中),然后echo 192.168.0.246 www.aaa.com>>/system/etc/hosts,敲入上面这条命令后,再使用 cat /system/etc/hosts查看hosts文件修改情况,发现hosts果然已经被修改,但是问题是依然没有换行,貌似只有换行了以后才能被识别,

    因此再次利用echo命令加入了换行符,问题解决。具体操作如下:

         前面几个步骤不变,但是不需要将hosts文件pull到电脑上,如果你已经修改了但是无效,可以先pull出来,还原到原始状态,不要有任何换行,并替换掉

    模拟器上已经修改的hosts,使它回复到原始状态。即只有127.0.0.1 localhost。

        然后进入adb shell , 使用 echo -e \n >> /system/etc/hosts 为hosts文件加入换行符。

        再次使用 echo 192.168.0.246 www.aaa.com >> /system/etc/hosts 。

        这样就完整解决了换行问题。再次在浏览器中敲入www.aaa.com,熟悉的页面也出现了。

    具体步骤如下

    1、获得root权限:adb root

    2、设置/system为可读写:adb remount

    3、将hosts文件复制到PC:adb pull /system/etc/hosts <PC机上文件名>

    4、修改PC机上文件

    5、将PC机上文件复制到手机:adb push <PC机上文件名> /system/etc/hosts

    但在第五步时,有的人会报  out of memory的错误

    这是因为直接用命令行启动,而没加一个参数造成的,所以用下面这个命令来启动就行了

    $emulator –avd youravdname –partition-size 128

    来源于(可能被墙了)

    http://www.cuteandroid.com/tips-for-android-developer-failed-to-copy-file-to-system

  • 相关阅读:
    Netty源码剖析-关闭服务
    Netty源码剖析-断开连接
    Netty源码剖析-发送数据
    Netty源码剖析-业务处理
    Netty源码剖析-接受数据
    Netty源码剖析-构建链接
    html中调用silverlight中的方法
    在Silverlight宿主html页面添加按钮无法显示
    win7旗舰版在安装vs2010后向sql2008添加SQL_Server_Management详解
    javascript arguments
  • 原文地址:https://www.cnblogs.com/zhepama/p/3303714.html
Copyright © 2020-2023  润新知