• SystemUI-导航栏-home键上推后出现search的过程


    1.PhoneStatusBar.java中的prepareNavigationBarView 函数中
      mNavigationBarView.setListener(mRecentsClickListener,mRecentsPreloadOnTouchListener, mHomeSearchActionListener);

      注册mHomeSearchActionListener 去 showSearchPanel();

    2.SearchPanelView.java 中
    class GlowPadTriggerListener implements GlowPadView.OnTriggerListener {

            public void onTrigger(View v, final int target) {
                final int resId = mGlowPadView.getResourceIdForTarget(target);
                mActionTarget.launchAction(mTargetActivities[target - mStartPosOffset]);
            } 
       
        }
    其中 ActionTarget.launchAction  通过log得知是ACTION_ASSIST
     public boolean launchAction(String action) {
            try {
                ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
            } catch (RemoteException e) {
                // ignored
            }全职高手www.wo-cn.com/quanzhigaoshou

           if (action.equals(ACTION_ASSIST)) {
                Intent intent = new Intent(Intent.ACTION_ASSIST);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                mContext.startActivity(intent);
                return true;
        }      
      }


    Android的启动分为内核启动、Android启动、launcher启动,我们的SystemServer就处于Android启动中,以下是大致流程图:

                                                                init->ServiceManager->Zygote->SystemServer->... ...

    在SystemServer中,初始化了Android系统中的Java层服务,如PowerManagerService、WindowManagerService等等,当然也包括了SystemUIService,它们通过ServiceManager的addService()方法,添加到ServiceManager的管理中。实际上,根据后面的分析这里add了一个很重要的StatusBarManagerService。这个Service在后面会用到的。

  • 相关阅读:
    “百度杯”CTF比赛 九月场 code
    初识thinkphp(3)
    i春秋CTF web题(1)
    初识thinkphp(2)
    初识thinkphp(1)
    0MQ底层队列设计
    0MQ文档导读
    LF模式是个坑,ZeroIce中间件让你体会这个痛
    0xe7f001f0!?NDK调试过程,无故抛出SIGSEGV。
    KDevelop
  • 原文地址:https://www.cnblogs.com/jiangye/p/3337016.html
Copyright © 2020-2023  润新知