1.2 Android组件简介
1)Activity
Android共有四大组件,Activity就是其中之一,也是构成Android最基本的模块,官网中是这样介绍Activity的。
几乎所有的Activity都是用来与用户交互的,因此Activity主要关注于视图窗体的创建,如通过setContentView(View)方法来放置UI,而且Activity对于用户来说通常都表现为全屏的窗体,当然他们也可以以其他的方式来呈现,比如浮动窗体。
通俗一点来讲,我们可以把手机比作一个浏览器,那么Activity相当于一个网页。不同的View可以被添加到Activity中,并且可以对这些View做一些事件处理。例如在Activity中添加button、checkbox等元素。因此,Activity的概念在某种程度上和网页的概念是十分类似的。网页对于一个完整的Web站点来说有多重要,Activity对于Android应用程序就又多重要。
2)Intent
Intent是同一个或不同的应用组件之间的消息传递媒介。它本质上是一种数据结构,并且具有被动性,它抽象的描述了将要被执行的动作或者已经发生的以及正在被通知的某个事件的描述。应用程序中三个核心组件(Activity,Service,Broadcast receivers)就是通过Intent彼此联系触发的。
例如,某个Activity可以被Context.startActivity()和Activity.startActivityForResult()启动,或者通过当前的Activity去做其他事情。Activity.setResult()也可以通过Intent把消息传递给调用了startActivityForResult()方法的Activity。Context.bindService()同样也能在启动组件和目标service之间建立连接。
同理,Context.sendBroadcast(),Context.sendOrderBroadcast()等也可以通过Intent传递消息到Broadcast receiver。
3)Service
Service也属于Android四大组件之一,一种可以在后台长时间运行,而且不提供任何用户接口的应用组件。即使启动了其他的应用,之前启动的服务仍会运行。其他非Service组件也可以与Service绑定并交互,甚至允许多进程交互(IPC)。例如在后台播放音乐,处理文件输入输出(I/O)等操作都是Service常见的应用场景。
4)Broadcast Receiver
Broadcast Receiver,顾名思义就是“广播接收者”的意思,它可以接受来自系统和应用的广播,比如我们想要在开机就启动某项服务,那我们就能利用开机完成后系统发出的广播来实现了。类似的还有其他很多广播,比如网络状态的改变,电池电量的改变等,当发生这些改变时,系统都会发送广播。
Android手机或者平板的运行环境不像PC一般稳定,比如网络时好时坏,电池电量不足等,一个好的应用应当在适当的时候对用户进行提醒,以免用户在不知情的情况下对手机资源过度的消耗。
如果开发者自己不停地去监听电池电量的变化,这样势必会加大开发者的工作量以及工作的复杂程度。而Android中的广播机制就能为开发者和用户解决这一难题。很多事情开发者不用再亲自去做,只需要自己定义一个Broadcast Receiver,等待系统的广播就行了。
1.3 蓝牙技术简介
蓝牙(Bluetooth)一词是斯堪的纳维亚语言词汇Blåtand/Blåtann的英语化。这个词的来源是10世纪丹麦和挪威国王蓝牙哈拉尔(丹麦语:Harald Blåtand Gormsen),借国王的绰号“Blåtand”当名称,直接翻译成中文为“蓝牙”(blå=蓝,tand=牙)。在中文圈,“蓝牙”又称为“蓝芽”。2006年,蓝牙技术联盟组织已将全球中文译名统一改采直译为“蓝牙”,并注册为该组织的注册商标。
蓝牙的标志是卢恩字母 (Hagall,ᚼ)和 (Bjarkan,ᛒ)的组合,也就是Harald Blåtand的首字母HB的合写。