在Android模拟器中使用虚拟SD卡设备
开发环境:Windows XP professional sp2,Eclipse 3.6.2,JDK 1.6.0_26,Android 2.3.3,andengine 2D OpenGL GameEngine。
1、首先创建虚拟SD卡设备:
使用命令mksdcard在磁盘上虚拟一个SD卡设备:
mksdcard: create a blank FAT32 image to be used with the Android emulator
usage: mksdcard [-l label] <size> <file>
if <size> is a simple integer, it specifies a size in bytes
if <size> is an integer followed by 'K', it specifies a size in KiB
if <size> is an integer followed by 'M', it specifies a size in MiB
if <size> is an integer followed by 'G', it specifies a size in GiB
Minimum size is 9M. The Android emulator cannot use smaller images.
Maximum size is -512 bytes, 255K, 1073741823M or 0G
命令如下:mksdcard 200M F:\android_develop\sdcard.img (虚拟SD卡的大小及路径可以自行设定)
2、将虚拟SD卡设备与模拟器进行关联,使得模拟器能够使用该SD卡设备:
方法一:使用emulator命令来启动模拟器,并告知模拟器SD卡设备的位置,
emulator -avd first_avd -sdcard F:\android_develop\sdcard.img
方法二:使用ADT来为模拟器关联SD卡设备:
打开AVD Manager,编辑选中的Android Virtual Device,添加SD Card的镜像文件路径:
添加硬件设备的支持:
至此,关联过程已完成。
3、为使用SD卡设备的应用程序添加写权限:
在应用程序的AndroidManifest.xml文件中,添加以下代码:
<!-- 添加对SDCARD的写权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>
至此,用户可以在应用程序中对SD卡设备进行读写操作了。
下面是在应用程序外部访问虚拟SD卡设备:
1、通过adb push/pull命令,将本地文件上传到SD卡设备的指定目录下,
adb push <local> <remote> - copy file/dir to device
adb pull <remote> [<local>] - copy file/dir from device
使用adb shell 命令以root用户的身份进入模拟器的根目录;
#cd sdcard 进入SD卡设备;
#ls 查看SD卡设备中的内容;
#rm file_name 删除文件;
#rm -r dir_name 删除目录;
跟linux命令方式是一样的。
2、通过Eclipse开发环境下的Window->open perspective->DDMS->File Explorer来查看SD卡中的信息,并能够实现上传本地文件到SD卡,从SD卡中导出文件以及创建目录,删除指定的文件等操作。
3、通过使用模拟器->主菜单->Dev Tools->Media Scanner来查看模拟器所关联的SD卡设备中的信息,等Scan finished之后,可以在主菜单->Music中找到音乐文件,在主菜单->Gallery中找到图片文件,并且可以直接在模拟器中打开。