




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、前言Linux 公社()于 2006 年 9 月 25 日并开通,Linux 现在已经成为一种广受关注和支持的一种操作系统,IDC 是互联网数据中心,LinuxIDC 就是关于 Linux 的数据中心。提供包括 Ubuntu,Fedora,SUSE 技术,以及IT 资讯等 Linux 专业类。如今的移动开发有着太多让为之振奋的事情。硬件越来越精良、平板电脑和开发平台(Symbian OS, iOS, We, Windows Phone 7)也层出不穷,移动开发者的前景一片大好,但与此同时,也为刚准备入门的开发者带来了些许困扰。因为对于入门级的移动应用开发者来说,这里有太多的选择。你应该选择哪一
2、个学习哪一门编程语言?你的项目需要什么工具套件?你该在本中,我只向你介绍众多移动中的一种Android一个由推广的开源操作系统。相关Android见 http:/ews.aspx?tid=11为什么要做Android应用开发?Android 是一个基于 Linux 内核的开源,并被安装于各个厂商的各种移动设备上。Android 使得你的应用程序能够轻易使用现代移动设备上具备的几乎所有硬件数字罗盘、相机、GPS、定位传感器等等。Android 提供的免费开发工具,使得你只需用很少的经费(通常不花任何费用)就能开发Android 应用。当你准备将自己的Android 应用show 给广大用户,你只
3、需要将它发布在的 Android Market 上去。在第一次发布你的应用时,只需缴纳 25(在笔者落笔时)的费,而且不像在苹果的 App Store 上发布应用那样,每一次发布都要经过严格的审核。Android Market 只是简单而快速地审核一下你的应用便提供给用户除非你的应用存在明显的不合法。下面还有几点 Android 提供给开发的优势:Android SDK 支持 Windows,Mac 和 Linux,因此并不需要为你的开发购置新的硬件设施。Android SDK 是基于 Java 的,所以,如果你已经熟悉了 Java 开发,那么,你已经可以算是上路了。一旦你将应用发布至 And
4、roid Market,那它将在一瞬间面向成千上万的 Android 用户。而且你的应用并不会局限于这一个市场,因为这里还有许多备用方案,比如你还可以将你的应用发布在自己的博客上,而且据传 Amazon 最近也在准备开放他们的 Android 应用商店。不论是 Android 用户还是开发的 Android 资源文件。,都可以像获得 Android SDK 的产品文档一样,获得新好了,已经说得够多了,现在就开始的 Android 开发之旅吧!安装Eclipse和Android SDK我们使用安装了ADT(Android Development Toolkit )插件的Eclipse作为开发An
5、droid应用的首选集成开发环境。我将在这里对这个环境的搭建做一个简单的总结,如果你需要更加详细的信息,请查看的developages。和你的硬件(Windows, Mac OS X, 或者 Linux)相对应的Android SDK将你的安装包解压到一个你记得住的地方(比如在 Linux 上,我选择 usr/opt/local)如果你没有安装Eclipse,那么请先用Eclipse 3.5(Galileo)。并安装Eclipse IDE for Java Developers.建议使运行 Eclipse,在菜单栏选择“帮助”“Install New Software”在 Available
6、Software 中点击 Add 在 Name 这一栏中输入 Android Development Tools ,随后在 Location 拦中输入ssl.g/android/eclipse/点击确定,勾选中间列表中的 Developer Tools(这会 Development Tools,以及一些 Android 调试工具)并安装 Android DDMS,Android点击下一步,等待 ADT并安装完成重启 Eclipse 以便新安装的插件生效。在重启后的 Eclipse 中选择“窗口”“首选项”,你就能看到 Android 被列在了左侧属性栏中。现在,你需要告诉 Eclipse 你的
7、 Android SDK 放在哪里。点击左侧的 Android 选项,在右侧选择“浏览”以指定你刚才安装 Android SDK 的目录现在点击确定,保存 Android SDK 的位置。关于Android在你开始编写 Android 应用之前,你还需要一个对应于你的 Andorid 开发设备的 SDK 平台。每一个可能安装于用户设备上的都对应一个不同版本的 Android SDK。比如 Android1.5 及以上版本,就有两种可用的Android Open Source Project 和.是开源的,但是没有包含的扩展功能,比如Android Open Source Projectmap。
8、如果你没有选择版本的 API,那么你的应用将不能使用专有的那些扩展。除非有特殊的原因,否则我还是建议你勾选一个那些扩展功能的好处。,这将会使得你获得选择“窗口”“Android SDK and AVD Manager”在左侧列表中选择 Available Packages,并在右侧勾选 re列表。itory 以显示当前可用的 Android你可以按己所需,也可以直接勾选所有可用的并进行。选择完成之后,点击“Install Selected”并按照之后的安装指南进行操作即可。当一切都准备就绪,你就可以开始开发 Android 应用了。创建一个新的Android项目Eclipse 自带的项目创建向
9、导,可以帮助你创建一个新的(包含所需的文件、代码等)可以直接运行的 Android 应用项目。对于急于想看到程序运行效果的朋友来说,这是一个快捷又省事儿的方法,也是一个引导你进入 Android 世界的良好切入点。选择“文件”“新建”“Android Project”【bill 注】如中没有“Android Project”,则选择“文件”“新建”“项目”然后选择 Android Project,点击下一步在弹出的项目选项中,按照下面的配置依次填写:Project Name: BrewClockBuild:Inc. 1.6 (Api Level 4)Application Name: Brew
10、ClockPackage Name: com.exrewclockCreate Activity: BrewClockActivityMin SDK Ver: 4当你点击完成之后,Eclipse 就会为你创建一个已经可以运行的 Android 项目。你有注意到我们刚才告诉 Eclipse 要生成一个名为 BrewClockActivity 的 Activity 么?这个 Activity 就包含了能够是你的应用被 Android 运行的基本代码。这段生成的代码在运行时将打印出一段类似于 “ o World”的简短消息。包 packages包名是你的应用的一个标识。当你将应用发布到 Androi
11、d Market 上时,这个包名将被用于跟踪你的应用程序更新,所以,你包名的唯一性变得异常重要。尽管这个示例性的应用使用了 com.exrewclock 作为包名,但是在正式的应用开发中,最好将包名写成如下格式:com.你的公司名.你的应用程序名。SDK版本 SDK ver上述Project 配置表单中的Min SDK Ver表示你的应用程序至少需要哪个SDK 版本的支持。每一个新版本的 Android 发布,都会增加或者修改 SDK 中的方法。所以通过指定一个最早可用 SDK 版本,Android(以及 Android Market)就知道你的应用程序只能在拥有这个(及以后)的 SDK 版本
12、的设备上运行。运行你的应用程序现在让在 Eclipse 中运行这个应用吧。由于这是第一次运行,Eclipse 会询问你的项目以何种类型运行选择“运行”“运行”,或者使用快捷键“Ctrl + F11”出现 Eclipse 的询问时,选择 Android Application 并点击确定现在,Eclipse 将会试图在一个 Android 设备上运行这个应用程序。但是现在,你并没有任何正在运行的 Android 设备,所以这次运行尝试将会失败,Eclipse 会提示你是否需要创建一个新的 Android 虚拟设备(AVD)Android 虚拟设备Android 虚拟设备(AVD)是一种模仿真实
13、Android 设备(比如一个 Android或者 Android平板电脑)的模拟器。你可以利用各种 AVD 去测试你的应用在各种 Android 设备上的表现而无需去购置那些设备。你可以对每一个 Android的版本都建立一个对应的 AVD。对于每一个 AVD,你都可以自定义这个设备的一些属性,比如是否具有物理键盘、是否支持 GPS、相机的分辨率等。在你能运行刚才那个应用之前,你需要创建一个对应于该应用的 SDK 版本(的 AVDAPIs 1.6)下面,让开始吧:如果你还没有试图运行那个应用,现在点击“运行”或者使用快捷键“Ctrl + F11”当 Eclipse 弹出提示询问你是否要创建一
14、个新的模拟器时,点击确定在弹出的 Android SDK and AVD Manager 中点击“New”属性配置如下:点击“Create AVD”以便创建这个新的 AVD关闭 Android SDK and AVD Manager框运行应用程序现在,重新运行(Ctrl + F11)你的应用。Eclipse 现在就会编译你的项目并启动一个新的 AVD。记住,AVD 模拟器模拟了一个真实的完整的 Android 系统,甚至需要像等待真实 Android 设备的开机自检一样等待模拟器的开机程序完成。鉴于此,一旦 AVD 启动并开始运行,我建议在你的开发工作完成之前,都不要关掉这个 AVD(以免再次
15、经历那漫长的启动过程)当模拟器启动成功并开始运行,Eclipse 就会自动的向模拟器安装并运行你的应用。建立你的第一个Android应用这个测试应用程序倒是工作的蛮不错,但你总得建立自己的真正的应用吧?基于此,通过一个简单的应用设计,带领你一步一步地学会开发 Android 应用并使它在 Android 设备上运行。如你所知,许多开发者(包括我在内)都喜欢在工作之余泡上一杯好茶(或者咖啡)。在接下来的小节中,我将带领你创建一个简单的 tea counter 应用,用于一共冲泡了几杯茶,并允许他们为自己的冲泡设置一个倒计时提醒。目前为止这个用户你可以在.中到这个应用的源码。设计用户界面在建立任何
16、 Android 应用之前,总需要先设计并建立用户界面。下面是这个应用界面的一个预览:用户可以通过“+”,“”按钮设置冲泡时间(以分为泡倒计时便开始啦。)。当他们点击“Start”按钮,冲除非用户再次点击该按钮以取消倒计时,那么当倒计时完成时,冲泡的杯数就会自动加 1。创建用户界面Android 的用户界面(或者说用 XML 文档描述的 layouts)被保存于项目中的 res/layouts 文件夹。在之前的示例应用中那个显示“o World”的简单界面由 Eclipse 自动生成并保存于res/layouts/main.xml 中。Eclipse 也提供了图形化界面设计器,它允许你对这些界
17、面元素进行拖拽编排。尽管如此,我还是觉得在 XML 文档中手动编写界面,然后在图形化界面设计器中预览我编写的界面更简单易行。现在,让修改 main.xml 文档以便使其展现出刚才设计的那个界面。在 Eclipse 的项目浏览器中,双击打开 res/layouts/main.xml 文档选择 main.xml 的 XML 视图现在,将 XML 文档中的内容正如你所见,Android 的 XML 布局文件非常冗余,但却能够帮助你掌控屏幕上几乎所有的视觉。在 Android 布局文件中一个重要的布局元素是布局容器(布局方式),比如这个例子中的线性布局(LinearLayout)。这种布局对用户是不可
18、见的,只作为那些可见的,诸如按钮、文本框等视觉元素的容器。还有其他许多种布局方式,每(LinearLayout)、绝对布局(Absolu式都提供了一种不同的布局效果。比如线性布局ayout),还有基于网格的表格布局(TableLayout)等等,你可以在Common Layout Objects中找到有关布局方式的描述。编写代码你的布局元素当你完成布局文件的编写之后,再次运行这个应用,你会发现界面已经不是刚才那个简单的“面。o world”了,取而代之的是为这个应用设计的用户界如果你现在点击界面中的按钮,你会发现他们会表现得和你预期的一样他们不会为你做任何事情。显示,但是,下面让来编写代码,使
19、得点击界面按钮时有适当的事情发生。接着,改变源代码中的 onCreate()的实现。这是一个回调函数,只要 Android 系统启动你的应用,这个方法就会被调用。在 Eclipse 自动生成的 onCreate()实现中,将的应用布局设置成了 R.layout.main。正是这一行代码告诉 Android 系统将码并展现给用户。的 layout 布局文件译1. #/exrewclock/BrewClockActivity.java 2.import android.widget.Button;import android.widget.TextView; 5.public class Brew
20、ClockActivity extendivity /* Properties */protected Button brewAddTime;protected Button brewDecreaseTime;protected Button startBrew;protected TextView brewCountLabel;protected TextView brewTimeLabel; 13.14.15.资源对象 The Resource Object 在 Android 中,R 类是一个特殊的资源类,允许你在自己的 java代码中通过它项目资源(布局 layouts,字符串 str
21、ings,菜单s,图标 icons 等等)。每一个资源都被赋予了一个 ID,在上面的 res/layouts/main.xml 布局文件中,通过“+id”这一属性实现。码中。利用这一属性将布局文件中的按钮或者文本;连接到的 JAVA 实现代Listening For Events事件为了能够得知用户在何时点击了的按钮,须实现一个器。你可能会觉得这很像其他拥有事件驱动的Rail 的 callbacks。的 listemers 或者 callbacks,就像 Javascript/JQuery 的 events 或者Android 通过器接口向提供了一个类似的机制。比如 OnClickListen
22、er 接口定义了一个当某事件发生时会被触发的方法。为了让的应用程序知道用户点击了屏幕上的哪一个按钮,需要实现 OnClickListener 接口并将其绑定到某个按钮上。这样,当用户点击该按钮时,OnClickListener 就会通知的应用。1. #/exrewclock/BrewClockActivity.java 2./ Be sure not to import/ android.content.dialogerface.OnClickListener.import android.view.View.OnClickListener; 6.public class BrewClockA
23、ctivity extendivityimplements OnClickListener 9.10.public void onCreate(Bundle savedInstane) 11.1. #/exrewclock/BrewClockActivity.java 2.3.public class BrewClockActivity extendivity 4.public void onCreate(Bundle savedInstane) super.onCreate(savedInstane);setContentView(R.layout.main); 8./ Connecterf
24、ace elements to propertiesbrewAddTime = (Button) findViewById(R.id.brew_time_up);brewDecreaseTime = (Button) findViewById(R.id.brew time down);startBrew = (Button) findViewById(R.id.brew_start);brewCountLabel = (TextView) findViewById(R.id.brew count label);brewTimeLabel = (TextView) findViewById(R.
25、id.brew_time);15.16. 接下来,要添加能够处理这些点击事件的代码。还向自己的 Activity 添加了 4 个新的属性冲泡时间、冲泡倒计时、已经完成杯数以及倒计时是否正在进行的标记。注意,用到了 Android 系统提供的 CountDownTimer(倒数计时器)。它将使你能够轻松地创建一个见到的倒数计时器,并在其运行期间定期通知某些事件。你将在接下来的startBrew 方法中使用到这个计时器。下面的这些方法将实现设置冲泡时间、开始或终止冲泡以及成功冲泡的杯数。还将在 onCreate 方法中添加对“冲泡时间”和“成功冲泡杯数”这两个属性的初始化操作。在工程实践中,将下面
26、这些方法单独地列写于各个模块类中,这里只是为了简单起见才把他们全部写在 BrewClockActivity 这一个类中。1. #/exrewclock/BrewClockActivity.java 2.public class BrewClockActivity extendivityimplements OnClickListener 5.protectedbrewTime = 3;protected CountDownTimer brewCountDownTimer;protectedbrewCount = 0;protectedisBrewing = false; 10.public v
27、oid onClick(View v) if(v = brewAddTime)setBrewTime(brewTime + 1);else if(v = brewDecreaseTime)setBrewTime(brewTime -1);else if(v = startBrew) if(isBrewing)strew();elsestartBrew();21.22.23. / Setup ClickListenersbrewAddTime.setOnClickListener(this);brewDecreaseTime.setOnClickListener(this);startBrew.
28、setOnClickListener(this);16.17.public void onClick(View v) / TODO: Add code to handutton taps20.1.2.#./exrewclock/BrewClockActivity.java.7.public class BrewClockActivity extend implements OnClickListener .public void onCreate(Bundle savedInstan.ivitye) 1.12./ Set the initial brew valu
29、es setBrewCount(0);setBrewTime(3);6.17./*Set an absolute value for the number of minutes to brew.Has no effect if a brew is currently running.param minutes The number of minutes to brew.*/1.22.public void setBrewTime( if(isBrewing)return;minutes) brewTime = minutes;6.27
30、.if(brewTime 1)brewTime = 1;brewTimeLabel.setText(String.valueOf(brewTime) + m);1.32./* Set the number of brewsve been made, and update* theerface.6.37.* param count The new number of brews*/public void setBrewCount(brewCount = count;count) brewCountLabel.setText(String.valueOf(b
31、rewCount);1.42./* Start the brew timer*/43.44.public void startBrew() / Create a new CountDownTimer to track the brew time这一大段代码中唯一牵涉到 Android 的一部分是通过 setText 方法设置显示的 labels。在startBrew 方法中,建立并启动了一个以秒为的倒数计时器,直到一次冲泡完成。方法(onTick 和 onFinish)。onTick 方法每注意,内嵌地实现了该倒数计时器的两个1000 毫秒(1 秒)便会被调用一次,直到倒数计时为 0 时,onFinish 方法被调用。避免硬编码 Avoiding HardCoded Text in your Code为了使得本的代码更加简洁,我故意将那些字符串(比如“Brew Up!”,“Start”,“Stop”等)直接硬编码在了 JAVA 代码里。当从大一点的工程项目来考虑, 这是非常糟糕的编程实践,因为它将会给查找或修改这些字符串带来极大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年资源型城市绿色转型中的城乡一体化发展报告
- 2025年模具制造数字化设计流程与仿真技术优化报告
- 2025年美容机构市场调查报告
- 2025电磁屏蔽膜行业市场分析报告
- 2025年节能、高效脱水设备行业分析报告及未来五至十年行业发展报告
- 2025年药用辅料项目评估报告
- 便携式一氧化碳检测仪项目投资可行性研究分析报告(2024-2030版)
- 2025-2030中国烧烤汁行业营销模式及投资战略研究研究报告
- DB32/T 4310-2022桃促成栽培生产技术规程
- DB32/T 4292-2022警用通用地理实体分类与代码
- 2025年消防知识考试题库:火灾预防与逃生逃生技巧实战演练题
- 福建卷-2025届高考化学全真模拟卷
- 高速公路占道施工应急安全措施
- 2022隧道顺光照明技术指南
- 2025高考英语作文考前背诵(应用文+读后续写)
- 6.3种群基因组成的变化与物种的形成课件-2高一下学期生物人教版必修2
- 成人创伤性颅脑损伤院前与急诊诊治中国专家共识2025解读
- 北京开放大学2025年《企业统计》形考作业4答案
- 广东2025年中考模拟数学试卷试题及答案详解
- GB/Z 27001-2025合格评定通用要素原则与要求
- 挂学籍协议书范本
评论
0/150
提交评论