Android kill Launcher 3次后黑屏

简介: Android kill Launcher 3次后黑屏

平台


rk3288 + android 5.11


问题


在adb shell中, 连续调用3次kill Launcher后, Launcher无法正常显示.

关键LOG:


01-01 20:14:27.738 W/ActivityManagerService(  475): Force removing ActivityRecord{323bcec9 u0 com.android.launcher3/.Launcher t1}: app died, no saved state


分析:


一个关键的计数: launchCount


|-- frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java


int launchCount;        // count of launches since last state


|-- frameworks/base/services/core/java/com/android/server/am/ActivityStack.java


boolean removeHistoryRecordsForAppLocked(ProcessRecord app) {
    //判断是否已经尝试启动2次以上
      } else if (r.launchCount > 2 &&
                            r.lastLaunchTime > (SystemClock.uptimeMillis()-60000)) {
                        // We have launched this activity too many times since it was
                        // able to run, so give up and remove it.
                        remove = true;
                    }
      ...
      //LOG 输出的地方:
      Slog.w(TAG, "Force removing " + r + ": app died, no saved state");
                            EventLog.writeEvent(EventLogTags.AM_FINISH_ACTIVITY,
                                    r.userId, System.identityHashCode(r),
                                    r.task.taskId, r.shortComponentName,
                                    "proc died without state saved");
  }
    final void activityStoppedLocked(ActivityRecord r, Bundle icicle,
            PersistableBundle persistentState, CharSequence description) {
    ...
    //正常退出后清0
            r.launchCount = 0;
        }


|-- frameworks/base/services/core/java/com/android/server/am/ActivityStackSupervisor.java


final boolean realStartActivityLocked(ActivityRecord r,
           ProcessRecord app, boolean andResume, boolean checkConfig)
           throws RemoteException {
    //启动一次自加1
    r.launchCount++;
   }


相关文章
|
8月前
|
Android开发
Android Launcher研究(二)-----------Launcher为何物,究竟是干什么
Android Launcher研究(二)-----------Launcher为何物,究竟是干什么
258 2
|
8月前
|
Java Android开发
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
1105 0
|
8月前
|
Android开发
Android 如何将定制的Launcher成为系统中唯一的Launcher
Android 如何将定制的Launcher成为系统中唯一的Launcher
268 2
|
8月前
|
存储 Java Android开发
Android系统 设置第三方应用为默认Launcher实现和原理分析
Android系统 设置第三方应用为默认Launcher实现和原理分析
1126 0
|
8月前
|
存储 Android开发
android launcher总体分析
android launcher总体分析
133 1
|
8月前
|
Java Android开发
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
Android桌面快捷方式图标生成与删除 使用Intent与launcher交互
143 1
|
8月前
|
Android开发
Android launcher development resources
Android launcher development resources
40 1
|
8月前
|
Shell 开发工具 Android开发
如何单独 build android ap (以launcher为例)
如何单独 build android ap (以launcher为例)
42 1
|
8月前
|
Linux 开发工具 Android开发
Android Launcher研究(一)-----------图文详解手把手教你在Windows环
Android Launcher研究(一)-----------图文详解手把手教你在Windows环
75 0
|
XML 存储 搜索推荐