Android 默认支持在java层两个display 屏幕,
private static final int[] BUILT_IN_DISPLAY_IDS_TO_SCAN = new int[] {
SurfaceControl.BUILT_IN_DISPLAY_ID_MAIN,
SurfaceControl.BUILT_IN_DISPLAY_ID_HDMI,
};
Android P 启动时,会再DisplayManagerService->LocalDisplayAdapter尝试扫描display
我的目的是将开机动画运行在HDMI屏
只需修改frameworks/base/cmds/bootanimation/
1、将所有eDisplayIdMain替换成eDisplayIdHdmi
sp<IBinder> dtoken(SurfaceComposerClient::getBuiltInDisplay(
ISurfaceComposer::eDisplayIdHdmi));
2、添加.setLayerStack(control, 1)
到如下位置
t.setLayer(control, 0x40000000)
.setLayerStack(control, 1)
.apply();
最终将显示到HDMI屏