天天看點

How to create and use SDCard image for Android emulator

為了學習使用Android新的元件,先得為Android emulator虛拟一個SD卡。下面就把我的實驗工作記錄一下(本實驗預設已經配置sdk目錄下tools到環境變量目錄中)。

1. 使用mksdcard指令建立一個SD卡鏡像(目前simulator支援8M~128G的SD卡。)

例如建立一個名為sdcard2.img的128M(M需大寫)SD卡鏡像到~/android/sdcard/下,可以這樣實作,

$ mksdcard 128M ~/android/sdcard/sdcard2.img

2. emulator挂載SD卡鏡像

emulator -avd Map1.5 -sdcard $SDCARD_LOC/sdcard2.img

這裡Map1.5是具有Google Map API 1.5 平台模拟器,同時為了友善我為SD卡鏡像配置了登入shell的環境變量,通過cat指令就可以檢視到

$ cat ~/.bashrc

# ~/.bashrc: executed by bash(1) for non-login shells.

# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)

# for examples

#Android SDCard Location variable

SDCARD_LOC=/home/benjamin/android/sdcard/

export PATH=$SDCARD_LOC:$PATH

這樣啟動模拟器後,模拟器就不會抱怨沒有SD卡了。

3. 向emulator的SD卡鏡像寫入資料

方法一:

在/mnt目錄下為SD卡建立一個挂載目錄,

$ mkdir -p /mnt/sdcard

以loop裝置方式将SD卡鏡像挂載到剛才建立的那個目錄下

$ sudo mount -o loop /home/benjamin/android/sdcard/sdcard.img /mnt/sdcard/

向SD卡鏡像拷入一首mp3備用,

$ sudo cp /home/benjamin/Music/I\ need\ to\ wake\ up-Melissa_Etheridge.mp3 /mnt/sdcard/

檢視一下,

$ ls -l /mnt/sdcard/

total 5009

-rwxr-xr-x 1 root root 5128320 2010-01-07 22:16 I need to wake up-Melissa_Etheridge.mp3

方法二(推薦):

先啟動模拟器并挂載SD Card

$ emulator -avd android15 -sdcard $SDCARD_LOC/sdcard.img

使用adb push 把要存儲到SD卡鏡像的檔案壓到模拟器SDCard的/sdcard目錄下

$ adb push ~/Music/I\ still\ believe.mp3 /sdcard

顯示:981 KB/s (5684529 bytes in 5.654s)表明傳輸成功。

可以通過登入adb shell進一步檢視詳情

$ adb shell

# ls -l /sdcard

----rw-rw- system   system    5128320 2010-01-07 14:26 I need to wake up-Melissa_Etheridge.mp3

----rw-rw- system   system    5684529 2009-08-14 09:35 I still believe.mp3

導入mp3後,如果要在模拟器中通路,還需要在模拟器中的Dev tools裡面scan一下媒體檔案,然後就先可以使用Android emulator自帶Music程式檢視傳入的mp3了,

How to create and use SDCard image for Android emulator