一、Android应用多进程
正常情况下,一个apk启动后只会运行在一个进程中,其进程名为AndroidManifest.xml文件中指定的应用包名,所有的基本组件都会在这个进程中运行。但是如果需要将某些组件(如Service、Activity等)运行在单独的进程中,就需要用到Android:process属性了。我们可以为android的基础组件指定process属性来指定它们运行在指定进程中。多进程能突破单进程内存大小的控制,防止OOM。
        
对process属性的设置有两种形式:        第一种形式如android:process=":remote",以冒号开头,冒号后面的字符串原则上是可以随意指定的。如果我们的包名为“com.example.processtest”,则实际的进程名为“com.example.processtest:remote”。 这种设置形式表示该进程为当前应用的私有进程,其他应用的组件不可以和它跑在同一个进程中。
        第二种情况如 android:process="com.example.processtest.remote",以小写字母开头,表示运行在一个以这个名字命名的全局进程中,其他应用通过设置相同的ShareUID可以和它跑在同一个进程。

由于新开启进程,所以需注意下面两点:
1)Application的多次重建。
2)静态成员的失效。

//举例
...
<service
            android:name=".MyService"
            android:label="@string/title_activity_main" 
            android:process="xxx.service">
        </service>
...

二、多应用程序跑同一进程
http://blog.csdn.net/dyllove98/article/details/8836412
http://blog.csdn.net/yanjianjunaaa/article/details/13095087
供参考

使用方法
1、首先在两个程序的Manifest文件中的manifest节点下面设置相同的sharedUserId,比如: android:sharedUserId="com.test"
2、在需要获取数据的程序中创建另外一个程序的上下文引用Context,
Context context = createPackageContext("com.excellence.weather", Context.CONTEXT_IGNORE_SECURITY);其中的第一个参数是另外一个程序的包名,这样就可以利用这个Context像访问自己程序的资源一样访问被共享的程序的资源,例如:
SharedPreferences sharedPreferences = context.getSharedPreferences(SHAREDPREFERENCES_USERINFO, Context.MODE_WORLD_READABLE);
3、导出成apk的时候使用相同的签名

ResourceId 共享方法
1、使用SharedPreferences传递
2、使用相同的资源名

三、获取应用程序开启进程个数及进程名
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// 通过调用ActivityManager的getRunningAppProcesses()方法获得系统里所有正在运行的进程
List<ActivityManager.RunningAppProcessInfo> appProcessList = mActivityManager.getRunningAppProcesses();

ActivityManager.RunningAppProcessInfo类
说明: 封装了正在运行的进程信息
常用字段 :
  int   pid    进程ID
  int   uid    进程所在的用户ID
  String   processName 进程名,默认是包名或者由android:process=””属性指定
  String [ ]    pkgList       运行在该进程下的所有应用程序包名

List<ApplicationInfo> listAppcations = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
Collections.sort(listAppcations,new ApplicationInfo.DisplayNameComparator(pm));// 排序

ApplicationInfo类
说明: 应用程序相关信息
常用字段方法 :
  String   packageName 应用名
  String   packageName 应用包名
  String   loadLabel() 获取应用标签
  String   loadIcon() 获取应用图标
  
  
获取当前运行的应用程序开启的进程列表:
1、获得系统里正在运行的所有进程
2、根据进程的pkgList列表里所有包名,在安装的应用目录下查询
3、根据查询到的应用,得到标签图标等

Android单应用开多进程与单进程跑多应用相关推荐

  1. python开多少进程合适_用了python多进程,我跑程序花费的时间缩短了4倍

    应用场景:本人需要对200万条网页html格式数据进行清洗,提取文字后将分词结果写入数据库,之前做了一次,大概花费了80多个小时才跑完.机器配置是4核,内存8G:开完会领导让再改点东西重新跑一遍,然后 ...

  2. Android中高级进阶开发面试题冲刺合集(四)

    以下主要针对往期收录的面试题进行一个分类归纳整理,方便大家统一回顾和参考.本篇是第四集~ 强调一下:因篇幅问题:文中只放部分内容,全部面试开发文档需要的可在公众号<Android苦做舟>获 ...

  3. Android版xx助手之天天酷跑外挂详细分析

    Android版xx助手之天天酷跑外挂详细分析 图/文      莫灰灰 背景 近些年来,移动互联网的大肆崛起,潜移默化中影响着人们的生活和工作习惯.当腾讯的微信平台接入手机游戏之后,移动端的游戏也开 ...

  4. Android版xx助手之天天酷跑外挂具体分析

    Android版xx助手之天天酷跑外挂具体分析 图/文      莫灰灰 背景 近些年来,移动互联网的大肆崛起,潜移默化中影响着人们的生活和工作习惯.当腾讯的微信平台接入手机游戏之后,移动端的游戏也開 ...

  5. python用多线程可以快几倍_用了python多进程,我跑程序花费的时间缩短了4倍

    应用场景:本人需要对200万条网页html格式数据进行清洗,提取文字后将分词结果写入数据库,之前做了一次,大概花费了80多个小时才跑完.机器配置是4核,内存8G:开完会领导让再改点东西重新跑一遍,然后 ...

  6. Android中高级进阶开发面试题冲刺合集(七)

    以下主要针对往期收录的面试题进行一个分类归纳整理,方便大家统一回顾和参考.本篇是第七集~ 强调一下:因篇幅问题:文中只放部分内容,全部面试开发文档需要的可在公众号<Android苦做舟>获 ...

  7. Android中设置组件多进程

    MultiProcessComponent 源码地址 github源码下载地址https://github.com/onlynight/MultiProcessComponent 概述 这个demo中 ...

  8. android 首页6个碎片,Android 单帧碎片

    Android 单帧碎片 单帧碎片:单帧碎片是为小屏幕设备所设计的,如手持设备(移动电话),Android 3.0 以上版本支持. 实例 该实例解释如何创建自己的碎片.这里我们创建两个碎片,其中一个被 ...

  9. Android插件化开发之用DexClassLoader加载未安装的APK资源文件来实现app切换背景皮肤

    第一步.先制做一个有我们需要的图片资源的APK 如下图,这里有个about_log.png,我们需要生成apk文件. 生成的apk文件如果你不到项目的文件夹里面去取apk,想通过命令放到手机里面去可以 ...

最新文章

  1. 使用TensorFlow实现余弦距离/欧氏距离(Euclideandistance)以及Attention矩阵的计算
  2. shell脚本和linux命令,Linux shell脚本全面学习(一)
  3. github不支持html,为什么Github页面不允许我有效的HTML?
  4. 读书随笔:The Book of Why——CHAPTER 4~10
  5. linux各个版本下载地址,利用镜像服务器下载
  6. java版教材管理系统源码
  7. 前端知识点查文档网站
  8. 100名网工备考IE,最终能通过的,到底有几个?
  9. STM32F1的PWM占空比调节
  10. arm开发板与PC通讯及访问外网
  11. 小学校计算机教室年度工作总结,小学计算机教师年度工作总结
  12. [嵌入式]Cortex-A8处理器编程(上)
  13. shading interp;
  14. 什么是网络安全?网络安全包括哪几个方面?
  15. 矩阵压缩降维动态规划递推【P1719 最大加权矩形】
  16. json对象与json字符串互转,ajax各常见函数
  17. MIT博士推荐的几本数学书
  18. 最新红旗linux系统,红旗Linux操作系统
  19. 佳博Gprinter EVA G 打印机驱动
  20. XP停服务,卡巴当后盾——卡巴斯基反病毒软件2014(一年版)

热门文章

  1. 12个黑科技网站,每个都是十分良心了 zt – 步行街主干道 – 虎扑社区
  2. 【思维模式】拥抱复杂性(第 2 部分数据)
  3. 十个著名悖论的最终解答 (转载)
  4. AUTOSAR MCAL解析:Wdg
  5. 计算机网络自顶向下方法(第六版) 课后题答案 | 第五章
  6. springboot集成swagger页面空白解决方法
  7. idea 创建一个springboot 项目(hello world)
  8. go 函数os.OpenFile
  9. 用C语言计算BMI值
  10. 【PCB】Altium Designer PCB规则配置