在大多数操作系统里,存在独立的一个1对1的可执行文件(如Windows里的exe文件), 它可以产生进程,并能和界面图标、应用进行用户交互。但在Android里,这是不固定的,理解将这些分散的部分如何进行组合是非常重要的。
由于Android这种可灵活变通的,在实现一个应用不同部分时你需要理解一些基础技术:
一个android包 (简称 .apk ) ,里面包含应用程序的代码以及资源。这是一个应用发布,用户能下载并安装他们设备上的文件。
一个 任务,通常用户能当它为一个“应用程序”来启动:通常在桌面上会有一个图标可以来启动任务,这是一个上层的应用,可以将你的任务切换到前台来。
一个进程是一个底层的代码运行级别的核心进程。通常.apk包里所有代码运行在一个进程里,一个进程对于一个.apk包;然而, 进程标签常用来改变代码运行的位置,可以是全部的.apk包或者是独立的活动, 接收器, 服务, 或者提供器组件。
任务
记住关键的一点:当用户看到的“应用”,无论实际是如何处理的,它都是一个任务。如果你仅仅通过一些活动来创建一个.apk包,其中有一个肯定是上层入口(通过动作的intent-filter以及分类android.intent.category.LAUNCHER),然后你的.apk包就创建了一个单独任务,无论你启动哪个活动都会是这个任务的一部分。
一个任务,从使用者的观点,他是一个应用程序;对开发者来讲,它是贯穿活动着任务的一个或者多个视图,或者一个活动栈。当设置Intent.FLAG_ACTIVITY_NEW_TASK标志启动一个活动意图时,任务就被创建了