在Android(OPhone)模拟器中加载和使用SDCard卡
2009-11-18 09:57
477 查看
Android模拟器或真机都会有一定大小的内部存储空间(不是指内存,指的是持久化存储空间),但这并不够,有时我们需要更大的存储空间。为了在模拟器上开发使用扩展存储空间的程序,需要在PC上模拟一个SDCard的虚拟文件,然后加载到模拟器中。sdcard文件使用tools目录下的mksdcard.exe命令生成,假设要生成大小256M的sdcard文件,可以使用如下的命令:
mksdcard -l mycard 256M card/mycard.img
使用mksdcard命令要注意如下六点:
1. mycard命令可以使用三种尺寸:字节、K和M。如果只使用数字,表示字节。后面还可以跟K,如262144K,也表示256M。
2. mycard建立的虚拟文件最小为8M,也就是说,模拟器只支持大于8M的虚拟文件。
3. -l命令行参数表示虚拟磁盘的卷标,可以没有该参数。
4. 虚拟文件的扩展名可以是任意的,如mycard.abc。
5. mksdcard命令不会自动建立不存在的目录,因此,在执行上面命令之前,要先在当前目录中建立一个card目录。
6. mksdcard命令是按实际大小生成的sdcard虚拟文件。也就是说,生成256M的虚拟文件的尺寸就是256M,如果生成较大的虚拟文件,要看看自己的硬盘空间够不够哦!
在执行完上面的命令后,执行下面的命令启动android模拟器:
emulator -avd avd1 -sdcard card/mycard.img
如果在开发环境(Eclipse)中,可以在Run Configuration对话框中设置启动参数,如图1所示。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard1.jpg)
图1
当然,也可以在Preferences对话框中设置默认启动参数。如图2所示。这样在新建立的Android工程中就自动加入了装载sdcard虚拟文件的命令行参数。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard2.jpg)
图2
如果读者使用OPhone虚拟机,设置的方法是完全一样的。然后在虚拟机中的Setting里看看sdcard,是否找到,如图2所示。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard3.jpg)
图3
那么如何查看sdcard虚拟设备中的内容呢?方法很多,最简单的就是使用android eclipse插件带的DDMS透视图。如图4所示。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard4.jpg)
图4
右上角的几个按钮可以删除、添加文件。
如果不使用DDMS插件,或不在eclipse里工作,也可以使用其他工具来操作sdcard虚拟设备。如在windows下,可以使用mtools,该软件可以从如下地址下载:
http://files.cnblogs.com/nokiaguy/winima81.rar
安装完后,用mtools打开mycard.img,就会看到相应的目录和文件。如图5所示。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard5.jpg)
图5
如果读者使用的是linux,可以使用mount命令来将sdcard虚拟文件映射成linux的目录。先使用下面的命令:
mount -o loop mycard.img /mnt/card
执行上面的命令后,将会输出如下的错误:
mount::you must specify the filesystem type
出现上面错误的原因是由于img文件的开头包含了mbr,以致于mount命令无法识别,当然,如果跳过这个就可以了。我们可以执行下面的命令看看应该跳过多少个字节:
fdisk -ul mycard.img
输出的内容见图6。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard6.jpg)
图6
找到一个start的值,本例是129,然后找到Units的值,是512
512 * 129 = 66048
Ok,就用下面的命令:
mount -o loop,offset=66048 mycard.img /mnt/card
执行完上面的命令后,进入/mnt/card目录,就会看到mycard.img中的文件了。
如果想在android虚拟机中访问sdcard中的文件,首先要获得sdcard的路径。代码如下:
java.io.File sdcardDir = android.os.Environment.getExternalStorageDirectory();
sdcard的目录一般为“/sdcard”。
转载于ITPUB的个人空间:http://space.itpub.net/12921506/viewspace-610684
mksdcard -l mycard 256M card/mycard.img
使用mksdcard命令要注意如下六点:
1. mycard命令可以使用三种尺寸:字节、K和M。如果只使用数字,表示字节。后面还可以跟K,如262144K,也表示256M。
2. mycard建立的虚拟文件最小为8M,也就是说,模拟器只支持大于8M的虚拟文件。
3. -l命令行参数表示虚拟磁盘的卷标,可以没有该参数。
4. 虚拟文件的扩展名可以是任意的,如mycard.abc。
5. mksdcard命令不会自动建立不存在的目录,因此,在执行上面命令之前,要先在当前目录中建立一个card目录。
6. mksdcard命令是按实际大小生成的sdcard虚拟文件。也就是说,生成256M的虚拟文件的尺寸就是256M,如果生成较大的虚拟文件,要看看自己的硬盘空间够不够哦!
在执行完上面的命令后,执行下面的命令启动android模拟器:
emulator -avd avd1 -sdcard card/mycard.img
如果在开发环境(Eclipse)中,可以在Run Configuration对话框中设置启动参数,如图1所示。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard1.jpg)
图1
当然,也可以在Preferences对话框中设置默认启动参数。如图2所示。这样在新建立的Android工程中就自动加入了装载sdcard虚拟文件的命令行参数。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard2.jpg)
图2
如果读者使用OPhone虚拟机,设置的方法是完全一样的。然后在虚拟机中的Setting里看看sdcard,是否找到,如图2所示。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard3.jpg)
图3
那么如何查看sdcard虚拟设备中的内容呢?方法很多,最简单的就是使用android eclipse插件带的DDMS透视图。如图4所示。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard4.jpg)
图4
右上角的几个按钮可以删除、添加文件。
如果不使用DDMS插件,或不在eclipse里工作,也可以使用其他工具来操作sdcard虚拟设备。如在windows下,可以使用mtools,该软件可以从如下地址下载:
http://files.cnblogs.com/nokiaguy/winima81.rar
安装完后,用mtools打开mycard.img,就会看到相应的目录和文件。如图5所示。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard5.jpg)
图5
如果读者使用的是linux,可以使用mount命令来将sdcard虚拟文件映射成linux的目录。先使用下面的命令:
mount -o loop mycard.img /mnt/card
执行上面的命令后,将会输出如下的错误:
mount::you must specify the filesystem type
出现上面错误的原因是由于img文件的开头包含了mbr,以致于mount命令无法识别,当然,如果跳过这个就可以了。我们可以执行下面的命令看看应该跳过多少个字节:
fdisk -ul mycard.img
输出的内容见图6。
![](http://www.blogjava.net/images/blogjava_net/nokiaguy/sdcard6.jpg)
图6
找到一个start的值,本例是129,然后找到Units的值,是512
512 * 129 = 66048
Ok,就用下面的命令:
mount -o loop,offset=66048 mycard.img /mnt/card
执行完上面的命令后,进入/mnt/card目录,就会看到mycard.img中的文件了。
如果想在android虚拟机中访问sdcard中的文件,首先要获得sdcard的路径。代码如下:
java.io.File sdcardDir = android.os.Environment.getExternalStorageDirectory();
sdcard的目录一般为“/sdcard”。
转载于ITPUB的个人空间:http://space.itpub.net/12921506/viewspace-610684
相关文章推荐
- 在Android(OPhone)模拟器中加载和使用SDCard卡
- 在Android(OPhone)模拟器中加载和使用SDCard卡
- 在Android(OPhone)模拟器中加载和使用SDCard卡
- 在Android(OPhone)模拟器中加载和使用SDCard卡
- 在Android(OPhone)模拟器中加载和使用SDCard卡(好!)
- 在Android(OPhone)模拟器中加载和使用SDCard卡 推荐
- Android模拟器中加载和使用SDCard卡
- Android Volley完全解析(二),使用Volley加载网络图片
- Android图片加载框架Picasso使用教程 (二)listviewh和gridview
- Android图片加载神器之Fresco,基于各种使用场景的讲解
- Android-Universal-Image-Loader 图片异步加载类库的使用
- Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
- Android Volley完全解析(二),使用Volley加载网络图片
- Android图片异步加载之Android-Universal-Image-Loader使用1
- Android starting 3---模拟器的使用
- Android 中网络图片加载(包括本地图片的加载) 框架 universal image loader 的简单使用
- Android列表组件ListView使用详解之动态加载或修改列表数据
- 55、Android网络图片 加载缓存处理库的使用
- Android使用PullToRefresh实现上拉加载和下拉刷新效果的代码
- android使用异步加载解决图片内存溢出问题