Android模擬器被命名為goldfish,用來模擬包括下面一些功能的ARM SoC:
* ARM926ej-S CPU
* Thumb support
* MMC
* RTC
* Keyboard
* USB Gadget
* Framebuffer
* TTY driver
* NAND FLASH
Android模擬器所對應的源代碼主要在external/qemu目錄下。如果你想將Android移植到其他設備上,熟悉它目前所針對的模擬器環境可以提供一些參考。
對於應用程序的開發者,模擬器提供了很多開發和測試時的便利。無論在Windows下還是linux下,Android模擬器都可以順利運行,並且Google提供了Eclipse插件,可將模擬器集成到Eclipse的IDE環境。當然,你也可以從命令行啟動Android模擬器。
這款模擬器功能非常齊全,電話本、通話等功能都可正常使用(當然你沒辦法真的從這里打電話)。甚至其內置的瀏覽器和Google Maps都可以聯網。用戶可以使用鍵盤輸入,滑鼠點擊模擬器按鍵輸入,甚至還可以使用滑鼠點擊、拖動屏幕進行操縱。
當然模擬器畢竟是模擬器,和真實的機子還是存在差別的,
* 不支持呼叫和接聽實際來電;但可以通過控制台模擬電話呼叫(呼入和呼出不支持USB連接
要玩GPhone的模擬器,當然需要先去如果打不開就用上面下載Android的SDK,解壓出來後在SDK的根目錄下有一個tools文件夾,裡面就是模擬器和一些非常有用的工具。(SDK詳細的安裝過程請參照http://blog.csdn.net/magicyu2/archive/2009/11/02/4755747.aspx)
要正確的啟動模擬,你必須先要創建一個 AVD( Android Virtual Device 虛擬設備 ) ,你可以利用AVD創建基於不同版本的模擬器,下面就介紹如何創建AVD:
查看當前支持版本(在列出的版本中我們需要記住id值,這個值在第2步中使用):
magicyu@magicyu-desktop:~$ android list target
你可以看到幾個Available Android targets,比如:Name: Android 1.6,他們有各自的id號。
magicyu@magicyu-desktop:~$ android create avd -n magicyu -t 2
-n後面接需要創建avd的名字,-t後面接需要創建虛擬器的類型,2即為步驟(1)中得到的類型id號。
magicyu@magicyu-desktop:~$ android list avd
magicyu@magicyu-desktop:~$ emulator @magicyu 或者
emulator -avd magicyu
magicyu@magicyu-desktop:~$ emulator -avd magicyu -skin QVGA
skin後面接所要啟動皮膚的類型,所有的類型可以在<SDK>/ platforms/android-1.*/skins目錄下找到,*為所指的版本。如在1.6版本的SDK下有HVGA,QVGA, WVGA800,WVGA854幾種。按Ctrl+F11,可以直接改變模擬器的橫縱擺放。
當然AVD也可以在Eclipse中創建和啟動。關於Eclipse+ADT+SDK的安裝請參見。
運行Eclipse,Window->Android SDK and AVD Manager,就能得到如下的界面,選擇新建即可新建一個AVD。
使用命令行創建和啟動Android模擬器 - 流星焰 - 我的世界我編寫
B. ubuntu qemu怎麼聯網
一、虛擬機的創建: 1.ubuntu下安裝好qemu後,使用如下命令創建虛擬機:
qemu-img create -f qcow2 voltdb.img 10g
-f qcow2是指:qemu採取的鏡像格式,qcow2是qemu最常使用的格式,該格式下可以採用來寫時復制技術來優化性能;
voltdb.img是指:鏡像名稱
10g是指:鏡像文件大小
2.之後需要為該鏡像文件安裝操作系統:
qemu-system-x86_64-enable-kvm-hdavoltdb.img-bootd-cdrom./ubuntu-16.04-desktop-amd64.iso-m2048-vnc:1
-enable-kvm:使用KVM進行加速(確保在BIOS中開啟CPU對虛擬化的支持,若未加此項,則鏡像安裝會很慢)
-hda: 指定要安裝虛擬機要使用的虛擬磁碟
-boot d:指定啟動位置,d表示從光碟啟動
-cdrom:指定cdrom為iso文件
-m:指定虛擬機內存大小,默認單位是MB
-vnc:1:通過vnc創建虛擬桌面。(筆者在這里未加-vnc:1時,會提示:CouldnotinitializeSDL(Noavailablevideodevice)-exiting)
3.此時,ubuntu的命令行會阻塞,我們可以通過在windows下通過TigerVNC去遠程連接
(下載地址:https://github.com/TigerVNC/tigervnc/releases)
在TigerVNC中,我們輸入ip:1(注意圓角半形的:)連接即可連接到voltdb.img虛擬鏡像的安裝界面,在那裡完成虛擬機操作系統的安裝即可。
二、配置橋接網路
qemu採用兩種方式配置上網:
其一,默認方式為用戶模式網路(Usermode Networking),數據包由NAT方式通過主機的介面進行傳送。
其二,使用橋接方式(Bridged Networking),外部的機器可以直接聯通到虛擬機,就像聯通到你的主機一樣。
第一,用戶模式
虛擬機可以使用網路服務,但區域網中其他機器包括宿主機無法連接它。比如,它可以瀏覽網頁,但外部機器不能訪問架設在它裡面的web伺服器。
默認的,虛擬機得到的ip空間為10.0.2.0/24,主機ip為10.0.2.2供虛擬機訪問。可以ssh到主機(10.0.2.2),用scp來拷貝文件。
第二,橋接模式
這種模式允許虛擬機就像一台獨立的主機一樣擁有網路。這種模式需要網卡支持,一般的有線網卡都支持,絕大部分的無線網卡都不支持
1.配置host
橋接就是把一台機器上的若干個網路介面「連接」起來。其結果是,其中一個網口收到的報文會被復制給其他網口並發送出去。以使得網口之間的報文能夠互相轉發。
目的:使得區域網內可以通過ssh登陸虛擬機
1.1首先,安裝兩個配置網路所需軟體包:
apt-get install bridge-utils # 虛擬網橋工具
apt-get install uml-utilities # UML(User-mode linux)工具
1.2創建網橋,並添加埠,如下顯示的是/etc/network/interface配置文件下的設置
[plain]view plain
source/etc/network/interfaces.d/*
#Theloopbacknetworkinterface
autolo
ifaceloinetloopback
#以下是之前未添加網橋時的配置
#Theprimarynetworkinterface
#autoenp3s0
#ifaceenp3s0inetstatic
#address192.168.66.149
#netmask255.255.255.0
#network192.168.66.0
#broadcast192.168.66.255
#gateway192.168.66.1
#dns-nameservers114.114.114.114
#dns-searchfoolsky
#添加網橋br0
autobr0
ifacebr0inetstatic#之前上網時採用靜態IP,所以這里依然使用此
address192.168.66.149#將之前上網的ip地址分配給網橋。
network192.168.66.0
netmask255.255.255.0
broadcast192.168.66.255
gateway192.168.66.1
bridge_portsenp3s0tap0#為網橋添加兩個介面,分別是enp3s0(之前默認的上網網口)和tap0
bridge_stpoff
bridge_fd0
bridge_maxwait0
dns-nameservers114.114.114.114
#添加介面enp3s0,上網方式採用自動
autoenp3s0
ifaceeth0inetmanual
此時,查看當前網路配置:注意:enp3s0是未分配ip的。
1.3使用brctl配置網橋:
tunctl -t tap0 -u 用戶名 # 創建一個tap0介面,只允許指定用戶訪問
brctl addif br0 tap0 # 在虛擬網橋中增加一個tap0介面
ifconfig tap0 0.0.0.0 promisc up # 打開tap0介面
brctl showstp br0 br0網橋顯示如下:
1.4修改/etc/qemu-ifup虛擬機的啟動腳本,替換成如下內容:
[plain]view plain
#!/bin/bash
switch=br0
if[-n"$1"];then
iplinkset$1up
sleep1
brctladdif${switch}$1
exit0
else
echo「Error:nointerfacespecified」
exit1
fi
1.5使用如下命令行啟動qemu虛擬機
sudoqemu-system-x86_64-enable-kvm-bootc-drivefile=/usr/local/ubuntu.img,if=virtio-m1024-smp2-netdevtype=tap,script=/etc/qemu-ifup,downscript=no,id=net0-devicevirtio-net-pci,netdev=net0,mac=00:11:22:33:44:AB-vnc:1-daemonize
file:指定鏡像位置
script:指向啟動腳本的位置。
-daemonize:使得改啟動命令 不在阻塞,執行完該命令後依然可以執行其他命令。
mac:為虛擬機的默認網卡分配指定的虛擬mac地址,可自行設定(MACADDR可以指定一個mac地址,但要注意,第一個位元組必須為偶數,如00,52等,不能為奇數(01),否則會有不可預料的問題。因為奇數保留為多播使用。)
2.配置虛擬機內操作系統的網路
此時,我們依然需要通過TigerVNC進入虛擬機已安裝的操作系統,進入後,修改/etc/network/interfaces如下:
[plain]view plain
#interfaces(5)fileusedbyifup(8)andifdown(8)
autolo
ifaceloinetloopback
autoenp0s3
#以下內容是新加入的,之前並未為enp0s3分配ip以及上網方式。
ifaceenp0s3inetstatic
address192.168.66.155#設置該ip與網橋同一網段,下邊的內容相同即可。
netmask255.255.255.0
network192.168.66.0
gateway192.168.66.1
brodcast192.168.66.255
dns-nameservers114.114.114.114
bridge_fd9
bridge_hello2
bridge_maxage12
bridge_stpoff
之後重啟虛擬機中操作系統,即可在區域網內通過ssh連接qemu中的操作系統。
C. 如何在windows下搭建qemu
qemu是一款虛擬化軟體。使用者需要有一定命令行基礎,或直接下載qemu manger
qemu的一大缺點就是不能換軟盤、光碟
安裝Linux需要創建硬碟映像(別太小)和安裝光碟
只要你會使用它的命令行,就可以在qemu裡面像正常系統一樣的安裝.
D. 如何在Debian或Ubuntu上從命令行使用KVM
眼下有幾種不同的方法可以管理在KVM虛擬機管理程序上運行的虛擬機。比如說,virt-manager就是一種廣受歡迎的基於圖形用戶界面(GUI)的前端工具,可用來管理虛擬機。不過,如果你想在無外設伺服器上使用KVM,那麼基於GUI的解決方案並非理想方案。這時候,virsh就派得上用場。virsh是一種命令行工具,可用於管理來賓虛擬機(guest
VM)。就其底層而言,virsh依賴libvirtd服務,該服務可以控制幾種不同的虛擬機管理程序,其中包括KVM、Xen、QEMU、LXC和OpenVZ。
如果你想讓虛擬機的配置和管理實現自動化,virsh等命令行管理界面也大有用處。此外,virsh支持多種虛擬機管理程序,這就意味著你可以通過同一個virsh界面,管理不同的虛擬機管理程序。
我在本教程中將演示如何在Debian或Ubuntu上使用virsh,從命令行運行KVM。
第一步:證實主機支持硬體虛擬化
作為第一步,證實主機的處理器配備硬體虛擬化擴展機制(比如英特爾VT或AMD-V),KVM需要這樣的機制。下面這個命令就能證實一點。
$
egrep '(vmx|svm)' --color /proc/cpuinfo flags : fpu vme de
pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts
mmx fxsr sse sse2
ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts nopl
xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3
cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand
hypervisor lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi
ept vpid fsgsbase smep
如果輸出結果並不含有vmx或svm標記,這意味著主機的處理器沒有支持硬體虛擬化的功能。因而,你就無法在主機上使用KVM。證實了主機處理器隨帶vmx或svm後,接下來繼續安裝KVM。
第二步:安裝KVM
使用apt-get,安裝KVM及相關的用戶空間工具。
$ sudo apt-get install qemu-kvm libvirt-bin
下一步,將你的用戶ID添加到libvirt群組,那樣你就能以非root普通用戶的身份,管理虛擬機了。作為上面安裝KVM的一部分,必須創建libvirt群組。
$ sudo adser [youruserID] libvirt
重新裝入更新後的群組成員信息,如下所示。看到要求輸入密碼的提示後,輸入你的登錄密碼。
$ exec su -l $USER
這時候,你應該能夠以普通用戶的身份運行virsh了。為了測試一下,不妨試一試下面這個命令,它會列出可用的虛擬機(目前沒有一個虛擬機)。要是你沒有遇到許可權錯誤,這意味著到目前為止,一切正常。
$ virsh --connect qemu:///system list Id Name State
E. 如何用命令行創建android模擬器
Android模擬器被命名為goldfish,用來模擬包括下面一些功能的ARM SoC:
* ARM926ej-S CPU
* Thumb support
* MMC
* RTC
* Keyboard
* USB Gadget
* Framebuffer
* TTY driver
* NAND FLASH
Android模擬器所對應的源代碼主要在external/qemu目錄下。如果你想將Android移植到其他設備上,熟悉它目前所針對的模擬器環境可以提供一些參考。
對於應用程序的開發者,模擬器提供了很多開發和測試時的便利。無論在Windows下還是Linux下,Android模擬器都可以順利運行,並且Google提供了Eclipse插件,可將模擬器集成到Eclipse的IDE環境。當然,你也可以從命令行啟動Android模擬器。
這款模擬器功能非常齊全,電話本、通話等功能都可正常使用(當然你沒辦法真的從這里打電話)。甚至其內置的瀏覽器和Google Maps都可以聯網。用戶可以使用鍵盤輸入,滑鼠點擊模擬器按鍵輸入,甚至還可以使用滑鼠點擊、拖動屏幕進行操縱。
當然模擬器畢竟是模擬器,和真實的機子還是存在差別的,
* 不支持呼叫和接聽實際來電;但可以通過控制台模擬電話呼叫(呼入和呼出不支持USB連接
F. linux 純命令行模式 創建虛擬機
KVM就夠了。
virt-install --name centos --ram 1024 --vcpus=1 --disk path=/home/3158cdn/images/node92.img,size=100 --network network:default --os-variant=rhel6 -l http://tel.mirrors.163.com/centos/6/os/x86_64/ --extra-args='console=tty0 console=ttyS0,115200n8'
安裝完成後,virtsh console centos
剩下的象操作實體機一樣
另外
--name 名字 -ram 內存大小 --vcpus 虛擬CPU --disk 虛擬硬碟選項 --network 網路接入模式
--os-variant=系統類型,這個也可以先成default -l 安裝源,這里採用了網路安裝源,
--extra-args='console=tty0 console=ttyS0,115200n8' 比較重要,沒它,你安完了無法console
如果想安完了,就自動連入,可以再加上--connect qemu:///system
G. 如何在linux上使用qemu執行鏡像文件
1. 編譯kernel
mkdir -p ~/misc/qemu
cd ~/misc/qemu
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.7.tar.bz2
tar xvfj linux-3.3.7.tar.bz2
cd linux-3.3.7
make defconfig
make
cp arch/x86/boot/bzImage ..
2. 製作根文件系統
cd ~/misc/qemu
dd if=/dev/zero of=rootfs.img bs=1M count=10
mkfs.ext3 rootfs.img
mkdir rootfs
sudo mount -t ext3 -o loop rootfs.img rootfs
cd rootfs
mkdir dev proc sys
3. 編譯busybox
cd ~/misc/qemu
wget http://busybox.net/downloads/busybox-1.20.1.tar.bz2
tar xvfj busybox-1.20.1.tar.bz2
cd busybox-1.20.1
make defconfig
make menuconfig
(將busybox編譯為靜態連接方式)
- Busybox Settings
- Build options
- Build Busybox as a static binary
make
make install CONFIG_PREFIX=~/misc/qemu/rootfs
cd ~/misc/qemu
sudo umount rootfs
4. 運行
圖形界面下:
qemu -kernel bzImage -hda rootfs.img -append "root=/dev/sda init=/bin/ash"
命令行界面:
qemu -kernel bzImage -hda rootfs.img -append "root=/dev/sda init=/bin/ash" -curses
通過vnc運行:
qemu -kernel bzImage -hda rootfs.img -append "root=/dev/sda init=/linuxrc" -curses -vnc 192.168.1.237:1
上面192.168.1.237為本機的一個IP地址。在另外一台機器上運行vnc client,填入192.168.1.237:1,即可通過vnc連接到linux系統
改進1:mount /proc和/sys,以及創建/dev/下的設備節點
啟動後,/dev下無設備文件,而且/proc, /sys都沒有mount上,導致有些命令無法運行(如top)。為了解決這個問題,可以修改啟動腳本/linuxrc為:
#!/bin/ash
/bin/mount -t proc proc /proc
/bin/mount -t sysfs sysfs /sys
/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
/bin/ash
然後chmod a+x /linuxrc,umount後再執行
qemu -kernel bzImage -hda rootfs.img -append "root=/dev/sda init=/linuxrc"
有關mdev的介紹和使用可以參考:
http://hi..com/kebey2004/blog/item/3692f6079b8e9dda7a894721.html
改進2:編一個最小kernel
make allnoconfig
make menuconfig
選擇:
- Executable file formats / Emulations
- 選擇Kernel support for ELF binaries
- Device Drivers
- 選擇ATA/ATAPI/MFM/RLL support
- 選擇generic/default IDE chipset support
- File systems
- 選擇Ext3 journalling file system support
make
qemu -kernel linux-3.3.7/arch/x86/boot/bzImage -hda rootfs.img -append "root=/dev/hda init=/linuxrc" -curses
H. 請問QEMU虛擬機怎麼樣設置可以上網
用Qemu Manager我不會,但是直接用命令行是增加 -net nic -net user 就可以了。
I. 如何用adb連接android手機
(1)首先先用usb線連接android手機,然後輸入指令:adb tcpip,埠號默認為5555。
(9)命令行版qemu手機擴展閱讀
adb是androidsdk里的一個工具, 用這個工具可以直接操作管理android模擬器或者真實的andriod設備(如G1手機). 它的主要功能有:
1、運行設備的shell(命令行)。
2、管理模擬器或設備的埠映射。
3、計算機和設備之間上傳/下載文件。
3、將本地apk軟體安裝至模擬器或android設備
ADB是一個客戶端-伺服器端 程序, 其中客戶端是你用來操作的電腦, 伺服器端是android設備。而ADB驅動就是電腦與android設備的通信的客戶端驅動程序。
J. windows系統下能使用qemu嘛為什麼我在命令行輸入命令顯示沒有這個命令
貌似沒有這個命令吧 你i是想做什麼