System UI 调试方法

工作需要想了解下SystemUi的启动流程,所以需要调试下SystemUI,这样比较高效:

1、SyStemUI是随系统启动的,所以我们先要在系统启动的时候把SystemUI的启动关掉,这个在SystemServer里面,可以如下注释:

    static final void startSystemUi(Context context) {
        Intent intent = new Intent();
        intent.setComponent(new ComponentName("com.android.systemui",
                    "com.android.systemui.SystemUIService"));
        //Slog.d(TAG, "Starting service: " + intent);
       // context.startServiceAsUser(intent, UserHandle.OWNER);
    }

这样,系统起来或就看不到systemUI了,如果系统起来后没有systemUI进程,我们最好自己做一个应用,与systemUi在同一进程,这样方便调试onCreate等

2、现在SystemUi没有起来了,我们自己做一个测试例子,在里面启动SystemService,如下:

				 Intent intent = new Intent();
			        intent.setComponent(new ComponentName("com.android.systemui",
			                    "com.android.systemui.SystemUIService"));
			    //    Slog.d(TAG, "Starting service: " + intent);
			        context.startService(intent);

这样,我们就可以调试SystemUI这个APK了

调试过程中,发现这样调试还有一个问题,就是调试不到10s左右,adb调试跟eclipse自动断开了,这个是由于startService的超时导致ANR,我们可以针对这个调试把相应的ANR注释掉,在ActivityManagerService.java的appNotResponding方法中添加如下代码:

        if(app.processName.equalsIgnoreCase("com.example.adbtool"))
        	return ;

到这里,我们就可以正常的调试SystemUI了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值