基于Android平台的移动应用的研究与开发
【摘 要】本文首先分析了Android平台的系统架构ฌ和组件模型,解析了Android平台中的重要API和应用构成,探讨了Intent和生命周期的机制。在此基础上,基于Android平台设计和开发了个人随身通讯录软件,系统界面友好、操作便捷,具有良好的可扩展性和可维护性;系统经过测试,可以稳定运行,能够满足手机用户的基本需求。
【关键词】智能;Android;随身通讯录
Research and Development of Mobile Application Development Based on Android Platform
DONG Yuan-quan XU Li
(Shazhou Professional Institute of Technology, Zhangjiagang Jiangsu 215600, China)
【Abstract】This paper firstly analyzes the system architecture and the component model of Android platform, analyses the structure of API and application in Android platform, discuss the mechanism of Intent and life cycle. design and develop a personal mail list software based on the Android platform , the system has friendly interface, convenient operation, has good expansibility and maintainability of the system after the test, can stable operation, to meet the basic needs of mobile phone users.
【Key words】Intelligent; Android; Personal mail list
0 引言
随着智能手机走进普通人的生活,它已成为人们获取信息的主要设备。Android是一套真正意义上的开放性移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用[1]。Android 平台的开放性等特点既能促进技术的创新,又有助于降低开发成本,还可以使运营商能非常方便地制定自己的特色化的产品。
1 Android体系架构
1.1 应用层
在应用层可以使用Java语言进行各种应用程序的开发。
该层为系统提供了很多的API,它包括:Activity Manager,Window Manager,Content Providers,View System等管理功能。
1.3 核心库和运行环境层
Android应用框架需要系统底层的一些C/C++库的支持。这些库包括:Bionic系统C库,多媒体库,SGL,SSL,OpenGL ES1.0,SQLite,Webkit,FreeType。在Android操作系统中,每个Java程序都运行在一个独立的Dalvik虚拟机上。Dalvik被设计为一个设备,可同时高效地运行多个虚拟系统。它¡在保证API方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。
图1 Android系统结构图
1.4 操作系统层
该层包括显示驱动、键盘驱动、USB驱动、Flash内存驱动等各种设备驱动。
2 Android的功能特征
2.1 应用程序架构
在应用程ღ序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的精力及时间。
2.2 集成的浏览器
集成的浏览器是Android内建的浏览器,以WebKit的浏览引擎为基础所开发成的[3]。WebKit是一个开源浏览器网页排版引擎,配合Android手机功能,可以在浏览网页时,达到更好的效果。
2.3 优化的绘图能力
在2D方面,Android提供了一套特有的类库SGL;而在ฟ3D方面则是使用OpenGLES1.0(openGL for Embedded systems)规范的类库,它们是一种非常快的图形引擎,并且支持硬件加速。
2.4 SQLite数据库
SQLite提供结构化的数据存取。SQLite是一款轻型的数据库,支持SQL语句。同时它还支持事务功能和并发处理等等,适合在手机上使用。
2.5 多媒体的支持能力
主要用于播放媒体文件。这同时包括对音频(如播放MP3或其他音乐文件等)和视频(如播放从网上下载的视频)的支持,并支持“播放URI地址”模式,在网络上直接播放的流媒体。另外支持各种通用的静态图像格式,例如:JPG、PNG、GIF等格式。
3 Android应用的构成和工作机制 对于一个Android应用程序来说,是由活动Activity、意图接收器Intent Receiver、服务Service、内容提供者Content Provider四部分组成[4], 然而,并不是所有的Android应用程序都必须具备上面的四个组件,可以包含一个或几个。当决定使用以上哪些组件来构建Android应用程序时,需要将它们注册在AndroidManifest.xml文件中,在这个文件中可以声明应用程序组件以及它们的特性和要求。
3.1 活动Acitvity
活动是以上四个组件中最常用的一个。每个活动都是Activity的子类,并实现了一些独有的功能,如管理UI显示和UI的反馈事件。一个活动就相当于应用程序的一个用户界面,由事件响应以及视图等组成。大多数的应用程序通常包括多个界面。Android通过一个被称作意图的特殊类,来实现界面与界面之间的跳转。一个意图描述了一个应用程序想要做什么。通常意图过滤器要被注册在AndroidManifest.xml文件中。从一个界面跳转到另一个界面是由解析各种意图实现的。
3.2 意图接收器Intent
当想要编写代码来对外部事件做一些处理时,可以使用意图接收器。意图接收器并不显示UI界面,它是通过Notification Manager来通知用户他们感兴趣的事件发生了。意图接收器同样可以被注册在AndroidManifest.xml文件中,同时也可以在代码中使用Context.register Receiver()来注册自己的意图接收器。当一个意图接收器被触发时,系统会根据需要来启动应用程序。
3.3 服务Services
服务是具有长生命周期并且没有用户界面的代码[5]。
3.4 内容提供者Content Provider
Content Provider可实现应用程序的数据存取及不同应用程序之间的数据共享。每个Content Provider都有一个公共的URI,这个URI用于表示这个Content Provider所提供的数据。
4 基于Android平台的个人随身通讯录的设计与实现
4.1 功能分析
系统主要的功能是联系人的信息管理,查找和删除联系人,给联系人拨打电话,发送信息,发送邮件。
4.2 文件结构与用途
表1 文件用途
4.3 工程的文件用途说明
Android的资源文件保存在/res的子目录中。其中/res/anim目录中保存的是产生动画效果的XML文件,/res/drawable/目录中保存的是图像文件,/res/values目录中保存的是用来自定义字符串和颜色的文件,/res/xml目录中保存的是XML格式的数据文件,/res/layout目录中保存的布局文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中。
4.4 系统的主要模块
图2 系统文件结构
4.4.1 主界面Activity_main.java
当安装本系统后,按下Menu键出现系统主界面,关键代码如下:
public class Activity_main extends Activity {
ListView lv; // 显示所有数据的ListView
GridView bottomMenuGrid; // 主菜单的布局
……………
String[] activity_main_menu_itemName = { “显示所有”, “删除所有”, “备份数据”, “还原数据”, “后退” };// 菜单文字
int[] activity_main_menu_itemSource = { R.drawable.showall,
R.drawable.menu_btn_delete,R.drawable.menu_backup, R.drawable.menu_restore,
R.drawable.menu_fresh, R.drawable.menu_return };// 主菜单图片
String[] bottom_menu_itemName = { “增加”, “查找”, “删除”, “功能”, “退出” };
String fileName;
int[] bottom_menu_itemSource = { R.drawable.menu_new_user,
R.drawable.menu_search, R.drawable.menu_btn_delete,
R.drawable.controlbar_showtype_list,R.drawable.menu_exit };
先声明了用到的组件。从代码中可以看出,MainActivity的主要功能就是软件的导航栏。
4.4.2 增加联系人列表AddnewContact.java
增加联系人的主要代码如下:
btn_btn_save.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if (!flag) {
btn_btn_save.setText(“保存修改”);
setEditTextAble(); flag = true;
et_name.setFocusable(true);
et_name.setFocusableInTouchMode(true);
et_name.requestFocus();
et_name.requestFocusFromTouch();
} else {
setTitle(“modify”);
modify();
setEditTextDisable();
setColorToWhite();
btn_btn_save.setText(“修改”);
flag = false;
et_name.setFocusable(false);
et_name.setFocusableInTouchMode(false);
}
}
});
其余功能的代码此处不再赘述。
4.4.3 程序配置文件AndroidManifest.XML:
?xml version=“1.0” encoding=“utf-8”?
manifest xmlns:android=“http://schemas.android.com/apk/res/android”
package=“com.zhengping.contact”
…………
application
android:icon=“@drawable/androidcontact”
android:label=“个人通讯录”
activity
android:name=“.Main”
android:label=“个人通讯录”
intent-filter
action android:name=“android.intent.action.MAIN” /
category android:name=“android.intent.category.LAUNCHER” /
/inten シt-filter
/activity
activity android:name=“.UserDetail” /
activity android:name=“.AddNew” /
activity android:name=“.MainPrivacy” /
/application
uses-permission android:name=“android.permission.CALL_PHONE”
/uses-permission
uses-permission android:name=“android.permission.WRITE_ EXTERNAL_STORAGE”
/uses-permission
/manifest(下转第208页)
(上接第167页)5 结束语
本文分析了Android应用程序的架构,介绍了Android应用程序开发的相关技术和流程,并通过一个具体的实例来说明Android应用开发的具体过程;随着智能手机的发展,研究基于Android平台的应用开发具有重要的意义。
【参考文献】
[3]高胜寒.基于Android平台webkit核心的浏览器的设计与实现[D].电子科技大学,2012.
[4]黄思沛.基于Android的校园应用的设计初探――以校园活动平台为例[J].电子世界,2014,7:141-143.
[5]刘瑾,刘一玮,李h.基于Android平台的WiFi管理软件的设计与实现[J].计算机光盘软件与应用,2014,17
(17):75-78.