zoukankan      html  css  js  c++  java
  • 图解Android

     通过 图解Android - Binder 和 Service 一文中,我们已经分析了Binder 和 Service的工作原理。接下来,我们来简要分析Android 系统里面都有哪些重要的Service, 它们分别完成什么样的功能。

     Android 大部分的系统Services 都运行在 System Server 这个进程里,用一个简单的方法来看看都有哪些重要的Service, “ps -t | grep <system_server pid>"

    system    1078  938   780164 51232 ffffffff 00000000 S system_server
    system    1083  1078  780164 51232 ffffffff 00000000 S GC
    system    1084  1078  780164 51232 ffffffff 00000000 S Signal Catcher
    system    1085  1078  780164 51232 ffffffff 00000000 S JDWP
    system    1086  1078  780164 51232 ffffffff 00000000 S ReferenceQueueD
    system    1087  1078  780164 51232 ffffffff 00000000 S FinalizerDaemon
    system    1088  1078  780164 51232 ffffffff 00000000 S FinalizerWatchd
    system    1089  1078  780164 51232 ffffffff 00000000 S Binder_1
    system    1090  1078  780164 51232 ffffffff 00000000 S Binder_2
    system    1093  1078  780164 51232 ffffffff 00000000 S SurfaceFlinger
    system    1095  1078  780164 51232 ffffffff 00000000 S VSyncThread
    system    1096  1078  780164 51232 ffffffff 00000000 S ConsoleManagerT
    system    1097  1078  780164 51232 ffffffff 00000000 S EventThread
    system    1185  1078  780164 51232 ffffffff 00000000 S SensorService
    system    1186  1078  780164 51232 ffffffff 00000000 S er.ServerThread
    system    1187  1078  780164 51232 ffffffff 00000000 S UI
    system    1188  1078  780164 51232 ffffffff 00000000 S WindowManager
    system    1189  1078  780164 51232 ffffffff 00000000 S ActivityManager
    system    1191  1078  780164 51232 ffffffff 00000000 S ProcessStats
    system    1192  1078  780164 51232 ffffffff 00000000 S PackageManager
    system    1193  1078  780164 51232 ffffffff 00000000 S FileObserver
    system    1196  1078  780164 51232 ffffffff 00000000 S AccountManagerS
    system    1198  1078  780164 51232 ffffffff 00000000 S PackageMonitor
    system    1199  1078  780164 51232 ffffffff 00000000 S UEventObserver
    system    1200  1078  780164 51232 ffffffff 00000000 S BatteryUpdateTi
    system    1201  1078  780164 51232 ffffffff 00000000 S PowerManagerSer
    system    1202  1078  780164 51232 ffffffff 00000000 S AlarmManager
    system    1203  1078  780164 51232 ffffffff 00000000 S SoundPool
    system    1204  1078  780164 51232 ffffffff 00000000 S SoundPoolThread
    system    1205  1078  780164 51232 ffffffff 00000000 S er$SensorThread
    system    1208  1078  780164 51232 ffffffff 00000000 S InputDispatcher
    system    1209  1078  780164 51232 ffffffff 00000000 S InputReader
    system    1210  1078  780164 51232 ffffffff 00000000 S BluetoothManage
    system    1220  1078  780164 51232 ffffffff 00000000 S MountService
    system    1221  1078  780164 51232 ffffffff 00000000 S VoldConnector
    system    1222  1078  780164 51232 ffffffff 00000000 S NetdConnector
    system    1223  1078  780164 51232 ffffffff 00000000 S CallbackHandler
    system    1224  1078  780164 51232 ffffffff 00000000 S CallbackHandler
    system    1226  1078  780164 51232 ffffffff 00000000 S NetworkStats
    system    1227  1078  780164 51232 ffffffff 00000000 S NetworkPolicy
    system    1228  1078  780164 51232 ffffffff 00000000 S WifiP2pService
    system    1229  1078  780164 51232 ffffffff 00000000 S WifiStateMachin
    system    1230  1078  780164 51232 ffffffff 00000000 S WifiService
    system    1231  1078  780164 51232 ffffffff 00000000 S ConnectivitySer
    system    1235  1078  780164 51232 ffffffff 00000000 S WifiManager
    system    1236  1078  780164 51232 ffffffff 00000000 S Tethering
    system    1237  1078  780164 51232 ffffffff 00000000 S CaptivePortalTr
    system    1239  1078  780164 51232 ffffffff 00000000 S WifiWatchdogSta
    system    1240  1078  780164 51232 ffffffff 00000000 S NsdService
    system    1241  1078  780164 51232 ffffffff 00000000 S mDnsConnector
    system    1242  1078  780164 51232 ffffffff 00000000 S CallbackHandler
    system    1249  1078  780164 51232 ffffffff 00000000 S SyncHandlerThre
    system    1250  1078  780164 51232 ffffffff 00000000 S AudioService
    system    1251  1078  780164 51232 ffffffff 00000000 S backup
    system    1256  1078  780164 51232 ffffffff 00000000 S AppWidgetServic
    system    1259  1078  780164 51232 ffffffff 00000000 S AsyncTask #1
    system    1331  1078  780164 51232 ffffffff 00000000 S UsbService host
    system    1332  1078  780164 51232 ffffffff 00000000 S watchdog
    system    1338  1078  780164 51232 ffffffff 00000000 S LocationManager
    system    1340  1078  780164 51232 ffffffff 00000000 S CountryDetector
    system    1341  1078  780164 51232 ffffffff 00000000 S ThrottleService
    system    1344  1078  780164 51232 ffffffff 00000000 S NetworkTimeUpda
    

    看看,System_Server进程有多繁重,里面有这么多的线程,图中黄色高亮的是各个service的主服务线程,每个service都会有一个服务主线程和若干个后台线程,实际运行中数量会动态增长,因为应用程序对Service 接口的远程调用会运行在专门的Binder线程(关于Binder 和 Service 请参考 图解Android - Binder 和 Service)。

    在这些服务中,下面几个最为重要,因为他们关系到应用程序如何启动,响应用户输入,并最终将图像输出显示。因此被广泛的讨论和学习,他们是

            *  Window Manager Service.

            *  Activity Manager Service.

            *  Surface Flinger

            *  Input Manager Service.

    本文将通过一张大图描述这些Service之间的关系,让读者对上述的过程有个大致的了解,每个Service内部运行的细节将在独立的章节进行学习。

    原始大图可以在 (https://github.com/samchen2009/android_uml) 下载

    神奇吧,通过一张图我们就可以将几十万行代码进行了一个高度的概括。要想图中每个方块箭头代表什么意思?请参考文章 (http://www.cnblogs.com/samchen2009/p/3315999.html)。这里,我们用不同的颜色来标识了不同的模块,其中一些颜色较深的代表最核心的部分,也是我们学习Android frameowk的入口。

    OK, 让我们跳转到 Android GUI 系统 (1) - 概论, 开始Android Framewok之旅吧。

     

  • 相关阅读:
    Warning: Cannot modify header information
    curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in
    PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings.
    出现Deprecated: Function ereg_replace() is deprecated in 的原因及解决方法
    APMServ5.2.6 升级PHP版本 到高版本 5.3,5.4
    Apache无法启动解决 the requested operation has failed
    用json获取拉钩网的信息
    json
    如何用组件组装一个简单的机器人
    vue-组件
  • 原文地址:https://www.cnblogs.com/samchen2009/p/3315993.html
Copyright © 2011-2022 走看看