会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。
(5)Google应用
在互联网的Google已经走过10年度历史,从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务[7]。
综上所述,Android系统的发展与成熟时大势所趋,精通基于Android平台上应用软件的开发技术,也是紧随时代发展脚步的当务之急。
1.5 本文主要结构
本篇文章共分为四个章节,从开端到结尾循序渐进地论述了基于Android平台开发应用软件的过程。各个章节涵盖内容如下。
第一章:绪论。向读者展示了Android的由来和历史,列举了从发布至今Android SDK各个版本及其新特性,引用数据说明了Android的现状及前景,讨论了这类课题的研究意义。
第二章:介绍了Android系统的架构,Android的四大组件,以及开发常用的一些控件。
第三章:对日历系统进行需求分析,根据需求设计系统功能,例举其中的核心代码介绍系统是如何实现的,实现后对日历系统进行了测试。
第四章:对整个论文的工作过程进行了总结,讨论了Android的不足,并对其发展趋势进行展望。
2 Android系统核心技术概述
2.1 Android的体系结构
在Android操作系统中,将体系结构划分为四层;应用层(Application)、应用框架层(Application Framework)、系统运行库层(Libraries)以及Linux内核层(Linux Kernel)。这四层架构如图2-1所示[8]。
图1-6 Android的体系结构
(1)应用层(Application)
应用层是和用户交互的一个层次,用户可以看得见的一些应用,用户可以操作。这类应用基本都是通过Java语言编写的独立的能够完成某些功能的应用程序。Android本身提供了桌面(Home),联系人(Contacts),拨打电话(Phone),浏览器(Browsers)等很多基本的应用程序。开发人员可以使用应用框架提供的API编写自己的应用程序,普通开发人员要做的事情就是开应用层的程序提供该广大消费者使用。
(2)应用框架层(Application Framework)
普通开发者可以使用Android基本应用程序使用的系统API,android 应用框架中的各个模块都可以被复用,各种服务也可以被复用,理解了这个机制,开发人员可以更好的更轻松的开发出优秀的android应用。开发过程中常用到的基本框架组件如下;
1)一组View(UI 组件),这些UI组件包括Button(按钮),EidtView(文本框),TextView(标签),List(列表)等等,灵活运用这些组件可以快速方便的创建良好的用户交互界面。
2) Content Providers(内容提供者),听起来有点抽象,通俗的理解Content Provider 就是提供一种服务,通过这种服务应用程序之间可以实现数据的互相访问和共享,比如通讯录的存储就使用了这种服务,其它应用也可以访问通讯录中存储的联系人信息。
3) Resource Manager 顾名思义就是资源管理,android中的资源很多包括图片,用户界面(Layout xml),字体,颜色,UI组件的ID等等都可以称之为资源,这些丰富的资源,都是通过Resource Manager来统一进行管理。
4) Notification Manager(消息通知管理),它在不影响用户正常操作和使用设备的时候在状态栏上提供消息的提示。比如有短信来的时候,android自动会将这个消息提示在状态栏上,用户可以及时的看到。
5) Activity Manager(活动管理),Activity管理着应用程序的生命周期,并且控制着应用的导航,扮演控制器的角色。每个Activity类似于Windows应用中的一个wendow。一般的应用都是通过一个个Activity交互构成的。
6) Window Manager(窗口管理),管理所有启动的窗口。
7) Location Manager(位置管理),用来管理地图服务的相关功能。
8) Telephoney Manager(电话管理),用来管理有关的电话的相关功能。
9) Package Manager(包管理),管理所有的安装在android系统内的应用程序。
(3)系统运行库层(Libraries)
这部分内容开始涉及底层,开发普通的应用不会直接对这个层进行操作。这层中包含了一组类库(Libraries)和运行时(RunTime)。
1)系统C库(libc),一个从BSD集成来的标准C系统函数库(libc)它是专门为基于嵌入式Linux的设备定制的。
2)媒体库(Media Framework),基于PackeVideo OpenCore,该库支持多种常用的音频,视频格式以及回放和录制,同时支持静态图像文件。编码格式包括;MPEG4、H.264,MP3、AAC、AMR、JPG、PNG。(3)Surface Manager 对显示子系统的管理,并且为多个应用提供2D,3D图层的无缝融合。
4)WebKit,一个最新的web浏览器引擎,用来支持Andiroid浏览器或者嵌入的web视图。
5)SGL 底层的2D图形引擎。
6)OPENGL|ES,基于OpenGL ES 1.0 APIs实现,该库可以使用硬件3D加速或者使用高度优化的3D软加速。
7)FreeType,位图(bitmap)和适量(vector)字图显示支持。
8)SQLite,一个对所有应用程序可用,功能强大的轻量级关系型数据库引擎。
9)Core Libraries 该核心库提供了Java编程语言核心库的大多数功能。
10)Dalvik VM,android平台的一个虚拟机,它相当于PC中Java的虚拟机JVM。
(4)Linux内核层(Linux Kernel)Android 的核心系统服务依赖于Linux 2.6 内核,操作系统为Android提供的服务包括;
1)安全性(Security)。
2)内存管理(Memory Management)
3)进程管理(Process Management)
4)网络堆栈(Network Stack)
5)驱动程序模型(Driver Model)
对android的整体框架有一定的了解后对与理解android的一些机制和应用开发有很大的帮助,只有了解了android框架才能更好的使用android提供的功能和服务。从而使学习android应用开发少走弯路[9]。
2.2 Android系统组件
一般情况下,有四种组件组成Android应用程序;活动--Activity、广播接收器--Broadcast Intent Receiver、服务--Service和内容提供器--Content Provider。应该重视的是,并非每个Android程序都需要构建该4个组件,确定要应用的组件,应该在AndroidMani-fest.xml中列出,它是XML配置文件,可定义程序中的组件的必要条件及功能。最基本的组件就是活动,每个活动往往是一个单独的屏幕,每个活动均被实现为独立的类,还由活动基类中继承过来。活动类可以显示通过视图控件构成的用户接口,同时就事件发出响应;广播接收器能够使应用程序就外部事件发出响应,服务在Android中拥有比较长的生命周期;内容提供器是对外提供数据的一个借口, 类似于普通Web运用的Web service借口,根据标准开放出接口,使另外的应用取得数据。
(1) Activity 简介
在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。
(2) Service 简介
顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidM
上一篇:
基于Android智能家居详细设计(经典)
下一篇:
试论APP广告在手机中的应用