它们和普通成员函数一样有访问限制,根据槽的访问限制谁可以与它们相连接,能够分为以下三种情况:
public slot:任何信号都可以与之相连接。这在窗口部件编程中非常有用,用于创建一些对彼此一无所知的对象,只有通过信号和槽来交换信息。Public slot就像是标准的铁路一样。
protected slot:只有该类及其子类所派生的对象的信号才可以与之相连接。这类槽的目的通常是为了类的完善,而不是类与外界的接口。
private slot:只有该类自己的信号才可以与之相连接。
当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发射。只有定义过这个信号的类及其派生类能发射这个信号。当一个信号被发射时,与其相关联的槽将被立即执行,就像一个正常的函数调用一样。信号-槽机制完全独立于任何GUI时间循环。只有当所有的槽返回以后发射函数才返回。如果存在所个槽与某个信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地执行,但是它们执行的顺序将会是随机的、不确定的,我们不能人为地指定哪个先执行、哪个后执行。如果有两个不同的对象对一个信号感兴趣,只要将该信号连接到这两个对象的槽上就可以了。
2.2 Android
Android是一个以Linux为基础的开放源码的操作系统,它主要用于便携设备,Android操作系统最初是由Andy Rubin开发且主要支持手机。在2005年由Google收购注资,并组建了开放手机联盟开发改良,逐渐地扩展到平板电脑以及其他领域上。在2011年第一季度,Android在全球的市场份额首次超过了塞班系统,跃居全球第一。在2012年2月数据中显示,Android占据了全球智能手机操作系统市场52.5%的份额,在中国市场的占有率为68.4%。
Android系统架构和别的操作系统一样,采用了分层架构。Android一共分为四层,从高到低依次是应用程序层、应用程序框架层、系统运行库层和Linux核心层。它是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android快速发展,如今已经允许了开发者使用多种编程语言来开发应用程序,而不再是像以前一样只能使用Java开发Android应用程序的单一局面,因而它受到了众多开发者的欢迎,成为了真正意义上的开放式操作系统。
开发者在Android中可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言进行开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:php、python、tcl、 lua等等),还有其他诸如: Mono(Mono for Android)、Qt(Qt for Android)等一些著名的编程框架也开始支持Android编程。甚至通过MonoDroid,开发者们还可以使用C#作为编程语言开发应用程序。此外,Google于2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。但是在网页编程语言方面,JavaScript,Ajax,HTML5,jquery、Phone、sencha、mobl、dojo Gap等等都已经支持Android开发。而在Android系统底层方面,Android是使用C/C++作为开发语言。
android四大组件分别是:
1. 活动(Activity):用于表现功能。
2. 服务(Service):后台运行服务,不提供界面呈现。
3. 广播接收器(BroadcastReceiver):用于接收广播。
4. 内容提供商(Content Provider):支持在多个应用中的存储和读取数据,相当于数据库。
Activity
一个Activity通常展现为一个可视化的用户界面。例如,一个activity可能展现为一个用户可以选择的菜单项列表或者展现一些图片以及图片的标题。一个消息服务应用程序可能包含一个显示联系人列表的activity,一个编写信息的activity,以及其它一些查看信息和修改应用程序设置的activity。虽然这些activity一起工作,共同组成了一个应用程序,但每一个activity都是相对独立的。每一个activity都是Activity(android.app.Activity)的子类。
一个应用程序可能只包含一个activity,或者像上面提到的消息服务程序一样有多个activity。一个应用程序包含几个activity以及各个activity完成什么样的功能完全取决于应用程序以及它的设计。通常每个应用程序都包含一个在应用程序启动后第一个展现给用