Android默认开机横屏总结
来源:互联网 发布:java输入流和输出流 编辑:程序博客网 时间:2024/06/06 06:48
转自 http://blog.csdn.net/q1183345443/article/details/53068526
修改分为三部分:
1: 上层(Java)修改
既然设计到屏幕的修改, 肯定想到了直接修改WMS(比较粗暴的方式)。
其实Android的很多的需求都是通过配置文件来的, 这么明显的设计需求只要去找相应的配置就可以了。
core/res/res/values/config.xml
修改后发现开机后, 开机画面是横屏显示的,进入锁屏界面, 屏幕做了一次旋转操作, 这个时候窗口才真正的横屏。
跟需求还不一样, 进入锁屏前需要横屏。
所以需要修改WMS的默认方向。
/services/core/Java/com/Android/server/wm/WindowManagerService.Java
修改后开机发现: 开机画面启动后是竖屏的, 运行一段时间变成横屏, 进入锁屏界面, 也是横屏, 不用再做横竖切换。
2: 底层(C++)修改
开机启动画面, 刚开始的时候是竖屏的。
原因很简单: 底层的SF初始化的时候肯定是竖屏的得跟WMS匹配。 所以修改也很简单。
framework/native/services/surfaceflinger/DisplayDevice.cpp
3: Bootanimation 修改
到第二部的修改一直都很顺利, 而且分析的效果跟修改后的显示也是比较相符的。
但是出现的一闪的画面, 让我比较苦恼, 一直以为是修改的不够彻底, 一直找其他初始化的地方是否没修改, 找了半天没找到相关的修改, 因为应该考虑的地方都已经修改了。
所以接下来只能看Bootanimation了。
终于发现了原因:
Surface申请的时候是按照竖屏申请的, 这个时候我们的屏幕已经是横屏了。
修改后运行, 发现完美解决了开机横屏的问题。
对于进入锁屏前一闪的问题: 这个也是由Bootanimation导致, 因为Bootanimation开始的时候是竖屏, WMS设置屏幕为横屏的时候, Bootanimation还没有消失, 所以导致了一闪的问题。
0 0
- Android默认开机横屏总结
- Android默认开机横屏总结
- Android 开机默认横竖屏
- Android x86 开机默认高分
- 如何修改android开机启动默认横竖屏
- android 开机动画修改以及默认壁纸
- android开机默认中文的方法
- Android 4.1 设置默认开机动态壁纸
- Android 4.1 设置默认开机动态壁纸
- android开机默认中文的方法
- android 开机默认进入指定Launcher
- android 开发板修改开机默认桌面
- 修改android 开机之后的默认语言成中文
- Android 开机启动APP,不显示默认的桌面
- Android 4.2.2 开机默认开启USB调试
- android 设定默认开机时的network mode
- android第一次开机时是否默认打开数据连接
- Android 替换系统里的默认字体与开机画面
- Libnids分析
- mysql数据库锁定机制
- A1056. Mice and Rice (25)
- 时间序列分析(3)R语言-最基础的回归模型
- 配置声明(Configuration Declaration)
- Android默认开机横屏总结
- 深入理解hibernate中的API
- hashmap 中hash函数h & (length-1)详解
- Kaggle学习(一):numpy基本函数使用
- 多工程目录的实现
- 搭建WebSocket服务器与客户端
- c++智能指针(smart pointer)详解
- java 解决图片防盗链
- PAT 1016 Phone Bills