Android的进程和线程

线程

多线程的4种方式

  1. Handler+Thread
  2. AsyncTask
  3. ThreadPoolExecutor
  4. IntentService

线程分类

  • 守护线程, 例:时钟处理线程、idle线程、垃圾回收线程、屏幕更新线程等
  • 非守护线程(用户线程)
    必须等所有的Non-daemon线程都运行结束了,只剩下daemon的时候,JVM才会停下来,注意Main主程序是Non-daemon线程,默认产生的线程全部是Non-daemon线程。

线程优先级

线程优先级分为10个级别,分别用Thread类常量表示

进程

多进程之间通信方式

  • AIDL:功能强大,支持进程间一对多的实时并发通信,并可实现 RPC (远程过程调用)。
  • Messenger:支持一对多的串行实时通信, AIDL 的简化版本。
  • Bundle:四大组件的进程通信方式,只能传输 Bundle 支持的数据类型。
  • ContentProvider:强大的数据源访问支持,主要支持 CRUD 操作,一对多的进程间数据共享,例如我们的应用访问系统的通讯录数据。
  • BroadcastReceiver:即广播,但只能单向通信,接收者只能被动的接收消息。
  • 文件共享:在非高并发情况下共享简单的数据。
  • Socket:通过网络传输数据。

refrence

[Android 多进程通信] https://www.jianshu.com/p/84a12977dc26
[Android多线程的四种方式] https://www.jianshu.com/p/2b634a7c49ec
[Android多线程:你必须要了解的多线程基础知识汇总] https://cloud.tencent.com/developer/article/1424838
Android 中的进程
Android 中包含 native 进程和 java进程。

1、nativie 进程:采用C/C++ 实现,不包含dalvik实例的进程。/system/bin/目录下面的程序文件运行后都是以native进程形式存在的。
2、java进程:Android中运行与dalvik 虚拟机之上的进程。
dalvik虚拟机的宿主进程由fork()系统调用创建,所以每一个java进程都是存在于一个native进程中,因此,java进程的内存分配比native进程复杂,因为进程中存在一个虚拟机实例。

native 进程 和 java进程如何通信?

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容