美文网首页Android技术知识Android开发Android开发
Android进程的简单整理以及多线程编程的意义

Android进程的简单整理以及多线程编程的意义

作者: 大虾啊啊啊 | 来源:发表于2018-08-28 09:54 被阅读23次

    在介绍Android系统的进程和线程之前,我们先简单了解一下,什么是进程?什么是线程?按照操作系统中的描述,线程是CPU调度的最小单元,同时线程是一种有限的系统资源。而进程一般指一个执行单元,在pc和移动设备中指的的是一个程序或者一个应用。一个进程可以包含多个线程,因此进程和线程是包含和被包含的关系。

    一、Android中为什么要开启多线程?

    不管是在pc上的程序,还是移动系统中的应用,简单情况下只有一个线程,叫主线程,在移动系统中也可以叫做UI线程,当我们要进行大量的耗时任务的时候,因为是在一个线程中执行的任务,任务都是串行的,所以会导致主线程的堵塞,会导致程序暂时无法响应。而在Android系统中,只有UI线程可以刷新UI,这样一来就会导致ANR(Application not responding),即用户无响应。解决这个问题,就需要把一些耗时任务放在子线程中执行,然后通过Android的消息机制通知主线程刷新UI即可。

    二、Android系统进程的简单整理

    我们先来看一张系统启动架构图。


    image.png

    从架构图上我们可以看到,安卓系统中主要包含了这几个进程:Init进程、Zygite进程、System Server进程、和应用进程。
    Init进程:linux中的根进程,而Andoid系统是基于linux系统的,也可以当做Andrid系统中启动的第一个进程。
    Zygote进程:所有Java进程的父进程,由Init孵化。
    System Server进程:System Server进程由Zygote进程孵化,在这个进程中主要用于启动系统中的各项服务,如:ActivityManagerService、WindowManagerService等。
    应用进程:当我们在启动我们编写的一个应用客户端的时候,比如启动一个APP,就会启动一个应用进程。有自己的虚拟机和运行环境。

    相关文章

      网友评论

        本文标题:Android进程的简单整理以及多线程编程的意义

        本文链接:https://www.haomeiwen.com/subject/poctwftx.html