基于面向对象语言的安卓软件开发的探析

(整期优先)网络出版时间:2019-03-13
/ 2

基于面向对象语言的安卓软件开发的探析

刘春艳

山东协和学院工学院山东济南250107

摘要:随着半导体技术的发展,从最早使用8086、8088的汇编语言,到使用8051、8052的C语言,再到使用java语言的arm平台,给人们带了越来越便利的生活的同时,也给技术开发人员带来了更加简洁快速的开发环境。Android操作系统基于Linux,主要支持移动设备。本文主要研究面向对象语言下安卓平台的软件开发,尤其对于app的开发有着重要的指导意义。

关键词:面向对象;安卓;java;软件开发

1面向对象语言

面向对象语言(Object-OrientedLanguage)是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分。面向对象在开发软件上有着独一无二的优势,早期的计算机编程是基于面向过程的方法,例如完成算术运算,通过设计算法可以解决。随着计算机技术的发展,计算机可用于解决更复杂的问题。一切事物都是对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承[1],帮助人们实现对现实世界的抽象与建模。

通过面向对象的方法,对复杂系统进行分析、设计与编程,更易于被理解。同时,面向对象能有效提高编程效率,通过封装技术,消息机制可以快速开发出一个新系统。对象指的是类的集合。它把对象作为程序的基本单元,将程序和数据封装里面。例如,我们要编写一个电子钟的功能,那么按照面向过程的思想,要写上严谨的逻辑,由秒到分有着明确的进位逻辑;若按照面向对象的思想,只要写一个电子钟的父类,由父类去定义一个子类,子类直接执行点钟的功能即可。所以在思想上,面向对象更适合人类的思考,开发的速度也更快。

2安卓系统概述

安卓系统是现在常用的移动互联网承载系,广泛应用于手机、平板电脑、电视等家电和移动设备。由于安卓系统的开源性,在迅速占领市场的同时,也给各大终端厂商提供了差异化的软件设计需求,使得安卓系统多种多样,丰富多彩。从代码结构上区分,安卓系统可以分成四个层面:从下到上分别为:内核层、系统运行库和虚拟机、应用程序框架层、应用层。

2.1内核层LinuxKernel

Android基于Linux2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。LinuxKernel作为硬件和软件之间的抽象层,隐藏硬件细节为并上层提供统一服务。

2.2系统运行库和虚拟机OSLibraries&Dalvik

Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能[2]。每个Android应用程序是Dalvik虚拟机的实例,运行在自己的进程中。Dalvik设计成在一个设备可高效运行多个虚拟机,它的可执行文件格式是.dex,.dex是专为Dalvik设计的压缩格式,适用于内存和处理器速度有限的系统。

大多数虚拟机都是基于栈的,而Dalvik是基于寄存器的。两种架构各有优缺点,一般基于栈的机器指令多,基于寄存器的机器指令大。dx是一套工具,可以将Java.class转换成.dex格式。一个.dex文件通常会有多个.class。dex有时须进行最佳化会使文件大小增加,以ODEX结尾。Dalvik依赖于LinuxKernel提供基本功能。

2.3应用程序框架ApplicationFramework

通过提供开放的开发平台,Android使开发者能编写相当丰富的应用程序。开发者可以利用设备硬件优势、运行后台服务、向状态栏添加通知等。开发者可用核心应用程序所用的框架APIs。应用程序的体系结构目标在于简化组件的重用,任意应用程序都能发布他的功能且任意其他应用程序可用这些功能(需服从框架执行的安全限定)。这一机制允许用户替换组件。

2.4应用层Applications

Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、地图、浏览器、联系人等设置。所有应用程序均用Java语言编写。已知Android架构分层清晰,分工明确。Android本身是一套软件堆叠(SoftwareStack),也常称为“软件叠层架构”,叠层主要分三层:操作系统、中间件、应用程序。由此常见的开源软件在这里贡献自己的力量。

3基于安卓的软件开发

目前安卓的主流开发软件有eclipse和androidstudio。androidstudio是google开发的专用的安卓系统开发软件,目前对此款软件的支持也比较到位。现在使用的开发语言是java,这是面向对象思想中比较常用的高级编程语言。

目前使用java语言去开发安卓是常用的方式,目前开发安卓常用四大组件:

(1)Activity

Activty实际上就是我们所说的UI,Android系统实际上对Activty的各种空间都做了父类的详细定义,通过面向对象的语言,可以很好的去继承和修改自己的父类,然后做出更加漂亮的UI。这样大大减少了软件的开发时间。

(2)BroadcastReceive广播接收器

应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应[3]。广播接收器没有用户界面,但可启动一个activity或service来响应接收的信息,或通过NotificationManager来通知用户。通知可以采用诸如震动、闪光、声响等很方式来引起用户的注意。一般在状态栏上放可打开的图标,用户可以通过它获取信息。

(3)Service服务

一个Service是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序[3]。以媒体播放器为例,在它的应用中有多个activity,使用者可选择播放歌曲。但音乐重放功能没有对应的activity,因使用者认为在导航到其它屏幕时音乐还在继续播放。本例中的媒体播放器这个activity使用Context.startService()来启动一个service,从而在后台保持音乐的继续播放。与此同时,系统将保持这个service的执行,直至结束。

(4)ContentProvider内容提供者

Android平台提供了内容提供者使一个应用程序的指定数据集提供给其他应用程序。这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式[4],其他应用可通过ContentResolver类从该内容提供者中获取或存入数据,只有当需在多个应用程序之间共享数据时才需要ContentProvider。

4结束语

Android这几年的发展可谓有目共睹,每天的设备激活数目就达到了几十万台,所以无论是工程使用还是学术研究上都有着十分重要的意义,本文重点介绍了面向对象语言的思想以及基于此种语言的安卓系统的架构和软件开发,对于app的开发有着重要的指导意义,相信会有更多更加优秀的安卓软件服务大众的生活。

参考文献:

[1]林国慧.面向对象的动漫图像处理系统的设计与实现[D].湖南大学,2015.

[2]谷丁云.基于Wi-FiDirect的对等的移动社交网络软件平台设计与原型实现[D].南京邮电大学,2013.

[3]手机软件开发技术[M].重庆大学出版社,周士凯,2015.

[4]Android微博应用开发实践[M].西安电子科技大学出版社,孙弋,2014.

作者简介:

刘春艳,1986年12月生,女,硕士毕业于山东科技大学,山东协和学院机电工程学院,讲师,主要研究方向:电子信息工程。