阐述Android apk格式说明 |
|
本文标签:Android apk Android apk 的构造真的很奇妙,它吸取了client/service的思想,apk没有自己的独立入口函数,只是包含一个或者多个component,在进行程序执行时根据manifest配置文件来确定需要哪些的component 。 而conponent的激活是由intent来触发的,intent说穿了就是一个包括了操作和操作数据 的action,相当于这个component就是一个服务提供者,intent带来请求,然后它执行请求 。而且intent可以指定component来执行请求,也可以不指定有component根据过滤器的匹配来选择最合适的component来完成请求 。 而且还有一个就是在应用 程序层的process是以linux user ID来区分的,每个进程对应一个虚拟机,但一个进程中可以跑多个应用程序,而不仅仅是局限于一个 。其实这个也好理解,一个应用程序就是多个component,多个应用程序可以看做是很多component组成的一个apk 。 先来看看最基础的4种component: 1、activity 2、service 3、Broadcast receivers 4、Android apk 因此在一个应用中非常重要的几个概念就是:component , manifest.xml,intent, intent-filter 。而在component 中比较重要的应该就是activity和service 。下面我们来看看一个进程的生命周期:一个进程被打开之后操作系统 会尽量保持其运行状态,当发现内存不足的时候系统会根据以下的优先级来强制kill进程: 1、empty process首先考虑被关闭的是不含任何激活的component的进程,保留这样的进程的主要的原因是为了restart的时候能快一点,因此在内存不足的时候这类进程是首先考虑被kill掉的 。 2、background process 3、visible process 4、forground
因此在设计应用程序的时候绑定一个service比在进程中开辟一个线程来运行长时间任务要保险得多 。在manifest.xml中每个component都有一个process选项来指定其运行的进程可以让一个应用程序的Android apkt运行在一个进程 。 也可以让多个应用程序的component运行在一个进程来共享数据 。在java中专门提供了一种语言IDL用来自动生成远端进程调用的源码,应用只需要实现它的一些接口就可以了,这就方便了RPC编程 。 【责任编辑:苏越 TEL:(010)68476606】 |