阅读更多 在Android开发中,一个工程对应一个AndroidManifest.xml文件,这个文件中包含有该项目的一些设置,如权限、SDk版Activity、Service信息等。一般而言,这个文件中会有且仅有一个application节点,这个节点表示这是一个应用程序,不管它下面还有多少子节点如Activity、Service等等。形象的说,就是这个项目生成的apk安装到Android设备后,应用程序列表中会出现一个ICON,这个ICON就是这个程序的执行入口了。

但是,某些情况下,我们需要为我们的apk设置多个执行入口,也就是安装后在应用程序列表中出现多个ICON图标,各个ICON是APP不同模块的入口点,并且各个模块运行在不同的进程中。

    Activity有一个重要的属性process,这个属性是指定Activity运行时所在的进程。没有指定此属性的话,所有程序组件运行在应用程序默认的进程中,这个进程名跟应用程序的包名一致。中所有组建元素的process属性能够为该组件设定一个新的默认值。但是任何组件都可以覆盖这个默认值,允许你将你的程序放在多进程中运行。如果这个属性被分配的名字以:开头,当这个activity运行时, 一个新的专属于这个程序的进程将会被创建。

以下面的代码为例,项目中有两个Activity,其中一个采用默认属性,另一个为其指定process属性以及新的ICON,这样该项目安装到设备上之后可以发现多了两个应用程序图标,一个是应用程序默认的图标,点击后进入HelloWorldActivity;另一个是手动指定的ICON,点击后进入NextPageActivity。这时使用adb shell查看进程可以发现,两个Activity是运行在不同的进程中的。

AndroidManifest.xml的主要内容如下:



 




通过上面的方式,为App的各个组件指定process和icon属性,便能够达到类似于一个apk中打包多个程序(模块)的目的。要特别注意,为Activity指定process属性后,还必须为其指定launchMode为singleInstance,这样才有效。

更多相关文章

  1. 一款霸榜 GitHub 的开源 Linux 资源监视器!
  2. Android中长TextView实现跑马灯效果
  3. Android(安卓)Developers:向其它应用发送用户
  4. Android(安卓)应用程序启动过程分析 (用SysTrace 跟踪分析)
  5. SEAndroid和普通android的区别
  6. Android实现应用程序卸载自己
  7. Android应用监听自己是否被卸载,做反馈统计
  8. Android(安卓)仿2016版京东筛选
  9. android入门-----dhcp服务(上)

随机推荐

  1. Android(安卓)高级UI 目录
  2. Icon Font --Android图标也能轻松换肤
  3. 【Android】Android输入子系统
  4. PopupWindow位置
  5. Android 和iOS 比较
  6. android 3D摄像头的扩展现实
  7. Android五-Android的思想
  8. Android(安卓)Studio 设置内存大小及原理
  9. AlertDialog使用自定义的布局
  10. [置顶] 浅谈Android Canvas绘图类