winfredng 发表于 2013-2-7 09:41:17

Android 开发实录 (二) SD 卡 传输内容

Android 开发实录
 
做个传送门到 实录一 [http://winfredng.iteye.com/blog/552299]
 
广告下,Ubuntu 910 真它祖母的好用.http://www.agoit.com/images/smiles/icon_wink.gif
 
PS: 我很懒,我也不喜欢排版,将就看吧。我尽量简单通俗,BTW 这个不是教程,所以会有不少的错漏,如果有问题可以mail我或msn找我。QQ Ubuntu 下我还没什么好的IM。图片我都会保持原大小,每张都可以去我的相册看。
 
国外#Android-dev组的那帮大爷我问的问题都没人有回应,希望以后会好转。http://www.agoit.com/images/smiles/icon_twisted.gif
 
mail和msn: fred(at)dmiffy.com
 
实录二主要包含如何从系统传输内容到Android中,据我所知有好几种方法。
 
无论怎么样都要先有一个SDCard影像,就先创建一个SDCard影像吧。(中英文切换好麻烦,以后叫SDChttp://www.agoit.com/images/smiles/icon_idea.gif)
 
根据官方的DEV Guide所说,mksdcard一个专用于创建SDC的命令行工具。就先用它吧。

这就是mksdcard的例子了,很简单嘛。
 
mksdcard [-l -label] <size> <file>  
mksdcard的参数说明:
 
-l 一个SDC的volume卷标名,有格式化过磁盘、硬盘分区、USB闪存的经验都会觉得它很熟悉。一般不怎么在意这个,(一边凉快去吧)。
 
<size> 要创建SDC的容量,有两种计量单位K或M (1M = 1024K) 大家自己算,喜欢多少,一般我设2G(2048M).
 
<file> SDC 的名称,一般不推荐空格或任何特殊符号,如果真喜欢也可以用,记得转义就可以了。
 
我的SDK放在用户目录下的Project/android/sdk/下,自己根据自己的实际情况输入,别闷头复制。
因为我还没Android的项目文件夹,我打算将SDC放到~/Project/android/SDCard下。还是那句,别闷头复制。
先进入~/Project/android/下去创建一个叫SDCard的文件夹。
现在创建一个SDC,在命令行输入:
 
./sdk/tools/mksdcard 2048M ./SDCard/sdc1.img  
 
执行这个操作具体所需时间根据机器能力和SDC影像大小而定。我1分钟就OK了。
 
http://www.agoit.com/upload/picture/pic/51437/c9752654-a5be-35e3-a9bf-acf0271181a2.png
 
现在SDC影像已经有了,可以往里面写点内容进去了。
因为我的系统是Linux,可以很方便的Mount一个SDC影像文件到OS的文件系统中,我们先从简单入手。http://www.agoit.com/images/smiles/icon_evil.gif
要将SDC影像挂载到文件系统中,先得给它找个合适的位置,就挂载到SDCard下的card文件夹吧。
还是在~/Project/android的位置下输入: mkdir ./SDCard/card 然后回车,创建card文件夹。
然后:
 
sudo mount -o loop ./SDCard/sdc1.img ./SDCard/card 然后回车,至于Linux下如何mount自己去Google吧。
 
http://www.agoit.com/upload/picture/pic/51439/780855e6-adc4-3eee-b2ae-35dde10a3867.png
 
现在SDC影像已经挂载到系统的OS文件夹中了,看起来就像一个普通的文件夹。
它的位置是:~/Project/android/SDCard/card。 大家根据自己的环境来做。
 
注意:在我的实录里发生了这样的情况,当我mount一个SDC影像到文件系统之后,再运行模拟器这个影像文件会发生一些很奇怪的读写权限问题,具体原因我还没弄清楚。以后找到解决方法会再另行说明。现在就先按照mount影像后存好文件到想要的位置之后unmount这个影像再运行模拟器。http://www.agoit.com/images/smiles/icon_cool.gif奇怪~~~~
 
然后随便Copy一张图片进去吧,尽量不要用Gnome的文件管理器做这个,因为这该死的东西就像Windows那样会留下一个图片缓存的文件夹(虽然可以通过改变设置来避免),我们还是命令行吧,记得用sudo, 如果是你在root下做这个实验就可以免了sudo。http://www.agoit.com/images/smiles/icon_biggrin.gif
 
Copy完图片到SDC影像后就需要做个umount了,理由见上面红色字部分。
 
位置还是在~/Project/android下,输入:
 
sudo umount ./SDCard/card  
http://dl.iteye.com/upload/picture/pic/51441/6d94e537-6ebf-303f-b45f-bc946eaf3abd.png
 
现在我们有了一个包含我们Copy过去的图片的SDC影像了。怎么查看它呢?
 
这时就需要到请到模拟器出动了,(激动人心哈http://www.agoit.com/images/smiles/icon_evil.gif,很多人都为了见Android一面而在奋斗呢)
 
慢~~~在启动Android前我们需要创建一个AVD(虚拟设备)
又来根据Androd官方的DEV Guide的描述,创建一个AVD就需要使用android这个工具
这个工具有很多参数,就不一一说明,做个传送门[http://developer.android.com/guide/developing/tools/othertools.html#android]
或用android --help自己看说明。
 
现在来创建AVD,~/Project/android下输入:
 
./sdk/tools/android create avd -n testavd1 -t 6 http://www.agoit.com/upload/picture/pic/51451/bd2aef01-c117-3577-974a-05e086f088d8.png
 
create avd -n testavd1 是表示创建一个名字叫testavd1的AVD
-t 6 是表示使用android sdk 2.0.1来作为目标系统。(可以通过输入: android list target来查看有多少target)
 
AVD会被保存在用户目录下的.android/avd下,win用户会是一个.android的隐藏目录。
 
现在AVD已经创建了,可以开始用模拟器加载了,
~/Project/android下输入:
 
./sdk/tools/emulator -avd testavd1 -sdcard ./SDCard/sdc1.img http://www.agoit.com/upload/picture/pic/51449/17f9ad04-9ffb-36a1-9ade-7e41745235d4.png
 
第一次加载AVD速度有点慢,以后会好很多。(这里我遇到过一次emulator不能成功加载AVD的情况,关掉模拟器再来一次就好)
 
终于见到梦寐以求的Android的界面了,基本操作跟真机没有差别,只是鼠标代替了手指,该“点击”的还是点击。
 
http://dl.iteye.com/upload/picture/pic/51443/c4e25acb-7ef6-3a80-9322-3a8343f350e7.png
 
拖动屏幕底下的滑动标签,将它拖拉到屏幕上方部分,就会展开这个AVD所包含的一部分应用
 
http://dl.iteye.com/upload/picture/pic/51445/77cfed32-d5bb-348e-bc14-dce9714f495d.png
点击Gallery程序,就会看到我们之前Copy进去的图片(什么你Copy的不是图片?http://www.agoit.com/images/smiles/icon_cool.gif 那请根据你Copy进去的东西的类型来决定使用那个软件来查看)。
http://dl.iteye.com/upload/picture/pic/51447/296cbd32-49a9-30fb-a213-54d43d8b39c9.png
 
之后的操作就和实际机器操作没啥区别了。
 
下一节会涉及其它方法如何存放文件到SDCard中。
页: [1]
查看完整版本: Android 开发实录 (二) SD 卡 传输内容