為了學習使用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了,