安卓源码阅读心得总结

前言

阅读安卓源码心得总结

【知识点】SystemServer 与 SystemService、SystemServiceManager 的关系

    【SystemServer】:是系统所有服务起航的地方,一般自己添加的服务也需要添加在这里启动 
    
    【SystemService】:系统服务一般需要继承实现的类 
    
    【SystemServiceManager】: 是在 SystemServer 中用来管理系统服务的类,他有一个 SystemService 链表
                    保存了系统服务。
                    

【应用举例】:
     public final class SystemServer
    {
        ...
        ///////////////////////////////////////////////////////////////////////////////
        // 一、创建一个 SystemServiceManager 管理系统服务 
        mSystemServiceManager = new SystemServiceManager(mSystemContext);
        
        ...
        ////////////////////////////////////////////////////////////////////////////////
        // 二、启动系统服务,并添加到 SystemServiceManager 中的 SystemService 链表中进行管理
        mActivityManagerService = mSystemServiceManager.startService(ActivityManagerService.Lifecycle.class).getService();
        mPowerManagerService = mSystemServiceManager.startService(PowerManagerService.class);
        mSystemServiceManager.startService(BluetoothService.class);
        
        ...
        ////////////////////////////////////////////////////////////////////////////////
        // 三、真正启动系统服务:调用系统服务覆写的 onBootPhase 接口
        mSystemServiceManager.startBootPhase(SystemService.PHASE_WAIT_FOR_DEFAULT_DISPLAY);
        ...
        
    }   

【非常好】xxxInteral 是在 xxxService 中实现的

【知识点】Andoird Context 类提供 app 大部分接口

【知识点】AudioPolicyService 的实现位于其父接口 AudioPolicyInterfaceImp.java 中

【知识点】Bpxx 和 Bnxx 实现位于 Ixx.cpp 中

【知识点】C++ 类实现在同名文件中

【知识点】Context 父类_子类实现为 ContextImpl

【知识点】onFirstRef() sp 强指针第一次调用,老罗有讲

【知识点】sensor 框架中有介绍 c++单实例类实现

【知识点】Server 服务器_ Service 服务

【知识点】xxxManager 是 Binder 客户端,xxxService 是 Binder 服务端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值