修改Android sdk hosts文件(无线开发)

最近有个项目刚好要对无线产品的开发,对移动终端的一些常规测试,但是手机又无法指定hosts,无法测试本地啊,咋办呢?这时候想到了wp8的sdk,但是wp8的hosts都是写在注册表里,过于麻烦,然后再考虑到Android,但是又遇到了以下的一些情况,google资料一把,自己整理下后,总体问题解决方法就出来了,国内很多网站也有这些资料,但都不全,甚至说了头没有尾,在这里分享给需要的网友。

用默认的SDK manage.exe打开Android之后,进行修改hosts会提示以下几种错误:
1、Android Read-only file system
2、No space left on device
3、Out of memory

问题分析:
这个也不算是什么问题,可能是打开Android的时候默认了大小,自身的内存没有进行设置,固然导致空间不够的问题。

解决方法:
在E:\Program Files (x86)\os\Android\adt-bundle-windows-x86_64-20130219\sdk\tools里有一个emulator.exe的应用,将它创建一份快捷方式,右键这个快捷方式,选择属性,在目标一览里,在目标地址的后面加上以下参数:

-avd shadow -memory 768 -partition-size 1024

那么全部加起来就是:

"E:\Program Files (x86)\os\Android\adt-bundle-windows-x86_64-20130219\sdk\tools\emulator.exe" -avd shadow -memory 768 -partition-size 1024

-avd 设备名称 -memory 内存大小 -partition-size 设置system和data的空间大小。

如下数据:
root@android:/ # df
df

Filesystem             Size   Used   Free   Blksize
/dev                   378M    32K   378M   4096
/mnt/secure            378M     0K   378M   4096
/mnt/asec              378M     0K   378M   4096
/mnt/obb               378M     0K   378M   4096
/system                993M   198M   794M   4096
/data                  993M    10M   982M   4096
/cache                  64M     1M    62M   4096
/mnt/sdcard              1G   206K     1G   2048
/mnt/secure/asec         1G   206K     1G   2048

当遇到第一种错误的时候,那说明没有写入权限了,按照以下操作可解决该问题。

首先进入E:\Program Files (x86)\os\Android\adt-bundle-windows-x86_64-20130219\sdk\platform-tools,也可将此路径设置一个全局变量,这样就可以直接使用adb了,如果没有设置,那么就需要在命令行进入该目录,然后输入adb.exe 即可达到一样的效果。

首先以root的形式进入命令行

adb shell

先排除Android Read-only file system 错误

mount -o remount rw /

设置目录可读写权限

mount -o remount,rw rootfs /system/

转向hosts所有目录

cd /system/etc

修改hosts文件

#echo "127.0.0.1 localhost" > hosts
#echo "127.0.0.1 www.tieyou.com" >> hosts

至此即可对hosts进行修改了,用命令修改固然没有效率,那么可以现在本地创建好hosts,然后退出root shell,ctrl+c即可退出shell模式。

adb push d:/hosts /system/etc/hosts

附上对google的各种墙,解决:Failed to fetch URL https://dl-ssl……等错误

错误信息:

Failed to fectch URl https://dl-ssl.google.com/android/repository/addons_list.xml, reason: Connection to https://dl-ssl.google.com refused

用notepad打开C:/WINDOWS/system32/drivers/etc中的hosts文件
在最后一行添加74.125.237.1 dl-ssl.google.com
成功解决问题。

修改网关等操作如下:

ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
route add default gw 192.168.1.1 dev eth0 
setprop net.dns1 202.106.0.20

这样就将本地已经创建好的hosts上传到Android了,到此操作结束。