Android虛擬機修改host文件的方法

今天在調試頁面時想看看在android上面的效果,於是乎就有下面的一系列問題瞭,如何修改host呢?

準備工作:啟動虛擬機。這裡的啟動不是從eclipse中啟動,而是從命令行中啟動。

emulator -avd 你創建的avd名字(比如android2.1) -partition-size 128
-partition-size 128 :指定模擬器的system和data分區的大小是128M

修改HOST文件:

1、獲得root權限:adb root

2、設置/system為可讀寫:adb remount

3、將hosts文件復制到PC:adb pull /system/etc/hosts <PC機上文件名>。這裡可以考慮使用DDMS來復制,這個比較方便,但上傳經常會出錯;

4、修改PC機上文件

5、將PC機上文件復制到手機:adb push <PC機上文件名> /system/etc/hosts

如果要查看是否修改成功,可以在PC上執行adb shell,運行cat /system/etc/hosts;或者在手機上運行cat /system/etc/hosts。

hosts文件格式的寫法應該是每個域名一行才能使用,例如:

127.0.0.1      host1.example.com
127.0.0.1      host2.example.com
127.0.0.1      host3.example.com

ps:如何判斷手機是否已經root瞭,輸入adb shell回車,su 回車,如果出現#,那麼你的手機的確ROOT瞭。

另:文件稍微大點,輸入完命令就提示out of memory,在網上找到的解決辦法都是針對模擬器的.後來通過下面的方式徹底搞定.

 

adb常用命令
adb remount           重新掛載文件系統
adb reboot             重啟手機
adb reboot recovery     重啟到Recovery界面
adb reboot bootloader    重啟到bootloader界面
adb get-product         獲取設備的ID

adb get-serialno         獲取設備的序列號

adb bugreport           查看bug報告

 
 
下列表格列出瞭adb支持的所有命令,並對它們的意義和使用方法做瞭說明.

Category

Command

Description

Comments

Options

-d

僅僅通過USB接口來管理abd.

如果不隻是用USB接口來管理則返回錯誤.

-e

僅僅通過模擬器實例來管理adb.

如果不是僅僅通過模擬器實例管理則返回錯誤.

-s <serialNumber>

通過模擬器/設備的允許的命令號碼來發送命令來管理adb (比如: "emulator-5556").

如果沒有指定號碼,則會報錯.

General

devices

查看所有連接模擬器/設備的設施的清單.

查看 Querying for Emulator/Device Instances 獲取更多相關信息.

help

查看adb所支持的所有命令。.

version

查看adb的版本序列號.

Debug

logcat [<option>] [<filter-specs>]

將日志數據輸出到屏幕上.

bugreport

查看bug的報告,如dumpsys , dumpstate ,和logcat 信息。

jdwp

查看指定的設施的可用的JDWP信息.

可以用 forward jdwp:<pid> 端口映射信息來連接指定的JDWP進程.例如:
adb forward tcp:8000 jdwp:472
jdb -attach localhost:8000

Data

install <path-to-apk>

安裝Android為(可以模擬器/設施的數據文件.apk指定完整的路徑).

pull <remote> <local>

將指定的文件從模擬器/設施的拷貝到電腦上.

push <local> <remote>

將指定的文件從電腦上拷貝到模擬器/設備中.

Ports and Networking

forward <local> <remote>

用本地指定的端口通過socket方法遠程連接模擬器/設施

端口需要描述下列信息:

· tcp:<portnum>

· local:<UNIX domain socket name>

· dev:<character device name>

· jdwp:<pid>

ppp <tty> [parm]…

通過USB運行ppp:

· <tty>— the tty for PPP stream. For example dev:/dev/omap_csmi_ttyl .

· [parm]…&mdash zero or more PPP/PPPD options, such as defaultroute , local , notty , etc.

需要提醒你的不能自動啟動PDP連接.

Scripting

get-serialno

查看adb實例的序列號.

查看 Querying for Emulator/Device Instances 可以獲得更多信息.

get-state

查看模擬器/設施的當前狀態.

wait-for-device

如果設備不聯機就不讓執行,–也就是實例狀態是 device 時.

你可以提前把命令轉載在adb的命令器中,在命令器中的命令在模擬器/設備連接之前是不會執行其它命令的. 示例如下:

adb wait-for-device shell getprop

需要提醒的是這些命令在所有的系統啟動啟動起來之前是不會啟動adb的 所以在所有的系統啟動起來之前你也不能執行其它的命令. 比如:運用install 的時候就需要Android包,這些包隻有系統完全啟動。例如:

adb wait-for-device install <app>.apk

上面的命令隻有連接上瞭模擬器/設備連接上瞭adb服務才會被執行,而在Android系統完全啟動前執行就會有錯誤發生.

Server

start-server

選擇服務是否啟動adb服務進程.

kill-server

終止adb服務進程.

Shell

shell

通過遠程shell命令來控制模擬器/設備實例.

查看 獲取更多信息 for more information.

shell [<shellCommand>]

連接模擬器/設施執行shell命令,執行完畢後退出遠程shell端l.

 

You May Also Like