1.run time:运行时,是指一个程序在运行(或者在被执行)的状态,也就是说,当你打开一个程序使它在电脑上运行的时候,那个程序就是处于运行时刻。在一些编程语言中,把某些可以重用的程序或者实例打包或者重建成为“运行库”。这些实例可以在它们运行的时候被连接或者被任何程序调用。
2.Android使用三种技术来实现应用程序间的数据共享:通知(Notification),意图(Intent)和内容提供器(Content Provider)。
Notification:通常是移动设备提醒用户的标准方式。
Intent:提供了一种在应用程序内部和应用程序之间传递消息的机制。使用Intent,可以在系统范围内向其他应用程序广播一种期望的动作(例如,拨号或编辑联系人),来让它们进行处理。
Content Provider:是一种将访问权限授予应用程序的私有数据库的方式。自带应用程序的数据存储,如联系人管理器,都作为内容提供器外露处来,这样就可以通过创建你自己的应用程序来读取或修改这些存储的数据。
3.Android使用自己的运行时和虚拟机来管理应用程序内存。Android运行时还管理着进程的生存期。
4.每一个Android应用程序都运行在它自己的Dalvik实例的一个进程中,它把内存管理和进程管理的所有工作都交给Android运行时进行处理,Android运行时库在必要的时候会暂停和结束进程,从而更有效地管理资源。Dalvik和Android运行时位于一个Linux内核之上,由该Linux内核来处理低级的硬件交互,包括驱动程序和内存管理,同时有一套API来提供所有对底层服务,功能和硬件的访问。
5.Android软件开发包(software development Kit,SDK)包含了开发,测试和调试Android应用程序所需的所有东西。
Android API:SDK核心是Android API库,它向开发人员提供了对Android栈进行访问的方法。Google也使用相同的库来开发本地应用程序。
开发工具:为了让Android源码变成可执行的Android应用程序,SDK提供了多个开发工具供编译和调试程序时使用。
Android模拟器:是一个完全交互式的Android设备模拟器。
6.Android软件栈
简单的说,就是将一个Linux内核和一个C/C++库集合提供给整个应用程序框架,而该应用程序框架为运行时和应用程序提供服务,并对它们进行管理。
Android运行时:由于Android运行时包含了核心库和Dalvik虚拟机,因此,它是向应用程序提供动力的引擎,它和库一起形成了应用程序框架的基础。
核心库:提供了Java核心库以及Android特定库可用的大部分功能。
Dalvik虚拟机:并不是一个Java虚拟机,而是一个基于寄存器的虚拟机,它已经被优化从而保证一个设备可以高效地运行多个实例。它依赖Linux内核进行线程和底层内存管理。所有的Android硬件和系统服务访问都是使用作为中间层的Dalvik来进行管理的。
7.Android应用程序架构
下面的应用程序服务是所有Android应用程序的架构基础,它们提供了常用软件都会使用到的框架:
活动管理器(Activity Manager):控制活动的生命周期。
视图(View):用来为活动构建用户界面。
通知管理器(Notification Manager):提供了一种一致的和非打断性的机制来通知用户。
内容提供器(Content Provider):让应用程序可以在程序间共享数据。
资源管理器(Resource Manager):支持像字符串和图形这样的非代码资源的具体化。