背景
由于车机设备资源不够,可采用 Android Studio 自带模拟器来模拟车机多屏显示,如下图所示模拟一个Activity在不同屏幕显示
配置模拟器环境
-
更新Android Studio:
-
配置AVD参数
Android SDK:12
-
开启第二块屏幕
按如下截图4个步骤,设置Second Display的分辨率和屏幕密度
指定Activity显示的屏幕
- 查看当前屏幕ID信息,用下面adb命令
adb shell dumpsys display
可知有两块‘屏幕’:
Display States: size=2
Display Id=0
Display State=ON
Display Brightness=0.39763778
Display SdrBrightness=0.39763778
Display Id=2
Display State=ON
Display Brightness=0.0
Display SdrBrightness=0.0
- 利用 adb 启动Activity到指定的屏幕 --[displayName] --display 2代表上文查询到的屏幕名称
adb shell am start -n youPackageName/.MainActivity --display 2
adb shell am start -n youPackageName//.MainActivity --display 0
结尾
多屏显示即把Window显示到不同的Display,问题在于如何维护页面的状态。简单的方法是限制Activity的重建,这样就可以防止页面状态丢失,但是需要自己在Activity.onConfigurationChange()函数内更新页面的布局。
[1]: https://innovorder.dev/multi-screen-management-within-android-56ef9052f066
[2]: https://developer.android.com/studio/releases?hl=zh-cn#multi-display_support