博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Android(OPhone)模拟器中加载和使用SDCard卡
阅读量:5924 次
发布时间:2019-06-19

本文共 1835 字,大约阅读时间需要 6 分钟。

 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
所示。
图1
    
当然,也可以在Preferences
对话框中设置默认启动参数。如图2所示。这样在新建立的Android
工程中就自动加入了装载sdcard
虚拟文件的命令行参数。
图2
    
如果读者使用
OPhone
虚拟机,设置的方法是完全一样的。然后在虚拟机中的
Setting
里看看
sdcard
,是否找到,如图
2
所示。
图3
    
那么如何查看
sdcard
虚拟设备中的内容呢?方法很多,最简单的就是使用
android eclipse
插件带的
DDMS
透视图。如图
4
所示。

图4
右上角的几个按钮可以删除、添加文件。
    
如果不使用DDMS
插件,或不在eclipse
里工作,也可以使用其他工具来操作sdcard
虚拟设备。如在windows
下,可以使用mtools
,该软件可以从如下地址下载:

    安装完后,用mtools
打开mycard.img
,就会看到相应的目录和文件。如图5
所示。
 
图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
图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”
 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214360
,如需转载请自行联系原作者
你可能感兴趣的文章
php5.3日常操作
查看>>
WPF自定义控件与样式(13)-自定义窗体Window & 自适应内容大小消息框MessageBox
查看>>
对话管理的一些思考
查看>>
基于.net开发chrome核心浏览器【三】
查看>>
ORA-00392 ORA-00312 日志正在清除故障
查看>>
03-创建模型操作---用户添加
查看>>
位运算
查看>>
正则表达式
查看>>
Spring源码导入MyEclipse
查看>>
java8新特性整理
查看>>
香港空间的确很坑,网站可用性只有72.37%
查看>>
25GE和50GE协议标准将繁荣市场
查看>>
5G时代渐行渐近 移动承载网络面临新挑战
查看>>
阿里云发布国内首个可视化GPU云服务
查看>>
解析避免黑客Anonymous攻击的七个方法
查看>>
NSA的Windows漏洞军火库泄漏:多个零日、利用工具可直接使用
查看>>
《C语言程序设计进阶教程》一2.5 习题
查看>>
Salesforce为Marketing Cloud带来Lightning UI
查看>>
国信灵通:企业移动化改变生活
查看>>
全球精英相聚第2届东京云计算大会,聚焦企业数字化转型
查看>>