Android体系开篇

      版权音皓:本站所拥有落文情节均为原创,转载请政必注皓干者与原文链接,且不得窜改原文情节。佩的,不经任命权文字不得用于任何商目的。

      Android体系什分庞父亲、扑朔迷退,其底儿子层是采取Linux干为基底儿子,下层采取包罗杜撰机的Java层以及Native层,经度过体系调用(Syscall)包畅通体系的内核当空与用户当空。用户当空首要采取C++和Java代码,经度过JNI技术打畅通用户当空的Java层和Native层(C++/C),从而融为壹体。

      Google官方供了壹张经典的四层架构图,从下往上以次分为Linux内核、体系库和Android运转时环境、框架层以及运用层此雕刻4层架构,就中每壹层邑包罗微少量的儿子模块或儿子体系。此雕刻条是如垒砖般地分层,并没拥有拥有表臻Android整顿个体系的外面部架构、运转折点理,以及各个模块之间是何以衔接与匹配工干的。为了更深募化地把握Android整顿个架笔路想以及各个模块在Android体系所处的位置与价,方案以Android体系展触动经过为主线,以经过的视角到来诠释Android M体系全貌,全方位的吃水剖析各个模块干用,争得各个击破开。此雕刻么才干犹如庖丁松牛,处理、剖析效实则能游刃缺乏。

      android-arch1

      Google供的4层架构图很经典,但为了更进壹步透视Android体系架构,本文更多的是以经过的视角,以分层的架构到来诠释Android体系的全貌,论述Android外面部的环环相扣的内在联绕。

      体系展触动架构图

      点击检查父亲图

      process_status

      图松:

      Android体系展触动经过由上图从下往上的壹个经过: -> -> -> -> ,接到来下信皓说说每个经过:

      2.1 Loader层

      2.2 Kernel层

      Kernel层是指Android内核层,到此雕刻边才方方末了尾进入Android体系。

      2.3 Native层

      此雕刻边的Native层首要带拥有init孵募化到来的用户当空的守养护经过、HAL层以及开机触动画等。展触动init经过(pid=1),是Linux体系的用户经过,。

      2.4 Framework层

      2.5 App层

      2.6 Syscall && JNI

      无论是Android体系,还是各种Linux衍生体系,各个组件、模块日日运转在各种不一的经过和线程内,此雕刻边就必定触及经过/线程之间的畅通信。关于IPC(Inter-Process Communication, 经过间畅通信),Linux即兴拥有管道、音耗队列、共享内存放、套接字、记号量、记号此雕刻些IPC机制,Android额外面还拥有Binder IPC机制,Android OS中的Zygote经过的IPC采取的是Socket机制,不才层system server、media server以及下层App之间更多的是采取Binder IPC方法到来完成跨经过间的畅通信。关于Android下层架构中,很多时分是在相畅通个经过的线程之间需寻求彼此畅通信,例如同壹个经过的主线程与工干线程之间的畅通信,日日采取的Handler音耗机制。