AndroidSDK开发范例完整版.docx
- 文档编号:24719161
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:68
- 大小:64.09KB
AndroidSDK开发范例完整版.docx
《AndroidSDK开发范例完整版.docx》由会员分享,可在线阅读,更多相关《AndroidSDK开发范例完整版.docx(68页珍藏版)》请在冰豆网上搜索。
AndroidSDK开发范例完整版
GoogleAndroidSDK开发范例大全
第二章:
Android初体验Android操作系统顶着Google与OpenHandsetAlliance的光环,让很多程序员在Android手机还没上市之前,就开始紧追着官方文档、EarlySDK版本更新,这是IT业界罕见的现象,因为大家都抱持着“不想输在起跑点上”的心态。
这也是手机发展的历史中,第一次有机会让所有的程序员站在同一个起跑点开始,无论是JavaWorld论坛、或是Google官方的DeveloperDiscussionGroup都见到相当热烈的讨论。
从这一章开始,将对Android的程序架构、程序进入点、编译以及执行,进行一系列的导航,而本书规划之初,并非针对Java初学者或从未接触过程序设计的朋友所设计,故在这一章简要的overview当中,则以快速掌握开发条件、开发环境为目的,若你是第一次接触Java程序语言,或从未写过面向对象程序设计,建议你先学习Java语言,打好基础后,再回过头来进入本章。
接下来的内容分成五个部分:
安装AndroidSDK、创建Android手机开发项目(Project)、了解Android程序的生命周期,初探可视化的开发工具,最后将应用程序部署到模拟器和Android手机上,为避免过于概念性的论述及篇幅的浪费,所有操作练习皆以步骤的方法描述,只要跟着操作即可上手,在体验完本章的内容之后,你就可以开始本书范例的学习之旅了。
在开始之前,你需要先准备以下作业环境以及程序:
必备项目MicrosoftWindowsXP/MicrosoftWindowsVista操作系统或MacOSX10.4.8或更新的版本(硬件必须是x86的版本)或LinuxAndroidSDK1.0r2以上(本书所有范例皆以AndroidSDK1.1r1为开发环境)JavaDevelopmentKit(JDK)v6.0以上Eclipse开发IDE程序(本书所有范例皆以eclipse-jee-ganymede-SR1-win32版本为编译环境)自我检查(ˇ)
准备就绪之后,就可以前往Android官方网站(AndroidSDK,也可以到()去下载。
▲图2-1到Android官方网站下载SDK下载后的AndroidSDK为压缩文件,请将它解压缩到磁盘中,例如下面的文件夹:
D:
\SDK\android而Eclipse编译IDE环境中,需安装ADT(AndroidDevelopmentTools)plug-in,此为Android的开发工具,启动Eclipse后,请运行“Help—SoftwareUpdates>>FindandInstall”,并按下“AddSite”输入ADTplug-in网址后(如下),按下“Install”便开始自动下载安装:
https:
//dl-
▲图2-2安装ADTPlug-in下载后,安装向导会显示两项必须安装的程序:
AndroidDevelopmentTools与AndroidEditors。
▲图2-3选择安装Android开发工具及编辑器
虽然AndroidADT可以免费下载安装,但在使用上仍然有其局限性,跟一般应用程序许可条款的签署类似。
▲图2-4同意使用Android软件开发条款安装ADT所需的时间不长,也可以在后台运行,不会影响现有的操作系统程序。
安装完毕后,需要重新启动Eclipse,才能使用AndroidADT。
▲图2-5可以在后台运行安装ADT,并需要重新启动Eclipse至此AndroidSDK及ADT已安装完毕,所有准备工作都已经就绪,随时可以开始建立Android项目。
这一节将建立本书第一个Android项目,不过,在初次建立Android项目之前,需要设置AndroidSDK的路径,让Eclipse可以找到AndroidSDK,先执行“Window—Preferences”。
▲图2-6运行Eclipse的Preferences设置功能点击“Android”的树状列表,单击“Browse”按钮,选择刚才解压的AndroidSDK的路径,而后按下“Apply”设置让Eclipse引用的SDK文件夹。
▲图2-7设置AndroidPreferences路径AndroidSDK的引用路径设置完成之后,就可以开始建立HelloWorld这个经典范例了;运行“File—New>>Project”建立新项目。
▲图2-8建立新的项目新建项目向导需要指定一种应用程序类型,故展开“Android”后,点击“AndroidProject”,按下“Next”按钮继续。
▲图2-9选择建立项目类型为AndroidProject新建Android项目需输入项目名称(Projectname)、Packagename、Activityname以及Applicationname,最后按下“Finish”按钮,项目随即建立完成。
▲图2-10
输入项目名称及Packagename建立新项目
到目前为止,新建Android项目已经完成,而且这个新建立的程序也已经可以运行,运行的方法是在“PackageExplorer”窗口里,点开刚建立好的“HelloWorld”项目文件夹,并在项目名称上单击鼠标右键,在功能菜单上运行“RunAs>AndroidApplication”功能。
▲图2-11
运行“RunAs—AndroidApplication”功能
假若此时尚未将手机与计算机联机,那么Eclpise将打开默认的Android模拟器(Emulator),运行画面就如同真的手机开机一样,随着计算机硬件环境的不同,运行模拟器也会有不同的性能表现,开机之后,随即打开刚建立好的HelloWorld程序。
▲图2-12
没写一行程序的HelloWorld
要退出被启动的“HelloWorld”程序,可以按下手机模拟器上的退格键(Backspace)。
▲图2-13
按下退格键离开程序,回到手机的桌面
虽然半行代码都没有写,但向导却帮忙写好了程序进入点、布局配置、字符串常数、应用程序访问权限等,除了可作为程序模板之外,也是Android手机程序的最佳学习范例。
让我们回过头来看看刚才Android项目建立向导帮忙做了哪些工作,以此来了解Android应用程序的生命周期及其文件组成方式;首先,展开“PackageExplorer”窗口里的“HelloWorld”项目名称,可以看见如下数据结构的文件:
+HelloWorld+-src
+-+-HelloWorld.java+-R.java+-AndroidLibrary+-android.jar-D:
\SDK\android+-assets+-res+-drawable+-icon.png+-layout+-main.xml+-values+-strings.xml+-AndroidManifest.xml在展开的文件夹层中,“src”、“AndroidLibrary”、“assets”、“res”与“AndroidManifest.xml”同属一层,放置在“\src”里的为主程序、程序类(class);放置在“\res”里的为资源文件(ResourceFiles),如程序ICON图标、布局文件(\layout)与常数(\values)。
以此HelloWorld程序为例,主程序为“HelloWorld.java”,其内容与一般Java程序格式相类似:
package;importandroid.app.Activity;importandroid.os.Bundle;publicclassHelloWorldextendsActivity{
/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);}}主程序里可看见HelloWorld类继承自Activity类,在类中重写了onCreate()方法,在方法内以setContentView()来设置这个Acvitity要显示的布局(R.layout.main),使用布局配置“\layout\main.xml”,布局文件是以XML格式编写的,内容如下:
xmlversion="1.0"encoding="utf-8"?
>
layout_width="fill_parent"android: layout_height="wrap_content"android: text="@string/hello"/> 布局配置中设置了一个TextViewTAG,用以配置文本标签Widget,其内部设置的android: text属性,则是要显示的文字内容,引用“@string”里的hello字符串常数。 查看“values/strings.xml”字符串常数设置如下: xmlversion="1.0"encoding="utf-8"? > Android应用程序有以下三种类型: lll前端Activity(ForegroundActivities)。 后台服务(BackgroundServices)。 间隔执行Activity(IntermittentActivities)。 前端Activity就如同这个HelloWorld一样,运行在手机前端程序中;后台服务可能是看不见的系统服务(SystemService)、系统Broadcast(广播信息)与Receiver(广播信息)接收器);间隔执行Activity则类似如进程(Threading)、NotificationManager等等。 每一个项目都有一个“AndroidManifest.xml”设置文件,里头包含这个Android应用程序具有哪些Activity、Service或者Receiver,先来看看HelloWorld制作好的“AndroidManifest.xml”设置文件的内容描述: xmlversion="1.0"encoding="utf-8"? > android="package=".tw"android: versionCode="1" android: versionName="1.0.0"> name="android.intent.category.LAUNCHER"/>在manifest文件中有一个名为HelloWorld的Activity,设置其intent-filter的categoryandroid: name为"android.intent.category.LAUNCHER",写在intent-filter里是指定此Activity为默认运行的主要Activity,除了在manifest文件中手动设置之外,也可在Eclipse右击项目名称,运行“RunAs—RunConfigurations”,设置LaunchAction: ▲图2-14 设置项目要执行的Action方式或Activity Activity类的应用程序有其默认运行的方式,为了确保应用程序运行的优先级,理解Activity在手机运行时的生命周期,及其可视性(Visible)周期。 ▲图2-15 Activity自onStop之后,程序即可被关闭 以HelloWorld程序里继承自Activitry类开始,一旦程序被执行,即会照以上流程顺序进行,若需要在Activity程序里编写程序,默认常见的进入点为重写onCreate(Activity)或onStart(Service),重写的方式可通过Eclipse来选择,方法为将鼠标光标停在继承自Activity的空白处,单击鼠标右键展开菜单,点开执行“Source—Override/ImplementMethods”功能。 ▲图2-16 执行“Source—Override/ImplementMethods”功能 在重写于实现方法的对话框中,点开“Activity”树状列表,在其中找到了onCreate(Bundle)方法,勾选前方的选择项(CheckBox),再按下“OK”按钮即可。 ▲图2-17 选择要重写的方法,向导会自动在主程序中描述重写内容 最后,比较值得一提的是onResume()与onPause(),这两个方法为Activity在onCreate之后运行过程中的生命周期,当程序失去前端焦点、或者被关闭,就会触发Activity的onPause()状态;当应用程序被再次唤醒,则会回到onResume()状态,故在编写与User互动的程序过程中,需注意User暂时离开Activity(或前往不同的Activity、不同的Service)前,需要处理的工作都会摆在onPause()当中执行。 以一个通过网络FTP下载mp3的Activity为例, 暂停下载工作可以写在onPause里,需要接续前一次的下载等处理,则由onResume负责。 Android手机有着华丽的机身、流畅的执行速度,唯一欠缺的就是“具有视觉美感的UI设计员”,但自AndroidSDKrc20a一路发展到1.0_r2,OpenHandsetAlliance提供的ADT(AndroidDevelopmentTools),终于有了预览界面的功能,只要点开项目的“res—layout”,双击main.xml运行“AndroidLayoutEditor”,或在其上单击鼠标右键展开菜单单,执行“OpenWith—AndroidLayoutEditor”。 ▲图2-18 单击XML布局配置文件,选择以AndroidLayoutEditor编辑 AndroidEditor的功能虽然阳春,但至少还算齐备,具有文字模式与UI配置模式可供切换,如下图的“Layout”与“main.xml”页签切换所示。 ▲图2-19 AndroidLayoutEditor具有文字模式与UI配置模式可供切换编辑 目前的ADT版本,虽然提供了预览接口功能,但没有提供类似MicrosoftVisualStudio的拖拉界面组件开发工具,所以布局的配置虽然直观,但还是不 够自然,所幸,在Google还未完整推出GUI的拖拉工具之前,已有网友以Java写出了好用的可视化GUI布局拖拉工具程序: DroidDraw。 DroidDraw目前是一个公开的GoogleCode,除了可以在线免费下载(http: //code.google.com/p/droiddraw/)使用到计算机端执行之外,也提供在线直接使用的版本(http: //www.droiddraw.org/);DroidDraw同时还提供了源代码(SourceCode),可供程序员自行参考或修改。 ▲图2-20 DroidDraw提供了可视化拖拉组件的方式设计布局期待未来Google能将拖拉布局的功能纳入AndroidEditor当中,如此一来更能整合AndroidSDK以及开发环境的功能,且让我们拭目以待吧! 要部署程序在模拟器上运行,在先前HelloWorld的程序已经看过了,在项目名称上单击右键执行Android应用程序即可,但事实上,要将Android程序,部署在手机环境中进行测试,方法也是相同的,同样调用“RunAs—AndroidApplication”的方式执行,不同的是,需要事先安装好Android的USBDriver,并且通过USB联机至手机,在与手机联机的状况下,就可以让Eclipse在运行Android程序时,直接将程序部署于实机环境中执行。 AndroidUSB驱动程序是随着AndroidSDK所提供的,每一个版本的SDK都可能有不同版本的USBDriverVersion,其存放在以下AndroidSDK解开后的参考位置,如: D: \SDK\android\usb_driver\安装的步骤是先将手机以USB与计算机连接,操作系统会找到名为AndroidPhone的设备,但是却在装置管理员当中无法正确被识别,如下所示。 ▲图2-21 操作系统找到名为AndroidPhone的装置,但无法正确被识别 接着画面会跳出添加硬件向导,选择“从列表或指定位置安装(高级)”来自行挑选驱动程序位置。 ▲图2-22 选择“从列表或指定位置安装”自己安装驱动程序 在“搜索和安装选项”的画面中,选择“不要搜索,我要自己选择要安装的驱动程序”选项,选择“显示所有设备”后,按下“下一步”。 ▲图2-23 选择不要搜索系统数据,改以自行挑选硬件的方式 利用浏览按钮选择复制源为AndroidUSBDriver程序路径: ▲图2-24 选择AndroidSDK里所附的USBDriver 选择驱动程序后,于显示兼容硬件列表中选择“HTCDreamCompositeADBInterface”,程序将Android手机的USBADBInterface安装完成。 ▲图2-25 安装AndroidUSBADBInterface完成 设备管理器会自动新增一项ADBInterface的项目,表示已经顺利安装了Android手机与计算机的联机。 ▲图2-26 顺利安装了Android手机与计算机的联机 安装完ADBInterface之后,暂时还无法通过Eclipse将Android项目程序部署至手机上,必须先将手机上的USB调试(Debug)模式打开,在手机上执行“应用程序设置—开发>>USB调试”。 ▲图2-27 将手机的USB调式模式打开 在Eclipse执行项目时,若程序发现先前已打开的模拟器与手机同时并存,那么将会跳出DeviceChooser的窗口让开发者选择要部署的设备,下图为选择AndroidG1手机之后,于Console里显示正确执行的Log纪录。 ▲图2-28 上图中的警告为开发使用的是SDK1.1但手机是SDK1.0的警告 部署程序到手机上测试是最适合的方法,因为许多功能皆需要手机才能进行测试,如WiFi驱动程序、平衡感应器、电池剩余计量等等。 看完了本章介绍的内容,相信各位已快速掌握了AndroidSDK的安装方法、Eclipse开发环境的设置、使用可视化布局开发工具,以及试写了一个AndroidHelloWorld的应用程序(咳~虽然一行程序都没写~),最后将程序部署于实机上运行,这是每一位Android程序员都必须快速掌握的重点,也是进入本书范例必须要具备的基本操作能力。 接下来将是丰富精彩的范例系列,相信通过边学边操作,你将获得更多宝贵的实战经验,祝大家学习愉快! 第三章: 用户人机界面 范例说明 前一章写了HelloWorld之后,一直觉得没有写半行代码对不起自己,所以在本章人机界面一开始,则延续HelloWolrd的气势,进行与TextView文字标签的第一次接触。 在此范例中,将会在Layout中创建TextView对象,并学会定义res/values/strings.xml里的字符串常数,最后通过TextView的setText方法,在预加载程序之初,更改TextView文字。 运行结果 ▲图3-1认识TextView.setText更改默认Layout里定义的文本字符串 范例程序 src/irdc.ex03_01/EX03_01.java 主程序示范以setText方法,输出String类型的字符串变量。 packageirdc.ex03_01;importandroid.app.Activity;importandroid.os.Bundle;/*必须引用widget.TextView才能在程序里声明TextView对象*/importandroid.widget.TextView;publicclassEX03_01extendsActivity{ /*必须引用widget.TextView才能在程序里声明TextView对象*/privateTextViewmTextView01; /**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState); /*载入main.xmlLayout,此时myTextView01: text为str_1*/setContentView(R.layout.main); /*使用findViewBtId函数,利用ID找到该T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AndroidSDK 开发 范例 完整版