如果理解了Android的设计的原理, 其实这个修改原理十分简单, 比一些网上流出来的粗暴的修改方式既美观又实用。

修改分为三部分:

1: 上层(Java)修改

既然设计到屏幕的修改, 肯定想到了直接修改WMS(比较粗暴的方式)。

其实Android的很多的需求都是通过配置文件来的, 这么明显的设计需求只要去找相应的配置就可以了。

core/res/res/values/config.xml

false

90

修改后发现开机后, 开机画面是横屏显示的,进入锁屏界面, 屏幕做了一次旋转操作, 这个时候窗口才真正的横屏。

跟需求还不一样, 进入锁屏前需要横屏。

所以需要修改WMS的默认方向。

/services/core/Java/com/Android/server/wm/WindowManagerService.Java

int mRotation = 1;

修改后开机发现: 开机画面启动后是竖屏的, 运行一段时间变成横屏, 进入锁屏界面, 也是横屏, 不用再做横竖切换。

2: 底层(C++)修改

开机启动画面, 刚开始的时候是竖屏的。

原因很简单: 底层的SF初始化的时候肯定是竖屏的得跟WMS匹配。 所以修改也很简单。

framework/native/services/surfaceflinger/DisplayDevice.cpp

// initialize the display orientation transform.

setProjection(DisplayState::eOrientation90, mViewport, mFrame);

再开机发现问题来了, 开机画面显示有问题, 而且进入到锁屏界面前也会闪一下。

3: Bootanimation 修改

到第二部的修改一直都很顺利, 而且分析的效果跟修改后的显示也是比较相符的。

但是出现的一闪的画面, 让我比较苦恼, 一直以为是修改的不够彻底, 一直找其他初始化的地方是否没修改, 找了半天没找到相关的修改, 因为应该考虑的地方都已经修改了。

所以接下来只能看Bootanimation了。

终于发现了原因:

status_t status = SurfaceComposerClient::getDisplayInfo(dtoken, &dinfo);

// create the native surface

sp control = session()->createSurface(String8("BootAnimation"),

dinfo.h, dinfo.w, PIXEL_FORMAT_RGB_565);

Surface申请的时候是按照竖屏申请的, 这个时候我们的屏幕已经是横屏了。

修改后运行, 发现完美解决了开机横屏的问题。

对于进入锁屏前一闪的问题: 这个也是由Bootanimation导致, 因为Bootanimation开始的时候是竖屏, WMS设置屏幕为横屏的时候, Bootanimation还没有消失, 所以导致了一闪的问题。

抓住这个修改主线, 不论Android怎么变, 是之前4.0 还是将来的6.0, 都是可以修改的。 (PS: 这里不涉及fastboot的logo的修改, 这个修改更简单 替换图片就可以了)

以上所述是小编给大家介绍的Android 5.0 开机横屏修改方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

android 开机动画竖屏,Android 5.0 开机横屏修改方法相关推荐

  1. android开机动画黑屏,Android 如何解决开机过程kernel logo到开机动画黑屏问题

    在开机过程,如果将bootanimation.zip的图片换成非黑色背景,发现从kernel logo到bootanimation之间会黑屏一下或者黑屏时间过长,这类问题的原因有可能是和Display ...

  2. Android二维码识别率优化,Android Zxing 转换竖屏扫描且提高识别率的方法

    最近的一个Android需要用到扫码功能,用的是Zxing开源库.Zxing的集成就不说了,但是Zxing默认的是横屏扫码,在实际生产中并不适用,需要改为竖屏扫描. 转竖屏步骤: 1>. And ...

  3. android播放器竖屏,Android 巧用DecorView实现列表或详情视频播放器竖屏及全屏切换...

    在平时开发过程中,如果使用到视频播放器的功能,那就一定会涉及到全屏切换的操作 以往常规操作基本如下 设置全屏播放步骤 1.横屏 2.视频播放器尺寸调整 3.隐藏其他多余控件 恢复小屏播放 1.竖屏 2 ...

  4. android开机动画视频教程,【Android开机动画制作教程】开机动画文件组成及其详解释疑!...

    [开机动画位置] 安卓原版系统开机动画位置: system/media/bootanimation.zip或者data/local/bootanimation.zip 这两处的区别在于动画放在syst ...

  5. Android动画之前先闪一下,开机动画(闪动的ANDROID字样的动画图片)

    开机动画(闪动的ANDROID字样的动画图片) Android 的系统登录动画相仿于Windows系统的滚动条,是由前景和背景两张PNG图片构成,这两张图片存在于/system/framework / ...

  6. android无法自动旋屏,Android 手动设置屏幕方向后不能自动转屏问题

    如题,Android在手动设置屏幕方向后不能使用自动转屏了,这是因为手动设置屏幕方向 如: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATIO ...

  7. iOS 项目整体是竖屏,个别页面支持横屏

    最近在做一个视频APP,工程整体是竖屏的,如下图,播放器需支持横屏.在转屏的过程遇到很痛苦的问题.[UIApplication sharedApplication].statusBarOrientat ...

  8. 开机后黑屏看不到桌面_电脑开机后黑屏进入不了桌面的处理方法

    电脑在使用的过程中难免会出现一些问题,例如有的用户就反映说自己的电脑出现了开机后黑屏进入不了桌面的情况,我们要怎么解决这一问题呢?其实关于电脑开机进不了桌面黑屏的解决方法是非常简单的,下面就让小编教来 ...

  9. android开机动画多长时间_Android系统开机动画的一生

    前言 在上篇文章[Android从上电到加载launcher,都发生了啥]中,简单介绍了Android系统从上电到加载launcher的流程,但比较粗略,特别是init之后,开机动画如何启动,又如何结 ...

最新文章

  1. 2021全国高校计算机能力挑战赛(初赛)C语言试题二
  2. Intel硬件加速 VS CUDA完胜 视频转码感受
  3. 有人知道 I3C 吗?
  4. jpa使用注解传递对象_注解(下)
  5. 英语每日阅读---1、科学美国人60秒:如果觉得唱歌很难 那就吹口哨吧
  6. canvas转盘转动?
  7. Query DSL(2)----Full text queries
  8. 活动目录(Active Directory)域故障解决实例(转载)
  9. ionic3 图片(轮播)预览 ionic-gallary-modal组件使用方法
  10. 超级简单C语言进制转换代码
  11. H5跳转支付宝小程序
  12. Matlab导入外部数据绘制函数曲线
  13. 获取上个月第一天和最后一天
  14. ipad未能与itunes连接到服务器,为什么无法连接到iTunes Store?iPhone/iPad解决方法
  15. 始于情怀,终于品质----方寸微T630 USB3.0 替换 CYUSB3014
  16. iOS 9的App Thinning方案如何节省存储空间
  17. 完了,又火一个 。。。
  18. NoMachine出现 The session negotiation failed的解决方案及踩坑总结
  19. 最强手机编程App - Dcoder汉化版
  20. 输入阻抗 输出阻抗

热门文章

  1. 多伦多大学计算机专音乐专业,多伦多音乐专业学院
  2. 免费领取kindle paperwhite6,码农键盘,人体工学鼠标~
  3. 网络编程之TIME_WAIT详解
  4. WatchDog Timer看门狗
  5. 【承】Redis 原理篇——关于 Redis 中的事务
  6. 绑定文本框事件,浏览框。按钮单击事件
  7. 牛客网试题+答案分析+大牛面试经验(8)
  8. 需要一个3d人模型定穴位脚本也就是需要一个
  9. html5设置字体闪烁,HTML最简单的文字闪烁代码
  10. 微信小程序引入公用css及js