上载 Android手机软件控制系统.docx

上传人:b****6 文档编号:8370762 上传时间:2023-01-30 格式:DOCX 页数:38 大小:1.96MB
下载 相关 举报
上载 Android手机软件控制系统.docx_第1页
第1页 / 共38页
上载 Android手机软件控制系统.docx_第2页
第2页 / 共38页
上载 Android手机软件控制系统.docx_第3页
第3页 / 共38页
上载 Android手机软件控制系统.docx_第4页
第4页 / 共38页
上载 Android手机软件控制系统.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

上载 Android手机软件控制系统.docx

《上载 Android手机软件控制系统.docx》由会员分享,可在线阅读,更多相关《上载 Android手机软件控制系统.docx(38页珍藏版)》请在冰豆网上搜索。

上载 Android手机软件控制系统.docx

上载Android手机软件控制系统

1.前言1

2.Android相关技术介绍2

2.1Android简介2

2.1.1Android是什么2

2.1.2Android的发展历史2

2.2Android架构分析3

2.2.1最底层-LinuxKernel层3

2.2.2Android Runtime3

2.2.3Libraries4

2.2.4Application Framework 应用框架4

2.2.5Applications5

2.3Android应用的构成和工作机制5

3.Android开发环境的搭建6

3.1JDK的安装和JAVA环境变量的设置6

3.1.1JDK下载地址6

3.1.2配置JAVA_HOME环境变量6

3.1.3配置PATH环境变量6

3.1.4配置CLASSPATH环境变量7

3.1.5验证JDK是否安装成功8

3.2安装Eclipse8

3.2.1Eclipse下载地址8

3.3安装AndroidSDK9

3.3.1AndroidSDK下载地址9

3.3.2配置环境变量9

3.3.3导入SDK9

4.应用程序结构分析10

4.1Android的API介绍10

4.1.1AndroidManifest.XML10

4.1.2活动10

4.1.3视图10

4.1.4意图10

4.1.5服务10

4.1.6通知11

4.1.7内容提供者11

4.2Android活动的生命周期11

4.2.1生命周期简介11

4.2.2活动的生命状态11

4.2.3活动的运作流程12

5.应用程序设计14

5.1设计目标14

5.2需求分析14

5.3详细设计14

5.3.1角色和责任14

5.3.2BLE权限14

5.3.3检查BLE是否支持在设备上15

5.3.4设置BLE15

5.3.5发现BLE设备15

5.3.6连接到GATT服务端17

5.3.7读取BLE变量21

5.3.8接受GATT通知23

5.3.9关闭客户端APP23

6.CC2541与手机通信24

7.总结与体会29

8.谢辞30

9.参考文献31

10.附件1相关设计软件32

附件2外文资料翻译33

1.前言

近年,物联网技术得到了飞速的发展,而物联网里一个非常重要的角色就是已然发展成熟的BLE技术,我们只需使用TI的软件和硬件资源,便可以轻松的搭建自己无限网络,通过这个网络,我们便可以实现和支持BLE的设备进行通讯,从而进行短距离通信。

API版本为18的Android4.3为低功耗蓝牙的主要功能提供平台支持BLE功能的实现和API调用,Android上的软件可以用它来发现设备、查询服务和执行读写操作。

BLE更显著的特点就是功耗特别的低,和传统的蓝牙比较起来,BLE的功耗要低50倍,甚至更多。

由于BLE具有这样的优点,安卓APP就可以用它来与BLE设备进行交流,比如照明系统、传感器、以及心胀速率检测器。

传统蓝牙蓝牙的传输速率不仅慢,而且传输距离只有短短的2—10米,Wife虽然传输速率相较传统蓝牙快了不少,传输距离也增强了,能达到50米左右,但许多场合下依然不能满足我们的需要。

和传统蓝牙和WIFE比较之后我们发现,BLE有一个相当大的优势。

新的4.0版本的蓝牙集合了蓝牙技术在三方面(即传统的蓝牙,高速蓝牙,蓝牙低功耗)的优点。

它集成了蓝牙技术在无线连接方面的固有优势,并且加入了低速蓝牙,高速蓝牙的特性,不仅可以结合使用这三种规格,也可以单独使用。

低功耗蓝牙-蓝牙4.0规范的核心,这一技术的最重要的特征是超低操作功耗和待机功耗,这样蓝低功耗牙设备可以大幅度节能,使用一个按钮电池可连续工作好几年了,对应用的成本和电力需求严格的无线方案都能很好的满足了,并遵循智能机器的发展将有一个更广泛的领域。

如今,支持BLE的智能设备主要是iPhone(IOS系统)和Android,从4.3系统开始,Android将提供官方的API接口,在不久的将来,BLE将会出现在生活中的各个领域。

总的来说,低功耗蓝牙技术具有以下优点:

(1)高可靠性:

无线通信,由于电磁波在传输过程中容易受到许多因素的干扰,例如,障碍物,天气条件,等。

因此,无线数据传输通信系统具有固有的不可靠性。

因此在制定蓝牙4.0的规范时我们就已经在考略怎样解决数据在传输的过程中存在的内在不确定性这样的缺陷,我们在协议中一些可靠性措施,比如:

数据解码,差错矫正和检测,数据加噪等方法,采用这些方法可以极大的增强数据的可靠性。

(2)低成本、低功耗:

蓝牙4.0版本强化了蓝牙在数据传输上的低功耗性能,功耗较传统蓝牙降低了90%。

(3)立即链接,高效启动:

旧版蓝牙启动速度非常缓慢,链接上需要6s的时间,而Android上的蓝牙只需要3秒即可完成链接,几乎立即连接(4)传输距离大大加大:

传统蓝牙传输距离通常是5米左右,但是安卓4.3上的蓝牙的有效传输距离可以达到100米,传输距离增加10倍,大大扩大了蓝牙技术的应用前景。

(5)高安全性:

为保证数据传输的安全使用AES-128CCM加密算法加密数据包认证。

 

2.Android相关技术介绍

2.1Android简介

2.1.1Android是什么

安卓是一个完整的手机操作系统,包含Linux操作系统、中间元件以及一些常用的应用程序。

Android还提供了一个SDK,这个SDK包含了必要的工具和API。

Android和IOS系统一样,都是应用在移动端,比如手机和iPad上的操作系统,二者的主要区别在于Android是开放源代码的操作系统。

2.1.2Android的发展历史

安迪•鲁宾(AndyRubin)最早开发Android操作系统,谷歌公司非常看好Android系统以后的发现趋势,所以在2005年8月收购完成了收购。

2007年11月,谷歌和硬件制造商、软件开发商和电信运营商形成了开放手机联盟,联合研究和改进安卓系统。

后来谷歌以授权的方式发放开源许可证,并发布Android的源代码。

第一个Android智能手机在2008年10月发布。

2011年第四季度Android手机市场份额是52%,2011年Android智能手机出货量将超过4.5部。

2008年,谷歌/O会议上,谷歌发布安卓架构图,同年8月18号,Android通过了美国联邦通信委员会(FCC)的批准。

谷歌在08年9月份发布的Android1.0系统是最早的版本的Android系统。

2009年4月,谷歌正式推出了Android1.5电话,从Android1.5版本的谷歌Android版本始于甜点,Android1.5以蛋糕(蛋糕)命名。

该系统功能与安卓1.0的系统相比已大大提高。

2009年9月,谷歌推出了了Android1.6的官方版本,和携带Android1.6正式版的手机HTCHero(G3),由于出色的设计和新Android1.6操作系统,HTCHero(G3)成为了世界上最受欢迎的移动电话。

Android1.6还有一个有趣的甜点的名字,叫做甜甜圈(甜甜圈)。

2010年2月,Android正式和Linux主流开发断绝关系,主要原因是Android将Linux内核里面的状态树给移除掉了,并且,在当年的五月份,Google公司发布了Android2.0操作系统,并且将他改名为Froyo。

2010年10月份,在谷歌公司的历史上是非常辉煌的一年,应为在这一年,安卓应用的数量草果了10万个,Android操作系统正在以高度发展的姿态为世人所熟知。

同样是在这一年,Android2.3版本的操作系统被谷歌公司发布了,在第二年,谷歌公司宣布,在今年1月,ANdroid设备每天的激活量大约在30万部左右,到7月,这个数子再次被刷新了,达到了令人惊叹的每天55万部。

安卓以全球用户总量超1.35亿,成为了占有量最高的操作系统。

2011年8月2日,谷歌公司已经在全球市场占有绝对的手机系统霸主地位,就连以前一直统治手机领域的塞班操作系统也只能望其项背,最终免不了被终结的命运,在这一年,市场上48%的手机的操作系统使用的安卓操作系统,在这一年的9月份,Android4.0问世了,一直到今天,这个系统也同样有许多人在使用。

2.2Android架构分析

图2.2.1

从图2.2.1我们可以看出,Android架构主要分为5个部分。

即Applications、Application Framework、LinuxKernel、Android RunTime

2.2.1最底层-LinuxKernel层

Linnux2.6为安卓系统提供最重要的系统服务,包括安内核全、内存管理、进程管理、网络堆栈、驱动模型等。

Linux隐藏着具体的硬件细节而为上层应用和代码提供符务,去掉底层及以下层的差异,这样即使下面的框架发生了变化,也不会对我们开发应用残生很大的影响,其实Linux内核层就是一个抽象层,链接着硬件和软件,它在中间起着桥梁的作用。

为了各经所能,我们将框架分为一层一层的,各层提供各层单独的服务,这样做的目的是为了让我们写出来的代码做到高内聚,低耦合。

其实就是,做开发就专心做开发,不用关心底层到底是怎样实现的。

2.2.2Android Runtime

Android包括一套核心库,它们提供了Java编程语言中的大多数库函数的核心。

在她自己的进程中运行每一个Android的应用时,过程也属于一个Dalvik虚拟机实例。

使用Dalvik的目的是使设备有效地运行多个虚拟机。

被执行的Dalvik虚拟机的可执行文件格式为.DEX格式,该格式被进行了优化,为最小的内存使用情况。

虚拟机是基于寄存器,编译和运行Java编程语言类,这些类被转换为内置的DX工具。

依靠Linux内核提供Dalvik虚拟机在函数的底部,如线程和低级别的存储器管理。

Android包括一套核心库提供大部分在Java编程语言用到的核心类库。

在Dalvik虚拟机的每一个Android应用的程序实例,在自己的进程中运行。

Dalvik虚拟机设计的一个设备可以高效地运行多个虚拟机。

Dalvik虚拟机可执行文件格式。

地塞米松,地塞米松格式是压缩格式,设计用于的Dalvik是适合于系统存储器和处理器速度有限。

大多数虚拟机包括JVM的,是基于在栈上,在Dalvik虚拟机是基于寄存器。

两种体系结构都具有各自的优点和缺点,在一般情况下,基于所述堆栈机需要更多的指令,并基于对机器指令的寄存器。

DX是一套工具,以Java类成。

一个DEX文件往往有多个。

类。

由于DEX有时一定要优化,会增加文件大小的1-4倍,在结束ODEX。

Dalvik虚拟机依赖于Linux内核提供的基本功能,如线程和底层内存管理。

2.2.3Libraries

在android底层框架中,有这样一个框架,这个框架不是用JAVA语言写的,而是用C/C++语言写的一个库的集合,安卓中许多组件在创建对象时就是由这一层通过反射构建对象,由于有这样一个层额存在,给你安卓开发人员提供了很大的便利。

期中的一些核心库主要是:

(1)系统C库:

面向Linux的嵌入式设备的一个BSD的标准C系统实现。

(2)媒体库:

这个库支持大量主流的视频和应聘的录制和播放,同样也支持大量的静态图片的管理,支持各种格式,如MP3,AAC,PNG,等等。

(3)表面管理者:

管理显示子系统,并且能够组合许多2D和3D图像的图像层。

(4)LibWebCore:

网页浏览器引擎,他不仅支持安卓的浏览器,哈支持WEB视图。

(5)3Dlibrary:

改库是使用硬件的3D加速或使用内资的高度优化的3D软件光涮。

2.2.4Application Framework 应用框架

安卓提供给用户一个开放的平台,这个平台提供了大量的极其丰富的应用开发能力,开发者借助本地的硬件资源优势,便能很好的访问本地信息,运行后台服务并设置警告,或者想菜单栏添加通知以及与开发者访问与核心应用嘻嘻相关的同一框架的API。

我们能够简化应用组件的从用通过设计应用框架,使我们能够发布应用的功能,别的客户端,比如手机,平板上的应用就能够使用这些应用。

相同的机制可以让用户替换这些组件,在我们的应用中有许多的后台服务和系统,比如可扩展视图对象Views,用它来建立我们需要的应用,例如:

button,fragment,listview,imageview和一个嵌入式的Web浏览器。

Context借助此对象我们可以访问系统底层资源(比如我们的蓝牙),还可以实现分享数据。

Resourse:

提供访问非代码资源的能力,如本地化字符串。

Notificatoin:

通知管理者,用它来接收和发送通知消息。

Activity:

管理应用的生命周期,显示View对象。

2.2.5Applications

安卓内部嵌入了一个应用程序集合,这个集合中包含了我们手机中常用的应用,如时钟,日历,谷歌地图...,这些应用都是使用JAVA代码编写的。

在以后的时间里,还有跟多的优秀的应用等着我们去开发。

通过前面的介绍,我们知道安卓的结构有一个非常清晰的分层,各层之间是分工的,目的明确,这样很好的的提高工作效率,为了方便,我们使用了如啊你按迭层架构,把它分为三层风别是:

操作系统,中间件,和APP应用。

由于安卓是开源的,有众多的开发者,每一个开发人员都会贡献出自己的一份力量。

2.3Android应用的构成和工作机制

我们知道安卓程序组要分为四大部分,分别是Activity,Service,ContentProvider和IntendReceiver,但这也不是绝对的,一个应用程序不一定都要包含这四个部分,我们使用时,要根据具体情况而定,使用他们时,需要在清单配置文件AndroidManiFest.xml中进行配置,这个配置文件是每个程序都必须的,在程序启动时我们是需要加载这个文案的。

Android应用的构成和工作流程如图2-3:

图2-3

 

3.Android开发环境的搭建

3.1JDK的安装和JAVA环境变量的设置

3.1.1JDK下载地址

JDK下载地址:

JDK(JavaDevelopmentKit)是Java的核心部分,包括一系列Java开发所需要的工具和API,我们在装好JDK之后需要配置一下环境变量。

3.1.2配置JAVA_HOME环境变量

这是JDK的安装路径,这个环境变量需要我们自己在我的电脑里面创建,创建完之后可以使用我们的JDK路径作为应用路径,它的值为:

JDK在我的电脑上的安装路径。

如图3.1.2是我们正在为JAVA的JDK配置JAVA_HOME环境变量。

图3.1.2

3.1.3配置PATH环境变量

PATH变量不需要创建,因为他已经在我们的电脑中存在,我们可以直接进行编辑。

它的作用是用于引入配置文件的路径,使我们的命令可以更加的简单,他的值为:

SDK目录下bin文件的目录。

下图3.1.3是正在为JDK配置PATH环境变量。

图3.1.3

3.1.4配置CLASSPATH环境变量

用于编译时JAVA类的路径,注意这里设置的是两个值,(.;)表示的是JVM先搜索当前目录。

其值为:

.;%JAVA_HOME%\lib\tools.jar。

如图3.1.4是正在配置CLASS_PATH

环境变量。

图3.1.4

3.1.5验证JDK是否安装成功

当我们配置完毕后,我们就可以通过CMD运行以下命令:

java-version,JAVAC如果出现下面的返回信息,则说明设置成功。

如图3.1.5所示:

3.2安装Eclipse

3.2.1Eclipse下载地址

Eclipse下载地址:

http:

//www.eclipse.org/downloads/?

(选择EclipseStandard版本即可)。

Eclipse为Java及Android开发的IDE。

Eclipse不需要安装,把解压包解压后,剪切eclipse文件夹到你想安装的地方,打开时设置你的工作目录即可。

 

3.3安装AndroidSDK

3.3.1AndroidSDK下载地址

AndroidSDK下载地址:

AndoridSDK为Android管理开发包工具,提供了Android各级平台的开发包和工具。

注意,因为我们是独立安装,不是一体化(集成系列工具)所以需要单独下载SDK。

3.3.2配置环境变量

用于编译时JAVA类的路径,注意这里设置的是两个值,(.;)表示的是JVM先搜索当前目录。

其值为:

.;%JAVA_HOME%\lib\tools.jar。

3.3.3导入SDK

打开eclipse软件,在windows窗口下,选择android,将下载好的SDK路径导入。

具体如图3.3.3:

图3.3.3

 

4.应用程序结构分析

4.1Android的API介绍

API(ApplicationProgrammingInterface,也就是我们常说的应用程序编程接口,是一些别人早句写好的类,换句话说,只要是调用的类都可以说是API,你调用的别人的类也可以说是调用了API,开发者在使用时就不用再去写实现这些类的代码了,可以直接使用,非常方便,大大节约了我们的时间和精力。

4.1.1AndroidManifest.XML

这是系统清单配置文件,在我们启动一个应用时需要先加载这个文件,在文件里注册者各个Activity的信息,以及声明的各种权限,这个文件是每个应用程序锁必须的,没有这个文件我们的应用时不能正常工作的。

4.1.2活动

Activity首先它是一个对象,与他有自己的生命周期。

一个Activity是需要完成某些工作的代码块,这部分工作还可能包括对用户UI界面的显示。

不过这不是必须的,有些活动从不显示UI界面。

4.1.3视图

View是用来显示到我们的手机屏幕上的。

安卓的User界面是由一系列的ViewTree构成的,然后接口出现在视图中以树的形式,程序员就可以通过构建一个新的视图来自定义我们自己的图像处理技术(比如开发应用,制作游戏等)

4.1.4意图

意图是一个用来传递消息的对象,我们用它来表示应用程序的想达成的“目的”,携带消息,比如我们想切换一个Activity我们就可以创建一个Intent对象,用它来传递给系统,告知我们的“意图”,系统就能定位到我们的Intent代码,并且运行它,这样我们就能切换到我们想要切换的那个界面了。

通常我们还将意图用于广播系统的有效时件(不如通知事件)。

4.1.5服务

Service是一段代码,这段代码不同于其他的代码之处在于他是运行在后台的,他可以有他自己的进程,也可以运行在其他应用的进程之中,具体怎样,还得根据我们我们自己的业务需求而定。

我们可以通过调用(RPC)来调用这个方法。

比如视屏播放的服务,当我们启用后台操作时,我们希望这个应用依然可以继续运行,这个时候我们就需要使用服务来保证我们的程序在后台依然能够运行着。

4.1.6通知

通知通畅以小图标的形式出现在状态栏里,用户通过点击图标来接收传过来的消息。

我们最常见的通知包括短信、通话记录和邮件,但是我们在写应用时也可以创建属于我们自己的通知事件。

4.1.7内容提供者

Context具有强大的资源访问能力,我们用它来对设备上的数据进行访问。

我们见得最多的就是用它来访问我们的联系人列表。

应用程序也可以使用其它程序通过内容提供者提供的数据,同时也可以定义自己的内容提供者来向其它应用提供数据访问服务。

4.2Android活动的生命周期

4.2.1生命周期简介

Android平台是一个手机操作系统。

不谈其他功能,就手机的特性而论,应该能够在未完成动作的时候,暂停一些正在使用功能,切换到接电话,接收短信模式,并返回到应用程序中调用,也希望能看到相同的内容。

现在大多数用户使用智能手机,使用多路复用操作系统(windowsMobile),可以在同一时间听音乐,用手机来执行其他多个程序。

同时执行多个程序有其明显的优势,但也有它的劣势。

每实现一个应用程序,它将花费更多的系统内存,但手机内存是非常有限的。

当执行程序太多的同时,我们没有正确的释放内存,或关闭没用的进程,系统运行时将会感到越来越慢,甚至不稳定。

为了解决这个问题,安卓系统引入了一个新的机制,生命周期。

Android应用程序的生命周期是由Android框架调用的,而不是直接由应用程序控制。

通常情况下,每个应用程序(入口通常是一个活动onCreate方法),会占据一个线程。

当系统内存不足时,将自动按照优先级恢复的过程。

用户或开发人员,也无法确定当应用程序被回收。

一个活动类别除了OnCreate方法,还预定义了onPause(暂停)和OnResume(继续)等的基本方法,当开关从一个活动到另一个活动,最初的活动将通过一系列的状态改变。

开发人员可以添加一些地位相对应的程序流,每个活动状态改变时,将执行相应的过程。

允许用户有很好的经验,活动需要在每个周期负责仓储和恢复状态,转移等。

4.2.2活动的生命状态

Android的虚拟机是使用堆栈管理。

主要有四种状态:

(l)活动状态

活动状态是指用户启动应用程序或活动后,活动运行中的状态。

在Android平台上,同一个时刻只会有一个活动处于活动或运行状态。

其他的活动都处于未启动、停止或是暂停的状态。

(2)暂停状态

暂停状态是指当活动暂时暗下来,退到背景画面的状态。

当警告对话框或电话来了时,都会让原来运行的活动退到背景画面。

新出现的警告对话框等界面元件盖住了原来的活动画面。

活动处在暂停状态时,用户无法与原活动互动。

(3)停止状态

停止状态是指有其他活动正在执行,而这个活动己经离开屏幕,不再动作的状态。

通过按返回键,可以调出所有处于停止状态的应用程序列表。

处于停止状态的活动,还可以通过通知来唤醒。

(4)已回收或未启动状态

已回收或未启动状态是指活动尚未被启动、已经被手动终止或己经被系统回收的状态。

要手动终止活动,可以在程序中调用finish方法。

如果是被系统回收,可能是因为内存不足了,所以系统根据内存不足时的回收规则,将处于停止状态的活动所占用的内存回收。

图4.2.1activity的生命周期

4.2.3活动的运作流程

由实际运行来看,我们可以归纳出所有Android应用程序都遵循的运作流程:

(l)一般启动

启动一个活动的基本流程为onCreat一>onstart一>onResume。

该流程首先分配资源给这个活动(创建状态),然后将活动的内容显示到屏幕上(启动状态);在一切就绪后,取得屏幕的控制权(恢复状态),用户可以开始使用这个程序。

(2)调用另一个活动

调用另一个活动的基本流程为onpause(l)一>onCreate

(2)一>onstart

(2)一>0nResume

(2)一>onStop(l)。

该流程首先冻结原来的活动,再交出屏幕控制权;直到活动2完成一般启动流程后,活动1才会被停止。

(3)回到原来活动

回到原来活动的基本流程为onPause

(2)一>onRestart

(1)一>onstart(l)一>onResume

(1)一>onstop

(2)一>onDestroy

(2)。

另外按返回键也可以回到原来的活动。

(4)退出结束

退出结束的基本流程为

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1