1、目 录摘 要1引言11 Android的系统研究21.1 Android 平台介绍21.2 Android构架41.2.1 Android的构架综述41.2.2内核层52 Android的开发62.1 Android开发工具62.2 Android开发平台的搭建63 Android的课程表开发73.1项目需求分析73.2项目目录分析73.3系统功能的主要功能实现73.3.1 TimeTable文件:当天课程的显示73.3.2 Showtable文件:整个星期的课程显示93.3.4 WeekDay:课程表管理。93.3.5 Edit文件: 课程表的修改和添加103.3.6 数据库实现:10总结1
2、1参考文献12致 谢12Based on android files development12Key word13基于android 的课程表开发摘 要: 在科学技术高速发展的今天,手持终端设备已经从接打电话的简单功能,跨越到音乐,影音,游戏,商务多种功能。原始的通信传输已经满足不了,当今高速发达的信息社会人们的需求。Goole 公司开发的Android顺应时代而生,Google看到了智能手机市场上的商机,搭载Android操作系统的手机一经上市,短短三年时光,Android发展的之迅速,让苹果(ios),诺基亚(塞班),黑莓(BlackBerry)这些手机望族们完全措手不及。据2012年2
3、月数据显示,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。 Android 系统也从1.5发展到2.4,以及平板电脑系统3.0。总结android发展在原因主要是因为它拥有五大特点:一、开放性,二、挣脱运营商的束缚,三、丰富的硬件选择,四、不受任何限制的开发商,五、无缝结合的Google应用。关键字:android android特点 google 引言随着手机的不断发展,拥有智能手机已经不再是奢侈昂贵的象征。在智能手机的争夺战中,Android不得不说是减低智能手机价格的一大功臣。Android系统是谷歌公司开发的免费 开源的移动终端操作系统,适合于
4、手机和平板电脑。开始动摇苹果手机走高端客户大局势。也动摇在手机市场在长久以来在分割局势。当今,智能手机所搭载的智能手机操作系统平台大致如下:(1)Symbian OS。搭载在具有广泛群众基础的Nokia手机上,并以此占据了智能手机的半壁江山,其主要的智能平台为大部分诺基亚手机搭载的的S60系列和索尼爱立信手机搭载的UIQ系列;(2)Windows Mobile。Microsoft在桌面系统获得成功之后,觊觎手机的巨大市场开发的智能手机系统,因其界面和桌面windows系统较为接近和其强大的微软后台,成为国内市场占有率紧跟Symbian之后成为国人比较喜欢的操作系统;(3)Mac OS X(iP
5、hone OS)。苹果一直都是个性和时尚的代名词,受广大中高层次手机用户的喜欢。iPhone,以其酷炫的UI和独特的操作方式,给传统手机带来一场革命,同时也给Symbian和Windows Mobile带来巨大冲击的;(4)Blackberry。以商务应用为主,在国外尤其是欧美等地,受到商务人士欢迎的Black Barry占据了近一半的无线商务电子邮件业务市场,就连美国总统奥巴马也使用该品牌的手机。但是在国内还是受到一些基础设施的制约,所以在国内市场不是太好;(5)Palm OS。专门为PDA开发,一度占据了90%的PDA市场的份额,虽然其并不专门针对于手机设计,但是以其优秀性和对移动设备的支
6、持同样使其能够成为一个优秀的手机操作系统。(6)Linux。对于Linux系统,想必很多人都不会太陌生,桌面系统中以其开源的特性,赢得了不少用户的喜爱。智能手机平台的Linux同样具有源代码开放、软件授权费用低、应用开发人才资源丰富等优点,便于开发个人和行业应用。但是因为其平台上的应用少而不被国人所接受。(7)Google Android。自2007年推出,2008年第一部搭载Android系统的G1上市至今不到短短三年时间,他已被许多人接受并且认可及欢迎。1 Android的系统研究1.1 Android 平台介绍Android从诞生到现在也不过4年的时间,但是也就是在这短短的3年内Andr
7、oid创造了一个迅速被人们知晓并追捧的奇迹。2007 年11 月5 日,Google 与其他33 家手机制造商(包含摩托罗拉、宏达电、三星、LG)、手机晶片供应商、软硬体供应商、电信业者所联合组成的开放手持装置联盟(Open Handset Alliance),发布了名为Android的开放手机软硬体平台。该联盟的成员宣布日后都会在Android平台上开发他们的新的业务。不久之后的2008 年9 月24 日,T-Mobile 公司首度公布第一台Android 手机(G1)的细节,同日Google 也放出了Android SDK 1.0 rc1。这样Android进入了人们的视线。Android
8、以其特有的开放性优势越来越受到人们和智能手机厂商的关注。对于第三放软件开发商来说,Android 是一个真正意义上的开放性移动设备综合平台,Android系统是免费向开发人员提供的,这样就避免了开发中专利权的障碍。因此,就能够为第三方软件开发商省下大笔资金。对于设备制造商来说,Android是一个免费的平台。当设备制造商每制造一台手机时,那些支付给手机系统制造商的费用也省去了,这样也降低了每台手机的生产费用,同时就降低了手机的价格,这样在市场上也提高了竞争力。对硬体开发厂商来说,Android也是个开放的平台。使用Android平台的厂商可以更具自己的需求以及能力为Android开发具有该厂商
9、特色的功能,但是这样的增加完全不用考虑版权的问题。同时Android平台支持各种先进的网络、绘图、3D 处理能力,可以用来提供更好的使用者体验。Google Android 系统作为一个完全开源的操作系统,是由操作系统(Linux)、中间件以及核心应用程序组成的软件栈(software stack)。通过 android SDK 提供的 API 以及相应的开发工具, 程序员可以很方便的开发android平台上的应用程序。其整个系统由应用程序(Application),应用程序框架(Application Framework),应用程序库(Libraries),Android运行库(Androi
10、d Runtime),Linux内核(Linux Kernel)五个部分组成。Android操作系统内置了一部分应用程序, 包括电子邮件客户端、SMS程序、日历、地图、浏览器、通讯录以及其他的程序,值得一提的是这些所有的程序都是用java编写的。因为应用程序框架使得组件更易于重用,所以开发者的应用程序可以很容易的调用API函数实现我们想要的功能。在遵守应用程序框架的安全机制约束的前提下,开发者开发的一个应用程序可以使用其他程序所开发的功能。虽然Android的应用程序是用Java语言开发的,但是Android给应用程序开发者提供了一系列的 C/C+ 程序库,通过Android的一些特殊的设计,
11、我们开发者可以使用这些库,这在后面的叙述中将看到。现今,Android操作系统已成为许多手机制造商的宠儿,其中包括HTC、索尼爱立信、Samsung、摩托罗拉以及国内的联想、华为、海尔、华禹等。其中值得一提的是摩托罗拉公司,就在2009年11月凭借其一款搭载Android平台的Droid手机,两个月内就突破百万台,击败了苹果的iPhone 3GS,被时代杂志评选为“年度最佳科技产品”。因此告别了两年多的低迷态势,走出了泥潭。1.2 Android构架1.2.1 Android的构架综述从图2-1中明显的可以看出该系统从下到上包括Linux内核层、Libraries和运行时环境层、应用程序框架层
12、、应用程序层四层结构。在Android的最下层的操作系统基于Linux2.6内核,往上的中间件包括Libraries和运行时环境层和应用程序框架层两个层次,最上层则是应用程序层。在Android构架中,可以很明显的看到,底层的Linux内核则采用的是C语言,libraries采用C或者C+,但是应用程序层、应用程序框架层和运行时环境中的Android核心库采用Java语言编写,也就是说Android虽然底层用的是C或者C+但是应用程序的开发则用的是Java。Google采用这样的模式可能是因为相对于C或者C+,Java的开发周期更短的缘故,这样的话就能在短时间内为Android提供大量的应用软
13、件。我们知道,作为一个智能手机平台,只有拥有了大量的源源不断的应用程序作为支持,才能受人们的欢迎,从而才能占领市场。之前Nokia的s60第三版就是一个很好的例子,因此Nokia S60v3的系统才被世人所熟知,并且曾经在智能手机行业占有很大的市场。而另一个例子就是Linux系统,在所有操作系统中,稳定性和性能上能够和Linux抗衡的系统不多吧,但是在智能手机市场上为什么Linux却可以说是一败涂地,其原因也和其第三方应用少是脱不了关系的。1.2.2内核层Google Android 作为一个开源的操作系统其内核采用了同样开源的被业界认为是相当稳定的Linux作为其内核,其中Linux内核包括
14、以下功能模块:安全(Security)、存储器管理(Memory Management)、进程管理(Process Management)、网络堆栈(Network Stack)、驱动程序模型(Driver Model)等,另外也在给其上层的软件和下层硬件间建立起一个抽象层(Abstraction Layer)。同时Android在Linux 2.6的内核上进行了一些增加和删改,使Linux更加适应ARM平台。增加了一个基于ARM构架的GoldFish平台作为虚拟机的虚拟CPU。增加了YAFFS2 FLASH系统文件,因此增加了对NANDFLASH支持。增加了Android相关的驱动。例如An
15、droid的IPC(进程间通信机制)binder,使用这个能使运行的进程为其他进程提供服务;Android的日志系统(Logger)和内存控制台(Ram_console);同时Google还重写了电源管理(Power)增加了新的共享方式Ashmem(匿名共享内存),多个应用程序可以这种方式共享内存获取信息,为进程间提供大量共享内存,同时为内核提供回收和管理这个内存的机制。2 Android的开发2.1 Android开发工具前面说过,Android的上层应用程序是用Java语言开发的,同时需要基于Dalvik虚拟机,所以Google公司推荐使用主流的Java继承开发环境 Eclipse。有了E
16、clipse还不够,因为使用Java语言进行开发,应该有由SUN公司提供的Java SDK(其中包含了JRE:Java Runtime Environment)。另外,Android的应用程序开发还是和Java开发有一定区别,所以还需有一个Google提供的Android SDK。有了这三个软件就可以开发Android应用程序了。2.2 Android开发平台的搭建Android开发平台搭建步骤很简单,但是和我们的论文没多大关系,所以具体步骤参见附录1。 当平台搭建好以后需要创建一个Android Virtual Device,这一步是很关键的一步,如果不创建这个AVD的话,在Eclipse中
17、编译运行Android应用程序时就会提示找不到AVD,从而无法编译。在DOS界面下运行Android SDK文件夹中tools目录下的android.bat工具,其命令是android create avd name avd15r1 target 2,使用这个命令之后会提示是否创建一个AVD,输入yes之后会提示设置AVD的一些属性,如内存信息等。要说明的是name后面的avd15r1是Android Virtual Device的名字,可以自由选取。而我起这个名字的意义是avd使用1.5r1版本的SDK。简单的几步就将Android的开发平台搭建好了,虽然我使用的是Windows7操作系统,
18、但是方法同样适用于Windows xp等其他Windows 平台。在一个应用程序设计好了以后,点击Eclipse中的run,就可以看到启动了一个叫做avd15r1的Android模拟器,同时,在模拟器中就能找到你所编写的应用程序。3 Android的课程表开发3.1项目需求分析一般课程表应该具备课程表第一次运行时候提醒添加数据功能,拥有数据后自动显示当天课程,如果课程变动要求可以进行修改,要求可以查看整个星期的所有课程,并且同样可以时行课程的修改。3.2项目目录分析assets文件夹用来存放静态文件bin文件夹classes.dex(在Dalvik虚拟机中说过的编译后java二进制代码)Tim
19、eTable.apk(发布到手机的安装包)一个包一样的文件夹用于存放编译后的字节码文件gen文件夹R.java(用它java可访问独立于java的资源文件,系统自动生成)res文件夹drawable文件夹用来存放图片的文件夹,例如图标layout文件夹用来存放布局定义文件,如main.xmlvalues用来存放一些变量和参数的文件src文件夹存放源文件的文件夹,以后定义的java类和一些代码都放在这个文件夹下AndroidManifest.xml3.3系统功能的主要功能实现3.3.1 TimeTable文件:当天课程的显示条件为:如果课程表中没有数据就就弹出菜单,进行数据添加跳转否是开 始判断
20、显示是否添加了课程Timetable文件Edit文件ShowTime.文件WeekDay文件Showtable文件流程图关闭(返回上一级)显示功能是用一个Activity来实现的所以ShowTable这个类要继承于Activity这个基类,显示课程表信息。通过public void onCreate(Bundle savedInstanceState) 方法进行进行判断,如果该课程表数据库中有数据,运行时通过系统时间的判断进行今日课程表的显示,否则直接进入修改课程表页面进行课程表的数据添加,点击功能按键,可以进入整个星期课程表的页面,和整个星期课程管理。3.3.2 Showtable文件:整个
21、星期的课程显示Showtabl流程图WeekDay文件TimeTable.文件ShowTable.文件单击Edit文件关闭(返回上一级)显示功能是用一个Activity来实现的所以ShowTable这个类要继承于Activity这个基类。通过onItemClick(AdapterView arg0, View arg1, int pos, long arg3) 方法,进行一个星期列表的先择,通过菜单按钮可以进行整个星期的课程选择和今天课程的课程表的显示。3.3.4 WeekDay:课程表管理。WeekDay文件ShowTable文件单击弹出选择日期课程课程关闭(返回上一级)显示功能是用一个Ac
22、tivity来实现的所以WeekDay这个类要继承于Activity这个基类。通过protected void onListItemClick(ListView l, View v, int position, long id) 方法,进行一个星期列表的先择,通过菜单按钮可以进行整个星期的课程选择和今天课程的课程表的显示。3.3.5 Edit文件: 课程表的修改和添加 Edit流程图保存文件关闭(返回上一级)Edit.文件显示功能是用一个Activity来实现的所以Edit这个类要继承于Activity这个基类。 public void onCreate(Bundle savedInstanc
23、eState) 进行初始化完成数据库表数据的提取,通过private void writeTable()调用如果没有添加过数据调用private void SQLIn(SQLiteDatabase db, String C_names, String C_addresses),进行数据的插入,否者就是修改文调用private void SQLUp(SQLiteDatabase db, String C_names, String C_addresses)进行数据修改。3.3.6 数据库实现:DataBaseHelper.java 与android的SQLite数据库的建立与数据表的建立。Dat
24、aBaseInfo.java 与Android在SQLite数据库表的访问 总结通过对Android系统的层次上分析以及借助Android提供的Intent机制的应用开发,增进了我对这个新生的系统的了解。在对系统方面的研究中,我明白了Android的应用是怎么在系统上运行的。其中吸引我的地方就是Android的Runtime,在这,我看到了Google设计的Dalvik虚拟机不同于传统Java虚拟机的地方,这个虚拟机在移动终端设备CPU速度低,资源有限的环境下也能很高效率的运行,这无疑也证明了Android这个系统的成功。还有,Android上层采用了Java语言作为开发,让开发更为简单,可以
25、使Java SE阵营的开发者不需要花太多的时间便能转投Android阵营,这样自然的为Android开发提供大量的人力资源。这样才致使Android在短时间内具有大量的应用,同时也使得许多手机生产商使用该系统的原因之一。在对程序的开发中,我理解了Android的Intent机制在应用上的作用。一个应用的多个组件通过Intent机制联系在一起,这样各个组件之间的信息交换提高了,而程序的灵活性也提高了,给开发者的创造空间也增加了。有了Google Android这些很强劲的优势,我想,在不久的将来伴随着3G的普及,Android必定能改变现在只能手机市场的格局,开辟出一个新的世界。参考文献1 陈昱
26、,江兰帆.基于Google Android平台的应用程序开发和研究J.福建电脑,2008(11):156-157. 2 杨丰盛.Android应用开发揭秘M 第一版.北京:机械工业出版社,2010年.7页3 姚昱旻,刘卫国.Android 的架构与应用开发研究J.计算机系统应用,2008(11):110-1 4 姚昱旻,刘卫国.Android 与J2ME 平台间即时通信的研究与实现J.计算机系统应用,2008(12):118-1205 公磊,周聪.基于Android 的移动终端应用程序开发与研究J.计算机与现代化,2008(8):86-89.6 差沙,地狱男爵.用Android 开发手机应用J
27、.程序员,2008(1):25-277 叶达峰. Eclipse 编程技术与实例M . 北京:人民邮电出版社, 2006.8 张超,王阿川,王智. 基于J2ME和J2EE的手机软件的研究 J . 黑龙江科技信息, 2007 (3) : 21, 201.9 刘向辉. 基于Java的移动终端中间件的研究与设计D . 华东师范大学硕士学位论文, 2005.10 刁扣锁. 短信息在嵌入式L inux系统中的设计与实现D . 东南大学硕士学位论文, 2005.11 Android 帮助文档致 谢首先我在这里向养育和培养我的父母表示深深地思念和感谢,再向关心我,帮助我的老师和同学表示感谢! 能顺利圆满地完
28、成我的设计要感谢计算机学院周群彪老师,蔡葵老师,陈正茂老师,吕学斌老师四位老师在毕业设计前期资料搜集,中期毕业设计的撰写,后起毕业设计的修改阶段给予的指导以及宝贵的意见。Based on android files developmentabstract :In todays technology high speed developed, holding the terminal equipment has the simple function from picking up the phone, music, movie, across to game, business, a vari
29、ety of functions. The original transmission has been satisfied no, todays high-speed developed information society peoples needs. The Times Goole development Android is born, Goole see smartphone market opportunity, the Android market, just three years as the rapid development, Android and apple to
30、(iso), nokia (both saiban), BlackBerry (BlackBerry) these phones pedigree were totally unprepared. Android 1.5 development 2.4 from, and tablet computer system, summarizes the development of Android 3.0 in reason mainly because it has five characteristics: firstly, openness, 2, the fetter, break operators three or rich hardware options, four, without any restrictions developers, five, seamless combination of Google applications.Key word: android android features Google