一种移动APP的设计与实现_项目调研报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种移动APP的设计与实现——调研报告
基于Android的移动手机电子词典的开发
小组成员:
前言
随着智能手机与平板的普及,各类语言学习APP成为了汉语学习者的必备工具。其卓越的便携性、快捷方便的查询功能、强大的互联网资源支撑等特点非常好地迎合当下语言学习者移动学习的需求。
一、现有的手机词典举例
有道词典,Google翻译,必应词典,金山词霸,汉王等等。
有道词典,金山词霸等大多具有如下特点:
1)界面整洁美观
2)资源丰富
3)搜索模式灵活多样
4)照相取词
在已上市的电子词典产品中有道词典,海词词典用户数及下载量最多,功能最为全面,提供词库最为完整,界面设计清晰易用,但客户端数据包占用空间很大,且使用过程中需要传输的网络内容较多,使用网络流量较大,对手机用户的网络流量及网络传输速度要求较高。其它如21世纪英汉双解词典、深蓝词典等功能较为单一,有的不支持发音,有的没有生词本及收藏功能。因此电子词典在移动平台的开发仍然有很大用户需求及市场潜力,值得企业继续投入,而伴随着Android系统逐步占领市场份额的脚步,Android手机电子词典能为更多用户提供英语学习的帮助,创造更大的社会价值。
二、主要技术介绍与分析
1、Android操作系统
Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。它是Google推出的开源手机操作系统,由30多家科技公司和手机公司组成的“开放手机联盟”共同研发。Android是第一个完整、开放、免费的手机平台,其具有5个突出特点:
1)开放性:Google与开放手机联盟合作开发了Android,Google希望与运营商、设备制造商、开发商和其他有关方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台、在移动产业内形成一个开放式的生态系统。
2)应用程序无界限:Android上的应用程序可以通过标准API访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用。
3)应用程序在平等的条件下创建:移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。
4)应用程序可以轻松嵌入地嵌入网络:应用程序可以轻松地嵌入HTML、JavaScript和样式表,还可以通过WebView显示网络内容。
5)应用程序可以并行运行:Android是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引起注意。
Android的系统架构和其它操作系统一样,采用了分层的架构。从架构图看,android 分为四个层,从高层到低层分别是应用程序层(Application)、应用程序框架层(Application Framework)、系统运行库层(Libraries)和Android运行环境(Android Runtime)以及Linux 核心层(Linux Kernel)
(1)应用程序层
Android最上层的应用是由Java编程语言开发的,如Android系统预置的电话、联系人、短信、邮件客户端、浏览器、同历、地图等。这些应用被编译成DEX文件后运行在各自独立的Dalvik虚拟机上,也就是下面提到的运行时(RunTime)层。
(2)应用程序框架层
Android通过提供一个开放的开发平台,使得开发人员有能力创建一个丰富而创新的应用。开发者可以灵活地使用硬件设备,如地理定位、后台服务、通知栏提醒等,发挥硬件和平台的优势。,开发人员开发的应用可以与核心应用一样,平等地使用框架层API。应用程序框架旨在简化组件重用,在框架安全限制内,应用间可以复用组件模块。
所有的应用都是一套服务和系统组成的:
1) 一套丰富又具有可扩展性的视图,用来构建应用程序,包括列表,网格,文本框,按钮,以及嵌入式Web浏览器。
2)内容提供器(Content Providers)使得应用程序可以访问其他应用的数据(例如联系人),也可以将自己的数据提供给其它的应用程序。
3)资源管理器(Resource Manager)使得应用程序可以访问所需资源,如字符串(string),页面布局(1ayout),图片等。
4)通知管理器(Notification Manager)使应用程序可以自定义在状态栏中显示的提醒信息。
5)活动管理器(Activity Manager)负责管理应用程序的生命周期,并且提供了常用的导航回退栈
3)系统运行库和Android运行环境(Libraries and android runtime)
Android包含一套用于系统组件的C/C++运行库,这些接口通过应用程序框架层暴露给开发人员。这里列出一些核心库:
1)系统C函数库:一个从BSD继承而来的标准C系统函数库,专门为嵌入式Linux设备定制。
2) 多媒体库:基于PacketVideo’s 0penCORE;该库支持多种音频和视频格式的回放和录制,同时支持静态图像,如MPEG4,H.264,MP3,AAC,AMR,JPG PNG。
3)Surface Manager:管理显示子系统,提供多应用程序的2D和3D图像的无缝拼接。
4)LibWebCore:支持Android浏览器和嵌入式web view的现代web浏览器引擎。
5)3D libraries:OpenGL ES1.0APIs的一个实现;该库使用硬件加速(若可用)或者高度优化的3D软件光栅。
6)Freetype:位图和矢量字体渲染。
7)SQLite:对所有应用程序可用的强大的轻量级关系型数据库引擎。
每一个Android应用程序都运行在一个独立的进程中,拥有一个单独的Dalvik虚拟机实例。Dalvik被设计使得设备可以高效地运行多个虚拟机。Dalvik 执行.dex格式的文件,这种优化过的文件占用更少的内存空间。Dalvik是基于寄存器的,所有类都是由Java编译器编译,通过SDK中的“dx”工具转化为.dex 文件,然后由虚拟机执行。
(4)Linux核心层
Android的核心系统服务依赖于Linux2.6内核,所提供的核心系统服务如下所述:
1)安全性(security)。
2)内存管理(Memory Management)。
3)进程管理(Process Management)。
4)网络协议栈(Network stack)。
5)驱动模型(Driver Model)。
Linux内核也同时作为硬件与软件架构之间的抽象层(Abstraction Layer)。
2.SQLite数据库
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、c#、PHP、Java等,还有ODBC接口。
Android作为目前主流的移动操作系统,完全符合SQLite占用资源少的优势,故在Android平台上,集成了这个嵌入式关系型数据库—SQLite。
SQLite由以下几个组件组成:SQL编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展SQLite的内核变得更加方便。
Activites可以通过C0ntent Provider或者Service访问一个数据库。但Android不自动提供数据库。在Android应用程序中使用SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android提供了SQLiteOpenHelper 帮助你创建一个数据库,你只要继承SQLiteOpenHelper类,就可以轻松的创建数据库。
SQLiteopenHelper类根据开发应用程序的需要,封装了创建和更新数据库使用的