您当前的位置:首页 > 计算机论文>软件开发论文

Android的架构与应用开发研究

2015-06-10 09:27 来源:学术参考网 作者:未知

  为了能够抢占手机市场的份额Google 决定同三十几家市面知名的手机发行商,当然其中包括老牌的手机名牌厂家摩托罗拉、三星、LG,以及为知名产品长期供应手机芯片的商家和移动运营商之间建立起一只强有力的联盟,该联盟被称为OHA。联盟成员都会将Android 作为主要新型机器的手机系统,从此Android 系统平台开始成为另一个新兴的手机平台。通过它自由开放的特性,操作系统、用户界面、应用程序三位一体的高效组合,为现代都市人创立了一种更具有吸引力的移动终端,研发人员可以根据随时的需要适宜的更改源代码,使系统更具开放性。使手机与计算机或是更高技术相似度拉近,开创了移动电话最大程度的功能使用量,更多的功能不断地冲击着人们的娱乐底线,让跟多的人从中感受到系统的无穷魅力,在强大的竞争优势下,塞班和微软被双双击败,自然抢占了跟多用户的购买力。

  1. Android 平台的架构

  Android 平台主要由四个重要组成部分将其架构起来,分别是Linux 内核层、Android运行时库和其他库层、应用框架层、应用程序层。由四个核心部分形成了开发性、应用程序的兼容性,应用程序可以互相使用某些相交程序、强大的系统是使用更具简便性四大强有力的核心优势。详细架构可参看图1。

  图1 Android平台的结构

  1.1 Linux 内核层

  Android 在最初是借助了Linux version 的2.6.23内核来进行技术加工拓展,从而实现整体Android 系统的最基础工作,所以它需要Android 特有的驱动码。Linux 最主要的区别是在原始系统的基础上加入了一个虚拟的CPU ,为了来满足系统运行的内存速度和内存的空间。Linux 内核层主要负责的领域是系统运行的安全稳定性、内存使用的基本管、程序运行的进程管理、网络堆栈、附带着要对驱动的模块处理负责。作为一个独立体,虚拟的存在于软、硬件之间来调节平衡,虽然是套用了Linux 系统但是最终的系统是只能够针对Android 具有兼容性,所有的标准和接入系统都与原系统不同,在识别的过程中应该引以注意。在Linux 内核层中最明显体现出开放性的是其摒弃了虚拟内存文件的形式而是大胆选用了YAFFS2(Yet Another Flash Rle System) 文件系统,在研发最初是为了能够运用到NAND Flash 设计的文件系统中,并且其可复制移动的特性更是深得设计研发人员的钟爱,与YAFFS2 相类似的同种文件系统YAFFS 是日志型文件YAFFS 的另一个分支,之所以没有将YAFFS 运用到Android 是由于YAFFS 更适用于小页面的运行一般是528字节/页,而Android 则需要2k+64字节/每页,近乎四倍的数量,如此大容量的NAND Flash ,使Android 手机无疑的选用了YAFFS2 的支持。

  1.2 Android 运行时库和其他库层

  Android 系统中有一个能偶对Java 语言系统提高多种功能的核心库,这个核心库连同Dalvik 虚拟机一起构成为运行时库,为手机系统提供了更为宽泛的开源代码,这个运行时库不需要像其他系统软件一样安装,并且无需去介意它的管理配置,通过一个相对独立完整的250KB小数据库来完成对于2TB的数据库支持,只是单一磁盘上的小文件却是为Android 提供了诸多的选取它作为移动终端的嵌入式数据库的理由,无论从速度上还是在服务的范围上都能够使Android 系统增色不少,同时也是能够适合Android 系统运行的不二之选。

  1.3 应用框架层

  从应用框架层来说,能够基于开发人员对于应用程序接口框架的访问权限很广,几乎是可以任意进入。并且应用框架能够最大程度的将各个系统的构件充分发挥自我的价值,掌管专门性的功能,不会造成构架能量的重复使用,但是应用框架分发出来的组件却可以被所有构架共享,可谓是单独生产加工,集中式供应使用。

  1.4 应用程序层

  虽然Android 系统借来了很多的高手来丰富其战斗力,但是其自身也是存在着很强的技术和战术。这些技术主要还是多出现在应用程序内,包括Java 公司全权代理研发的包括e-mail客户端、短信程序、日历、地图、浏览器、通讯录等等。

  2. Android 应用程序的基本组件

  在Android 系统中,起到关键作用以及核心地位的是其应用程序,包括手机使用中大部分基础功能,能够维持应用程序正常有效运行的组件主要有Activity 活动、Service 服务、Broadcast Receiver 广播接收器和Content Provider 内容供应处理器四部分,另外通过Intent 组件将他们之间紧密的联系起来,为任意部件需要做信息有效的传递工作。下面来详细的介绍五个部分的相关问题。

  2.1 Activity 活动

  所有通过手机界面能够显示出现在屏幕上的图像都是由Activity 实现表示层的组件功能实现的,虽然Activity 活动是最基本的组件,但是可以通过延伸和无限的扩张来实现更复杂多变的图像组合,其活动领域主要是借助了有关View 的各种有效成分出现在手机上的各种图形,更具体的说是GUI 图形用户界面,GUI 是使用者与应用程序直接互动的媒介,在手机的界面罗列出可被执行的有效应用功能,用户要通过GUI来对手机操作并使其执行所需的功能,应用程序通过GUI 来知晓用户端发出的要求从而进行应用程序的运行。所以Activity 负责的是基础性的表示层工作。

  2.2 Service 服务

  Service 功能是满足用户在同一时间可以运行不同的程序,虽然不能够在同一界面同时显示,但是却不影响其共同运行,所以Service 更多的是负责后台的工作,并没有能够与用户之间彼此传达信息的界面。在手机使用中,很多用户喜欢将音乐长久的处于播放状态,同时还要进行比如进行娱乐游戏,电子浏览器查阅等任意的使用功能,这样音乐处理器就是进行后台的运行工作,也就是Service 在应用程序中的体现。

  2.3 Broadcast Receiver 广播接收器

  Broadcast Receiver 是能够将手机的目前的运行状态、出现任何有待解决或者异常的行为及时的告知手机的使用者以便使用者能够根据具体的情况做出调整。Broadcast Receiver 并不会单一的只对当前操作的应用程序提出广播,另外可以同时对手机系统的整体任意的部分并且同时多数量的广播,只要是出现情况的组件都会进行广播。比如在使用手机的过程中可能会使用操作上失误,手机就会提醒无此选项,在短信的发送完成之后,手机系统会提示已发送或发送成功,当存入大量的信息后,手机会提示您的内存已满等等提示类的信息。与Activity 相类似都是又基类为源拓展为不同组件的通知形式。

  2.4 Content Provider 内容供应处理器

  Content Provider 将应用程序的特定数据提供给其它应用程序使用,数据的存储方式可以是Android 文件系统、SQlite 数据库或者别的合适的方式。

  2.5 Intent

  Intent 是一种运行时绑定机制, 它能在程序运行的过程中连接两个不同的组件。

  3. 开发实例

  3.1 在Eclipse 下创建一个基于Android 2.2 版本的新项目MySMS。

  3.2 修改用户界面。修改res/layout/main.xml 文件的内容,从上到下分别增加文本域、一个用来输入号码的可编辑文本框、文本域、用来输入短信内容的可编辑文本框和一个用来发送短信的按钮框,实现短信发送程序的主界面。

  3.3 设置权限。在AndroidManifest.xml 中添加发送短信权限的声明, 代码为

  3.4 实现短信发送功能。关键代码为

  btnSendSMS.setOnClickListener(new View.OnClickListener()

  {

  public void onClick(View v)

  {

  String phoneNo = txtPhoneNo.getText().toString();

  String message = txtMessage.getText().toString();

  if (phoneNo.length()>0 && message.length()>0){

  Log.v("ROGER", "will begin sendSMS");

  sendSMS(phoneNo, message);}

  else

  Toast.makeText(TinySMS.this, Toast.LENGTH_LONG).show();

  }

  });

  其中使用一个叫做send SMS 的方法来实现短信的发送,关键代码为

  private void sendSMS(String phoneNumber, String message)

  {

  PendingIntent pi = PendingIntent.getActivity(this, 0,

  new Intent(this, TinySMS.class), 0);

  SmsManager sms = SmsManager.getDefault();

  sms.sendTextMessage (phoneNumber, null, message, pi, null);

  }

  当用户按下" 发送信息" 键之后, 用户界面会重新回到MySMS 的初始界面。

  3.5 运行结果。

  在Eclipse 中运行程序, 系统会启动一个Android 模拟器, 通过Windows 的命令行再启动另外一个Android 模拟器,这样两个模拟器就可以实现两个手机间的电话或者短信的功能。每个模拟器左上角的数字代表了该模拟器的电话号码,MySMS 运行的模拟器号码为5554, 通过命令行启动的另一个模拟器号码为5556。

  4. 总结

  Android 智能手机平台无论对于使用者还是对于设计开发人员来说都能够给予更大的自由空间,开放和兼容为更多软件开发论文发表手机提供了引入的最好契机,同时随着Android 在联盟中名牌手机中在市场受到很好的收益,使得更多的开发设计者和手机供应商将注意力不断的向其倾斜,本文通过对Android 系统的有效构架分析来呈现其区别于其他系统的优势,并利用短信系统的实例介绍在实际中的应用。Android 具有很好的发展态势,未来可能在更高的领域内发挥更高的技术。

  参考文献:

  [1] 胡伟. Android系统架构及其驱动研究[J]. 广州广播电视大学学报, 2010,(04) .

  [2] 李林涛,石庆民. Android智能手机操作系统的研究[J]. 科技信息, 2011,(25) .

  [3] 宋小倩,周东升. 基于Android平台的应用开发研究[J]. 软件导刊, 2011,(02) .

  [4] 杨凤年, 何文德, 周景, 刘华富. 手持设备应用软件开发课程教学方法研究[J]. 中国教育技术装备, 2011,(24).

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页