




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Google android 平台上的软件设计研究毕业论文 目录1. android操作系统概述51.1 android的发展历史51.2 android的软件架构51.3 android的系统架构51.4 android的优势特色51.4.1 开放性61.4.2 挣脱运营商的束缚61.4.3 丰富的硬件选择61.4.4不受任何限制的开发商61.4.5无缝结合的google应用62. android开发环境搭建72.1 安装JDK72.2 安装Eclipse82.3 下载Eclipse的Android ADT插件82.4 安装android SDK92.5 更新系统的环境变量102.6 创建模拟器AVD123. 测试Android开发环境143.1 创建经典应用程序Hello Android143.1.4. 选择run as,选择android application,启动手机模拟器,即可看到运行效果163.2.MicroJobs的分析应用173.2.1 MicroJobs应用173.2.2 下载MJAndroid源代码173.2.3 MJAndroid主目录代码结构 src目录 lib目录 assets目录 doc目录 res目录 AndroidManifest.xml文件 eclipse还在项目的根目录创建两个文件夹,他们在Package Explorer里看不到。183.2.4 MJAndroid源代码目录代码结构 MicroJobs.java MicroJobsDatabase.java AddJob.java & EditJob.java MicroJobsDetail.java MicroJobsEmpDetail.java MicroJobsList.java R.java193.2.5 MJAndroid资源文件目录代码结构 Drawable Layout Values194. android实例204.1 计算器运行分析204.1.1 在./p/droiddraw下载此文件204.1.2 运行.exe文件204.1.3 拖拽右上方图标于界面后,可在其他菜单下修改图标参数。点击apply查看204.1.4 修改Calculator.java文件:214.1.5 在R.java文件中定义id类,初始图标位置234.1.7 在main.java中设置视图254.1.8 建立AVD284.1.9 运行结果:284.2 扫雷游戏运行分析314.2.3应用的布局311. android操作系统概述1.1 android的发展历史Android早期由“Android之父”之称的Andy Rubin创办。Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,基于Linux的通用平台进入了开发。Google公司在2007年,与其他33 家手机制造商(包含摩托罗拉、宏达电、三星、LG)、手机晶片供应商、软硬体供应商、电信业者所联合组成的开放手持装置联盟(Open Handset Alliance),发布了名为Android的开放手机软硬体平台。参与开放手持装置联盟的这些厂商,都会基于Android 平台,来开发新的手机业务。身为Google 公司创办人之一的Sergey Brin,也在Android 软体开发工具(SDK)发布的同时,现身于视讯广告影片中,为大众介绍Android 平台。Sergey Brin 也同时宣布举办总奖金高达1000 万美元(3 亿多台币)的开发者大奖赛,鼓励程式开发者去深入探究Android 平台的能力。写出具创意、实用性十足、能提供使用者更好的手机使用经验的应用程式。2008年9月22日,美国运营商T-Mobile USA在纽约正式发布第一款Google手机T-Mobile G1。该款手机是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。2010年2月3日,Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”(“staging tree”)上除去,从此,Android与Linux核心开发分道扬镳。1.2 android的软件架构android一词的本义指机器人,是基于Linux内核的操作系统。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层的Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。1.3 android的系统架构Android 在Linux 核心的基础上,提供了各种合用的函式库,和一个完整的应用程式框架。并采用较符合商用限制的Apache 版权。在Linux 核心的基础上提供Google 自制的应用程式运行环境(称作Dalvik,与Sun 的J2ME 不同),并提供基于Eclipse 整合开发环境(IDE)的免费、跨平台(Windows、Mac OS X、Linux) 开发工具(SDK),便于应用程式开发者学习、使用。1.4 android的优势特色1.4.1 开放性在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。 开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机1.4.2 挣脱运营商的束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。1.4.3 丰富的硬件选择这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。1.4.4不受任何限制的开发商Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如可控制正是留给Android难题之一1.4.5无缝结合的google应用如今叱诧互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。2. android开发环境搭建2.1 安装JDK下载安装java开发包(JDK)。选择 windows offline installation, multi-language,根据屏幕提示完成安装。图1在CMD窗口中输入JAVA VERSION,如果屏幕出现如图2一样的代码信息,说明JDK安装成功了。图22.2 安装Eclipse选择标有eclipse IDE for java developers的文件进行安装。进入解压后的目录,就可以看到一个名为“eclipse。exe”的可执行文件,双击此文件直接运行,eclipse 能自动找到用户先期安装的JDK路径。2.3 下载Eclipse的Android ADT插件点击Add。在name处填写Android Plugin ;Location处填写::/android/eclipse/。见图3、4、5图3图4图5安装完毕重启eclipse图62.4 安装android SDK下载地址:/android/android-sdk-windows-1.5_r3.zip。将下载的android-sdk-windows-1.5_r3.zip压缩包解压为文件放于自选位置。在eclipse中选择Window-Preferences-Android-Browse找到解压文件-Apply-OK图72.5 更新系统的环境变量打开 计算机-点右键 属性-高级系统设置-环境变量-Path-增加H:eclipseandroid-sdk-windows-1.5_r3android-sdk-windows-1.5_r3tools-确定图8图9图102.6 创建模拟器AVD window Android SDK and AVD Manager图11点击new图12图133. 测试Android开发环境3.1 创建经典应用程序Hello Android3.1.1.通过eclipse创建一个项目。选择File-New-Project。在菜单中选择Android-Android Project,点击Next图143.1.2.创建一个新的Android工程。Package name: com.china.hello ;Application name:test android。Android工程创建完毕。图153.1.3.在eclipse的Package Explorer窗口中双击helloworldactivity.java,可以在java编辑器中将其打开,可看到由eclipse和ADT插件自动创建的模板代码package com.china.hello;import android.app.Activity;import android.os.Bundle;public class HelloWorldActivity extends Activity Called when the activity is first created. Override public void onCreate(Bundle saveInstanceState) super.onCreate(saveInstanceState); setContentView(R.layout.main); 图163.1.4. 选择run as,选择android application,启动手机模拟器,即可看到运行效果图17图183.2.MicroJobs的分析应用3.2.1 MicroJobs应用 地图MicroJobs充分利用了Android平台的优越性,只需很少的一些代码,便可显示出手机用户所处位置附近地区的动态地图,并且根据机内GPS提供的信息,地图可以自动更新。用户还可以对地图进行缩放和移动,并可切换到卫星图片模式。. 查找朋友和事件需查找的地点会显示在地图上,用户还可以单击该图标了解详细信息。MicroJobs还可以直接通过收集的联系人管理器(Android Contact Manager)获取通信录中朋友的联系方式。也可以直接连接MicroJobs数据库获取或发不出来的信息 即使消息MicroJobs中可以直接通过即使消息和朋友联系, 直接和朋友或者雇主电话联系 网络浏览3.2.2 下载MJAndroid源代码. 下载地址/source/2772590. 将压缩包解压至Eclipse默认的Workplace目录. 导入eclipse3.2.3 MJAndroid主目录代码结构 src目录src是source(源代码)的缩写,用户程序中的所有Java源代码文件都应该放到这个目录下。开发者创建一格Android应用程序所需要做的工作几乎都位于src目录和res目录下。 lib目录在这个目录中包含了Android库文件的链接。通常情况下不需要对这个目录进行任何操作,当在开发过程中要确认某个Android类是否存在是,可以在这里进行查询。 assets目录应用程序需要用到一些静态资源文件存放在这个目录下。对于MJAndroid程序,由于没有任何静态资源文件,因此不会用到这个目录。 doc目录该目录用于存放项目相关的各种文档。在MJAndroid中,用于描述Loco项目的网页存放在这个目录下。 res目录这个目录用于存放与工程项目相关的各种资源文件。其中包含了大部分用于描述软件界面布局的XML文件和所有的图片文件(界面布局中会用到的图标、图片和动画)等。 AndroidManifest.xml文件这个文件在创建项目的时候由ADT自动生成。通过扩展名可以知道它是一个XML文件,其中包含了大量关于程序本身的信息。因为这个文件十分重要,ADT专门为它提供了一个图形化编辑器。 eclipse还在项目的根目录创建两个文件夹,他们在Package Explorer里看不到。.classpath文件夹用于保存标准Java类和类库的具体位置.project 目录用于存放工程项目相关的一些信息3.2.4 MJAndroid源代码目录代码结构 MicroJobs.java项目的主文件。定义程序运行时最先启动的时间、显示最重要的地图部分、根据用户操作调用其它活动及服务 MicroJobsDatabase.java定义数据库操作代理类,用于存取MicroJobs的本地数据库。 AddJob.java & EditJob.java包含部分数据库操作。用户可通过这两个文件提供的操作界面对数据库的工作信息进行添加和修改 MicroJobsDetail.java显示具体工作的所有详细信息 MicroJobsEmpDetail.java显示雇员的详细信息 MicroJobsList.java用列表的方式显示所有用户所查询信息 R.java由eclipse和ADT插件自动生成,包含所有资源文件的java引用。3.2.5 MJAndroid资源文件目录代码结构 “res”目录中包含如下3个子目录。 Drawable存放所有图形文件 Layout描述了每一个活动的显示布局。 Values将于程序运行没有直接关系的数据分离出来4. android实例4.1 计算器运行分析运行环境:eclipes 工具:droiddraw用于制作视图界面 4.1.1 在./p/droiddraw下载此文件图194.1.2 运行.exe文件图204.1.3 拖拽右上方图标于界面后,可在其他菜单下修改图标参数。点击apply查看点击Generate。便会在output中显示Main.java编码图214.1.4 修改Calculator.java文件:图22Calculator.java代码:package irdc.calculator;import irdc.calculator.R;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class Calculator extends Activity /* Called when the activity is first created. */这里是声明有要用到的对象public Button mButton2;public Button mButton3;public Button mButton4;public Button mButton5;public Button mButton6;public EditText mEditText1;public EditText mEditText2;public TextView mTextView2;public TextView mTextView4; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); / 以findViewById找到所有部署的Layout对象ID mTextView2 = (TextView) findViewById(R.id.mTextView2); mTextView4 = (TextView) findViewById(R.id.mTextView4); mButton2 = (Button) findViewById(R.id.mButton2); mButton3 = (Button) findViewById(R.id.mButton3); mButton4 = (Button) findViewById(R.id.mButton4); mButton5 = (Button) findViewById(R.id.mButton5); mEditText1 = (EditText) findViewById(R.id.mText1); mEditText2 = (EditText) findViewById(R.id.mText2); mButton2.setOnClickListener(new Button.OnClickListener() public void onClick(View v) mTextView2.setText(+); String strRet = Integer.toString(Integer.parseInt(mEditText1. getText().toString()+Integer.parseInt (mEditText2.getText().toString() ); mTextView4.setText(strRet); ); mButton3.setOnClickListener(new Button.OnClickListener() public void onClick(View v) mTextView2.setText(-); String strRet = Integer.toString(Integer.parseInt(mEditText1. getText().toString()-Integer.parseInt (mEditText2.getText().toString() ); mTextView4.setText(strRet); ); mButton4.setOnClickListener(new Button.OnClickListener() public void onClick(View v) mTextView2.setText(*); String strRet = Integer.toString(Integer.parseInt(mEditText1. getText().toString()*Integer.parseInt (mEditText2.getText().toString() ); mTextView4.setText(strRet); ); mButton5.setOnClickListener(new Button.OnClickListener() public void onClick(View v) mTextView2.setText(/); String strRet = Integer.toString(Integer.parseInt(mEditText1. getText().toString()/Integer.parseInt (mEditText2.getText().toString() ); mTextView4.setText(strRet); ); 4.1.5 在R.java文件中定义id类,初始图标位置图23R.java代码:/* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */package irdc.calculator;public final class R public static final class attr public static final class drawable public static final int icon=0x7f020000; public static final class id public static final int mButton2=0x7f050006; public static final int mButton3=0x7f050007; public static final int mButton4=0x7f050008; public static final int mButton5=0x7f050009; public static final int mText1=0x7f050001; public static final int mText2=0x7f050002; public static final int mTextView2=0x7f050003; public static final int mTextView3=0x7f050004; public static final int mTextView4=0x7f050005; public static final int widget0=0x7f050000; public static final class layout public static final int main=0x7f030000; public static final class string public static final int app_name=0x7f040001; public static final int hello=0x7f040000; 4.1.7 在main.java中设置视图图24Main.java代码: 工具:droiddraw进行可视操作,提取代码图254.1.8 建立AVD图264.1.9 运行结果:.加法图2减法运算图2乘法运算图2除法运算图304.2 扫雷游戏运行分析4.2.1简介游戏的目的是在没有触碰任何一个地雷的情形下清空一个雷区。扫雷不仅有Windows版本,也有其他平台的版本(包括大多数Linux的变体)。扫雷在Windows的用户中十分流行,自从Windows 3.1以来一直绑定在里面。在扫雷游戏中,游戏者要面对一片砖块组成的格栅,有些砖块包含随机设置的地雷。我们将实现一个典型的初学者级别扫雷游戏:行和列的数量都是9,一共有10颗地雷。扩展成中级和高级游戏很容易(只需要改编代码中的上述三个值)。在实现前我们需要了解这个游戏的一些特点(Windows版本):点击左键打开一个砖块;点击右键对砖块进行标记:插旗帜(表示下面有雷),标问号(不确定是否有雷),取消标记第一个砖块下面永远没有雷;避免了一开始就要猜测的烦恼。如果打开的砖块是空的,周围的砖块都会依次打开直到遇到数字砖块。4.2.2程序实现解释和实现任何复杂系统的最好方法是一次一步进行。首先探讨布局和应用的视觉及创建布局时用到的一些技术。然后讨论鼠标、点击和触摸事件的区别以及应用的反应。最后实现整个游戏以及上面介绍过的功能。我们将利用该较大难度的开源程序进行程序分析解析。图314.2.3应用的布局使用TableLayout进行扫雷的布局,在TableLayout上加入三行: 第一行包括用于计时的三列数字,新游戏按钮和剩余地雷数。我们使用TextView显示计时和地雷数。新游戏按钮使用ImageButton。第二行是50像素高的空的TextView,将第一行和雷区隔离开。第三行是另一个TableLayout,用来显示雷区。我们将动态的向这个区域添加按钮。图32布局的代码如下(删去了一些额外的属性来节省空间): 4.2.4使用外部字体我们使用外部字体来显示时间和地雷数。在Android中使用外部字体很容易,分为两步: 在工程的assets文件夹下创建字体文件夹,复制TTF(True Type Font)文件至字体文件夹。通过调用createFromAsset 和传递TTF文件名创建一个Typeface对象。在这个对象中设置TextView的Typeface。代码如下:private TextView txtMineCount; private TextView txtTimer; txtMineCount = (TextView) findViewById(R.id.MineCount); txtTimer = (TextView) findViewById(R.id.Timer); / set font style for timer and mine count to LCD styleTypeface lcdFont = Typeface.createFromAsset(getAssets(), fonts/lcd2mono.ttf); txtMineCount.setTypeface(lcdFont); txtTimer.setTypeface(lcdFont); private TextView txtMineCount;private TextView txtTimer;txtMineCount = (TextView) findViewById(R.id.MineCount);txtTimer = (TextView) findViewById(R.id.Timer);/ set font style for timer and mine count to LCD styleTypeface lcdFont = Typeface.createFromAsset(getAssets(), fonts/lcd2mono.ttf);txtMineCount.setTypeface(lcdFont);txtTimer.setTypeface(lcdFont)4.2.5使用风格在我们的扫雷游戏里,点击新游戏的笑脸按钮会让这个笑脸变成紧张的表情。当按钮处于按压状态时(紧张的笑脸),我们需要一个不同的图像。当它处于正常状态时需要另一张图像。为了实现此功能,我们使用风格,效果如下: 图33
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度特种车辆借用与运行数据安全保护服务合同
- 2025年离异人士心理健康维护与法律维权服务合同
- 2025年网络安全评估与防护方案实施服务合同
- 2025农村宅基地使用权转让与征收补偿安置方案合同
- 茶楼整体翻新工程验收及报告撰写专业服务合同
- 2025年电商公司专业客服团队劳动合同模板
- 2025年绿色食品加工厂有机原料采购合作框架协议
- 2025年度安徽省工业氨水大宗采购与专业运输服务协议
- 2025年度高效环保设施租赁合同(绿色减排升级版)
- 保姆雇佣合同模板
- 水泥路施工安全知识培训课件
- 2025年秋季学期(统编版)二年级上册语文教学工作计划及教学进度表
- 2025年福建省厦门市【辅警协警】笔试真题(含答案)
- (2025年标准)委托他人要账协议书
- 2025-2030中国青少年无人机教育课程体系构建与创新能力培养研究
- 2025年金融消费者权益保护考试题与答案
- 中学2025年秋季第一学期开学工作方案
- 《跨越百年的美丽》课件 中职语文上册
- GB 11122-2025柴油机油
- 2025年河南开封产城融合投资集团有限公司招聘考试笔试试题(含答案)
- 大便常规检查
评论
0/150
提交评论