身的各种应用程序组件。
通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等。
2.1.4 应用程序层
该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。
2.2 Android应用程序结构及原理分析
一个Android应用程序是由Activity、Service、BroadcastReceiver、Content Provider四个部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用这些组件时,需要在配置文件AndroidMainfest.xml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及一些特性和要求等,它位于application的根目录,描述了package中的全局数据,包括了package中暴露的组件(activities,services等等),它们各自的实现类,各种能被处理的数据和启动位置。
2.2.1 Activity
一个Activity通常展现为一个可视化的用户界面,是Android程序与用户交互的窗口,也是Android组件中最基本也是最复杂的一个组件。从视觉效果来看,一个Activity占据当前的窗口,响应所有窗口事件,具备控件、菜单等界面元素,实际应用中,通常就是一个单独的屏,也就是一个运行在前台程序在某一时刻在屏幕中所能展示的全部内容就是一个Activity。从内部逻辑来看,Activity为了保持各个界面的状态,需要做一些持久化的事情,还需要妥善管理其自身的生命周期。对于开发者而言,需要派生一个Activity的子类,进而编写代码实现各种功能方法,如果一个应用中有多个Activity,虽然彼此结合形成一个应用在一起工作,但是每个Activity是彼此独立的,每个都是继承于Activity基类的一个子类。
Activity在系统中以活动栈的形式进行管理。当一个新的Activity启动后,就被放到了栈顶,成为了正在运行的Activity,而新Activity之前的Activity在活动栈里总位于新Activity之下,直到新Activity退出才重新回到前台。而Activity的生命周期也就是它所在进程的生命周期,Activity的生命周期如图:
图2-2 Activity生命周期
从图2-2可以看出,Activity有三个关键的生命周期阶段:
(1) Activity的整个生命期:从首次调用onCreate()开始,到最终调用onDestroy()结束。在onCreate()中进行所有初始化,在onDestroy()时进行清理工作,释放资源。
(2) Activity的可见生命期:从调用onStart()开始,到onStop()被调用为止。在这段时间内,即使Activity不与用户进行交互,用户也可以在屏幕上看到它。在这两个方法调用之间,可以维护Activity显示给用户的资源。onStart()和onStop()方法可以多次调用,因为Activity随时可以在可见和隐藏之间进行转换。
(3) Activity的后台生命期:从调用onResume()开始,到onPause()被调用为止。在这段时间内Activity处于其它所有Activity之前,并与用户进行交互。一个Activity可以不断在resumed状态和paused状态之间变换。
2.2.2 Service
一个Service不是一个用户可见的组件,它在不确定的一段时间内运行在后台,每个Service都继承自Service基类,它可以运行在它自己的进程,也可以运行在其它应用程序的进程里,这取决于自身的需要。Android中的Service其实与Windows中的服务类似,它执行长时间运行的操作,或运行进程执行工作。和Activity或者其它组件一样,Service运行在应用进程的主线程中,所以它不会阻塞其它的组件或者用户界面,它经常为那些耗时长的任务单独开一个线程。Activity可以启动一个Service,并运行或者绑定到它,而其它的组件可以通过远程过程调用(RPC)来绑定到一个Service上。
2.2.3 BroadcastReceiver
BroadcastReceiver是这样一个组件,它只是接收广播事件并作出反应。在系统中有很多已有的广播事件,比如反应时区变化的,电池变化的,用户修改了系统语言时的广播事件,也可以由应用
上一篇:
android毕业论文完整格式(食物相宜相克大全)
下一篇:
猪疥癣病的防治