1.SystemUI 原生项目语言编译出来后只有中英文 ,具体的打包配置路劲如下
Android 9.0移栈逻辑
private void moveTaskToTargetStack() { ActivityDisplay display = mStackSupervisor.getActivityDisplay(0); if (display.getChildCount() < MOVE_TASK_MIN_SIZE) { return; } ActivityStack stack = display.getTopStack(); ActivityStack topNextstack = display.getChildAt(display.getChildCount() - 2); if (null == stack || null == topNextstack) return; ActivityRecord topAr = stack.getTopActivity(); if (null == topAr) return; AttributeCache.Entry ent = AttributeCache.instance().get(topAr.info.packageName, topAr.info.getThemeResource(), com.android.internal.R.styleable.Window, 0); if (ent == null) { Slog.w(TAG, "moveTaskToTargetStack AttributeCache.Entry is null"); return; } final boolean windowIsTranslucent = ent.array.getBoolean(com.android.internal.R.styleable.Window_windowIsTranslucent, false); if (!windowIsTranslucent) { Slog.w(TAG, "moveTaskToTargetStack Opaque subject"); return; } mWindowManager.deferSurfaceLayout(); try { ArrayList<TaskRecord> tasks = getRecentTasks().getVisibleRecentTasks(); int size = tasks.size(); TaskRecord movedTask = null; if (mPackages == null) { mPackages = mContext.getResources().getStringArray(com.android.internal.R.array.config_moveTaskTargetPackages); } for (int i = 0; i < size; i++) { TaskRecord taskRecord = tasks.get(i); ActivityRecord ar = taskRecord.getTopActivity(); if (taskRecord.getChildCount() == 0 || ar == null) { continue; } if (ArrayUtils.contains(mPackages, ar.packageName)) { movedTask = taskRecord; break; } } if (movedTask == null) { Slog.w(TAG, "moveTaskToTargetStack moveTask is null !!!"); return; } int targetStackId = stack.mStackId; if (topNextstack.mStackId == movedTask.getStack().mStackId) { Slog.w(TAG, "moveTaskToTargetStack Target ready no Stack shift"); return; } Slog.w(TAG, "moveTaskToTargetStack " + movedTask.getStack().mStackId + " Move it under the top"); display.moveStackBehindStack(movedTask.getStack(), stack); mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, false); } catch (Exception e) { Slog.e(TAG, "moveTaskToTargetStack Exception e " + e); e.printStackTrace(); } finally { mWindowManager.continueSurfaceLayout(); } mStackSupervisor.resumeFocusedStackTopActivityLocked(); try { Thread.sleep(200); } catch (InterruptedException e) { throw new RuntimeException(e); } }
内存抓取
am dumpheap 1125 /data/systemui.hprof