Android 多进程资料总结

 更新时间:2016年09月22日 15:14:49   作者:白一辰  
这篇文章主要介绍了Android 多进程资料总结的相关资料,需要的朋友可以参考下

温故而知新

网上说多进程的文章很多,不过基本都是在讨论很深的东西,这是需要去专研的,而我是来这篇是用来偷懒的(应用层次),记录的都是自己对多进程的理解,方便以后用到的时候来偷懒,如果有错,请指教,小小程序员万分感谢。

讲进程,先来回答下面几个问题:

1.什么是线程?

线程就是程序中单独执行的流控制。

2.什么是多线程?

多线程就是单个程序中执行多个流控制。作用就是最大限度的使用CPU资源。

3.什么是进程?

一般指的是一个执行单元,即一个应用程序(Android中就是一个应用)。

4.线程和进程的关系?

一个进程可以有多个线程,进程与线程是包含与被包含的关系。

5.为什么要用多进程?

1.单进程所分配的内存不够,需要更多的内存。
2.需要运行一个独立的组件。
3.干一些不可见人的勾当,比如(
A-> 心跳 ->B,如果B没启动,就启动B。
B-> 心跳 ->A,如果A没启动,就启动A。
简单说就是双守护进程来防止被用户杀掉。)

6.怎么开启多进程?

AndroidManifest.xml中设置android:process=":remote"

<service
  android:name=".remoteService"
  android:label="@string/app_name"
  android:process=":remote"/>

Activity中启动这个服务

Intent mIntent = new Intent(this, remoteService.class);
startService(mIntent);

7.":remote"中,冒号是个什么鬼?

它不是鬼,android:process表示这个组件跑在什么鬼进程里,就是进程名。用:的意思是表示这是这个进程对于启动它的应用来说是私有的。类似于我们注册Activity省略包名一样。如果我们的包名是com.example.whitelaning,那这个 android:process=":remote"的进程的名字就是"com.example.whitelaning:remote"。

8.私有进程和全局进程有什么区别?

我也想知道%>_<%有人知道请指教
夜雨寄北大大回复是,e带:的表示是当前应用的私有进程,其他应用的组件不可以跟它跑在同一个进程里面,而对于全局进程,其他应用可以通过shareUID来跟它处于同一个进程里面具有相同Uid的应用可以共享数据,可以互相访问对方的私有数据(主席的书在多进程那一节里面有讲解)

9.多进程有什么要注意的?

1.每次开启多进程,Application都会重新执行一遍,所以如果你在Application做了很多初始化的工作,那就需要判断是哪个进程启动的Application了。

方法:

public class MyApplication extends Application {

  @Override
  public void onCreate() {
    super.onCreate();
    int pid = android.os.Process.myPid();

    String processNameString = "";
    ActivityManager mActivityManager = (ActivityManager)this.getSystemService(getApplicationContext().ACTIVITY_SERVICE);

    for (ActivityManager.RunningAppProcessInfo appProcess : mActivityManager.getRunningAppProcesses()) {
      if (appProcess.pid == pid) {
        processNameString = appProcess.processName;
      }
    }

    if("com.example.whitelaning".equals(processNameString)){
      //do Something
    } else {
      //do Something
    }
  }
}

2.多进程会使单例模式失效,因为两个线程的内存是隔离的。

10.还有什么要知道的?

去看源码吧,你会死去活来的,如果看完还没死,请告诉我私有进程和全局进程的区别吧,我会献上我一年份的膝盖的~

通过此文希望能对Android多线程的资料掌握,谢谢大家对本站的支持!

相关文章

  • Android 深入探究自定义view之事件的分发机制与处理详解

    Android 深入探究自定义view之事件的分发机制与处理详解

    对于安卓程序员来说,自定义view简直不要太重要,毕竟有很多功能,譬如圆形头像这些,用单纯的原生非常难以实现,而用自定义view,简直分分钟
    2021-11-11
  • Android开发笔记SQLite优化记住密码功能

    Android开发笔记SQLite优化记住密码功能

    这篇文章主要为大家详细介绍了Android开发笔记SQLite优化记住密码功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 轻松实现Rxjava定时器功能

    轻松实现Rxjava定时器功能

    这篇文章主要为大家详细介绍了Rxjava实现定时器功能的两种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Android编程设计模式之单例模式实例详解

    Android编程设计模式之单例模式实例详解

    这篇文章主要介绍了Android编程设计模式之单例模式,结合实例形式详细分析了Android开发设计模式中单例模式的概念、功能、实现、使用方法及相关注意事项,需要的朋友可以参考下
    2017-12-12
  • Kotlin ViewModelProvider.Factory的使用实例详解

    Kotlin ViewModelProvider.Factory的使用实例详解

    这篇文章主要介绍了Kotlin ViewModelProvider.Factory的使用,在我们使用 ViewModel 的时候,我们会发现,有的时候我们需要用到 ViewModelFactory,有的时候不需要
    2023-02-02
  • android利用消息机制获取网络图片

    android利用消息机制获取网络图片

    这篇文章主要为大家详细介绍了android利用消息机制获取网络图片的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Android 手机防止休眠的两种实现方法

    Android 手机防止休眠的两种实现方法

    这篇文章主要介绍了Android 手机防止休眠方法的相关资料,一种是在Manifest.xml文件里面声明,另外一种方法是在代码里面修改LayoutParams的标志位,需要的朋友可以参考下
    2017-08-08
  • Android 实现伸缩布局效果示例代码

    Android 实现伸缩布局效果示例代码

    这篇文章主要介绍了Android 实现伸缩布局效果的示例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-01-01
  • Android实现2048小游戏

    Android实现2048小游戏

    这篇文章主要为大家介绍了Android实现2048小游戏的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • Android获取本机各种类型文件的方法

    Android获取本机各种类型文件的方法

    这篇文章主要为大家详细介绍了Android获取本机各种类型文件的方法,包括音乐、视频、图片、文档等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08

最新评论