- 浏览: 648744 次
- 性别:
- 来自: 广州
文章分类
最新评论
本文为原创,如需转载,请注明作者和出处,谢谢!
Android模拟器或真机都会有一定大小的内部存储空间(不是指内存,指的是持久化存储空间),但这并不够,有时我们需要更大的存储空间。为了在模拟器上开发使用扩展存储空间的程序,需要在PC上模拟一个SDCard的虚拟文件,然后加载到模拟器中。sdcard文件使用tools目录下的mksdcard.exe命令生成,假设要生成大小256M的sdcard文件,可以使用如下的命令:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><!--[if !mso]> <style> st1":*{behavior:url(#ieooui) } </style> <![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:""@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ @page {} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]-->
使用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模拟器:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:""@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ @page {} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]-->如果在开发环境(Eclipse)中,可以在Run Configuration对话框中设置启动参数,如图1所示。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:""@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ @page {} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]-->
当然,也可以在Preferences对话框中设置默认启动参数。如图2所示。这样在新建立的Android工程中就自动加入了装载sdcard虚拟文件的命令行参数。
如果读者使用OPhone虚拟机,设置的方法是完全一样的。然后在虚拟机中的Setting里看看sdcard,是否找到,如图2所示。
那么如何查看sdcard虚拟设备中的内容呢?方法很多,最简单的就是使用android
eclipse插件带的DDMS透视图。如图4所示。
右上角的几个按钮可以删除、添加文件。
如果不使用DDMS插件,或不在eclipse里工作,也可以使用其他工具来操作sdcard虚拟设备。如在windows下,可以使用mtools,该软件可以从如下地址下载:
http://files.cnblogs.com/nokiaguy/winima81.rar
安装完后,用mtools打开mycard.img,就会看到相应的目录和文件。如图5所示。
如果读者使用的是linux,可以使用mount命令来将sdcard虚拟文件映射成linux的目录。先使用下面的命令:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:""@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ @page {} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]-->
执行上面的命令后,将会输出如下的错误:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 </xml><![endif]--><!--[if gte mso 9]><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1;} @font-face {font-family:""@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman";} /* Page Definitions */ @page {} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable { mso-style-parent:""; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} </style> <![endif]-->
出现上面错误的原因是由于img文件的开头包含了mbr,以致于mount命令无法识别,当然,如果跳过这个就可以了。我们可以执行下面的命令看看应该跳过多少个字节:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles deflockedstate="false" latentstylecount="156"> </w:LatentStyles> </xml><![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--> 输出的内容见图6。
找到一个start的值,本例是129,然后找到Units的值,是512
512 * 129 = 66048
Ok,就用下面的命令:
执行完上面的命令后,进入/mnt/card目录,就会看到mycard.img中的文件了。
如果想在android虚拟机中访问sdcard中的文件,首先要获得sdcard的路径。代码如下:
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
相关推荐
Android OPhone是基于Android操作系统为中国移动定制的一款智能手机平台,它在Android的基础上进行了深度定制和优化,以更好地适应中国移动的网络和服务。源码是软件开发的核心,对于理解系统工作原理、进行二次开发...
在本压缩包“android ophone开发完全讲义源码ch13”中,我们主要探讨的是Android OPhone平台的开发技术,特别是在第十三章的相关内容。Android OPhone是中国移动推出的一个基于Android系统的定制版本,它在原生...
3. **开发环境搭建**:书中会详细介绍如何安装和配置Android SDK,包括设置AVD(Android Virtual Device)以进行模拟器测试,以及Eclipse或Android Studio等集成开发环境的使用。 4. **Java编程基础**:Android应用...
- **第20章 蓝牙**:教授如何在Android应用中使用蓝牙技术。 4. **OPhone篇**:聚焦OPhone平台的独特技术。 - **第21章 OPhone入门**:介绍OPhone的基本概念和技术特点。 - **第22章 OPhone的API扩展**:探讨...
6. **调试和测试**:在Ophone开发过程中,学会使用Ophone模拟器或真机进行调试是非常重要的。了解如何设置和使用这些工具,可以有效提高开发效率。 7. **服务集成**:Ophone可能预装了中国移动的一些特色服务,如...
10. **调试与测试**:在Android OPhone开发中,调试和测试是不可或缺的环节。开发者应熟悉使用adb工具进行日志查看、设备管理,以及如何编写单元测试和集成测试来确保代码质量。 通过本章节的学习,开发者不仅能...
开发者可以使用Android Studio这一集成开发环境(IDE)进行应用开发,它提供了丰富的工具集,包括代码编辑器、调试器和模拟器等,方便开发者进行快速原型设计和测试。 在本讲义的“CH06”章节中,很可能是关于...
在这一章节中,开发者将了解到如何利用Android SDK和Ophone特有的功能来构建高效、功能丰富的应用程序。这份资料是针对那些希望在OPhone平台上进行应用开发的专业人士或爱好者,它提供了实践性的指导和实例,有助于...
7. **权限管理**:了解Android Ophone的权限模型,如何在manifest文件中声明和处理权限请求。 8. **数据存储**:熟悉SQLite数据库的使用,以及如何利用SharedPreferences和ContentProvider进行数据持久化。 9. **...
开发者可能在此章节学习如何设置和管理应用权限,以及如何在Android OPhone中实现更严格的权限控制策略。 2. **ch16**:可能涉及到了Android的UI设计和用户界面框架。Android使用XML来定义界面布局,Activity和...
9. **调试与测试**:学习源码时,开发者可以掌握如何在OPhone模拟器或真机上进行调试和测试,确保应用在OPhone平台上的正常运行。 10. **打包与发布流程**:OPhone应用的打包和发布可能与标准Android应用不同,源码...
在Android Ophone开发中,了解和掌握这一章节的知识点至关重要,因为它们涉及到Android系统在OMS(Open Mobile System,中国移动的Android定制版本)上的特性和应用开发技巧。 Android Ophone是基于Android操作系统...
在Android和Ophone开发领域,源码是学习与探索系统工作原理、优化应用性能以及创新技术实践的关键资源。这份"Android/Ophone开发完全讲义源码"为开发者提供了丰富的学习材料,涵盖了Android和Ophone平台的基础到高级...
- 在模拟器配置文件中,通过参数`-sdcard d:/sdcard/sdcard.iso`指定SD卡的路径。 5. **导入必要的JAR文件**: - `oms.jar`位于`OPhoneSDK_1.5\platforms\android-1.5`目录下。 - `android.jar`同样位于`OPhone...
9. **调试与测试**:在Ch05中,开发者会学习如何使用Eclipse或Android Studio的调试工具,以及如何编写测试用例来验证应用的功能和性能。 10. **打包与发布**:最后,本章可能会讲解如何打包APK文件,签名和发布...
10. **调试和测试**:理解和使用OPhone的模拟器或真机进行调试,以及如何进行性能测试和兼容性测试。 通过深入研究这份源码,开发者不仅可以增强对Android OPhone开发的理解,还能提升自己的编程技能,为创建更加...
《Android/OPhone开发完全讲义》是一本深入探讨Android和OPhone开发的综合性教材,主要针对想要在Android平台上进行应用程序开发的工程师和技术爱好者。这本书不仅涵盖了Android的基础知识,还涉及了OPhone这一中国...
4. **用户界面设计**:Android Ophone中的UI设计原则和组件使用,包括布局管理器、控件的自定义以及与触摸屏交互的处理。 5. **服务与广播接收器**:学习如何创建和管理后台服务,以及如何利用广播接收器监听系统...
在Android Ophone中,应用程序由四大组件构成:Activity(活动)、Service(服务)、BroadcastReceiver(广播接收器)和ContentProvider(内容提供者)。Activity是用户界面的入口,Service在后台运行,...