在Android(OPhone)模拟器中加载和使用SDCard卡

简介:
 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 ,如需转载请自行联系原作者
相关文章
|
6月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
460 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
Java Android开发
Android面试题经典之Glide取消加载以及线程池优化
Glide通过生命周期管理在`onStop`时暂停请求,`onDestroy`时取消请求,减少资源浪费。在`EngineJob`和`DecodeJob`中使用`cancel`方法标记任务并中断数据获取。当网络请求被取消时,`HttpUrlFetcher`的`cancel`方法设置标志,之后的数据获取会返回`null`,中断加载流程。Glide还使用定制的线程池,如AnimationExecutor、diskCacheExecutor、sourceExecutor和newUnlimitedSourceExecutor,其中某些禁止网络访问,并根据CPU核心数动态调整线程数。
540 2
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
1794 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
网络协议 Shell 网络安全
解决两个 Android 模拟器之间无法网络通信的问题
让同一个 PC 上运行的两个 Android 模拟器之间能相互通信,出(qiong)差(ren)的智慧。
354 3
|
Android开发 UED
Android 中加载 Gif 动画
【10月更文挑战第20天】加载 Gif 动画是 Android 开发中的一项重要技能。通过使用第三方库或自定义实现,可以方便地在应用中展示生动的 Gif 动画。在实际应用中,需要根据具体情况进行合理选择和优化,以确保用户体验和性能的平衡。可以通过不断的实践和探索,进一步掌握在 Android 中加载 Gif 动画的技巧和方法,为开发高质量的 Android 应用提供支持。
|
存储 缓存 Java
Android项目架构设计问题之优化业务接口数据的加载效率如何解决
Android项目架构设计问题之优化业务接口数据的加载效率如何解决
180 0
|
Java Android开发 Kotlin
Android项目架构设计问题之要在Glide库中加载网络图片到ImageView如何解决
Android项目架构设计问题之要在Glide库中加载网络图片到ImageView如何解决
211 0
|
XML API 开发工具
Android Bitmap 加载与像素操作
Android Bitmap 加载与像素操作
190 2
|
开发工具 Android开发
解决夜神模拟器与Android studio自动断开的问题
解决夜神模拟器与Android studio自动断开的问题
762 1
|
存储 缓存 Java
android 加载图片oom若干方案小结
本文根据网上提供的一些技术方案加上自己实际开发中遇到的情况小结。 众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视手机而定)。一般我们可以通过获取当前线程的可运行内存来判断,比如系统分给当前运行内存只有16M,而你的图片就有16M,这肯定会oom的。 相关知识介绍 1.颜色模型 常见的颜色模型有RGB、YUV、
1605 0

热门文章

最新文章