手机灭屏速度优化

思路

由于灭屏场景下,为了性能需要适当的调整一些动画参数,对用户体验上影响不大。
故可以以下思路
1.缩短动画时间
2.去除灭屏前动画

修改DisplayPowerController

/frameworks/base/services/core/java/com/android/server/display/DisplayPowerController.java

--- a
+++ b/frameworks/base/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -100,7 +100,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call

//  缩短动画时间
-    private static final int COLOR_FADE_OFF_ANIMATION_DURATION_MILLIS = 400;
+    private static final int COLOR_FADE_OFF_ANIMATION_DURATION_MILLIS = 20;


     private static final int MSG_UPDATE_POWER_STATE = 1;
     private static final int MSG_PROXIMITY_SENSOR_DEBOUNCED = 2;
@@ -1092,9 +1095,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                 mPendingScreenOff = false;
                 mPowerState.dismissColorFadeResources();
             } else if (performScreenOffTransition
-                    && mPowerState.prepareColorFade(mContext,
+                    /*&& mPowerState.prepareColorFade(mContext,
                             mColorFadeFadesConfig ?
-                                    ColorFade.MODE_FADE : ColorFade.MODE_COOL_DOWN)
+                                    ColorFade.MODE_FADE : ColorFade.MODE_COOL_DOWN) */

                     && mPowerState.getScreenState() != Display.STATE_OFF) {
                 // Perform the screen off animation.
                 mColorFadeOffAnimator.start();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在 Android 中,当屏幕关闭时,系统会暂停当前活动的 Activity。如果您需要在屏幕关闭时销毁界面,可以在 Activity 的 onPause() 方法中添加 finish() 方法。这样,每当屏幕关闭并且 Activity 进入 onPause() 状态时,Activity 就会被销毁。 以下是示例代码: ``` @Override protected void onPause() { super.onPause(); if(isFinishing()) { // 如果 Activity 即将被销毁,则调用 finish() 方法 finish(); } } ``` 请注意,这种做法可能会导致用户体验不佳,因为用户在打开屏幕时可能会看到 Activity 被销毁并重新创建的过程。因此,最好只在必要时使用这种方法。 ### 回答2: 在Android平台上,当手机屏幕关闭时,系统会根据一些因素来判断是否销毁界面。一般情况下,屏幕关闭并不意味着立即销毁界面,而是进入了一个低功耗的状态,称为灭屏状态。在这种状态下,界面仍然存在,只是没有显示出来。 系统判断是否销毁界面的依据通常有以下几点: 1. Activity生命周期:当屏幕关闭时,处于前台的Activity会调用onPause()方法,然后系统会继续执行onStop()方法。如果系统内存不足,可能会直接调用onDestroy()方法销毁该Activity。但是大部分情况下,系统会保留Activity的状态以便重新显示。 2. 销毁缓存:当屏幕关闭时,系统可能会销毁一些缓存,如图片缓存、数据缓存等,以释放内存资源。 3. 省电模式:有些手机在屏幕关闭时会自动进入省电模式,此时系统可能会终止一些占用内存较大的应用程序,包括销毁界面。 需要注意的是,不同手机厂商可能会有不同的策略来处理屏幕关闭时的界面销毁问题,因此在实际开发中,需要根据具体的需求来管理界面的销毁和恢复。 ### 回答3: 在Android中,灭屏销毁界面是指当用户锁屏或按下电源按钮关闭屏幕时,当前活动界面被销毁。这是由于灭屏会触发系统回调方法,如onPause()和onStop(),从而导致当前界面的生命周期结束。 当用户锁屏灭屏时,系统会自动调用活动的onPause()方法,该方法会暂停活动界面的UI更新和后台操作。同时,系统还会调用onStop()方法,该方法用于释放资源和保存临时数据。因此,在灭屏时,系统会自动销毁界面。 灭屏销毁界面的主要原因是为了优化系统资源的使用。当用户锁屏后,界面的UI更新和后台操作变得无意义,持续执行会浪费系统资源和电量。因此,Android系统会在灭屏时将界面销毁,以释放资源和节省电量。 当用户再次解锁屏幕时,系统会重新创建界面,并调用相应的回调方法,如onStart()和onResume(),使界面恢复到之前的状态。 需注意的是,灭屏销毁界面并不意味着完全终止应用程序的运行,只是暂停了当前界面的更新和操作。其他在后台运行的服务、广播接收器等仍然可以继续执行。而对于希望保持持续运行的操作或后台任务,可以使用后台服务来实现。 总之,Android中的灭屏销毁界面是系统为了优化资源利用和电量消耗而进行的操作。灭屏时,系统会自动销毁当前活动界面,再次解锁屏幕时,系统会重新创建界面并恢复之前的状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

法迪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值