如何让android设备实现AOD

  • 1. 什么是AOD?
    • 1.1 AOD的作用:
    • 1.2 怎么开启AOD?
    • 1.3 为什么我的手机上不能看到AOD这个功能?
  • 2 修改Android源码实现AOD

1. 什么是AOD?

(要知道更多关于AOD的内容,百度。介绍概念不是这篇的重点。)
它的全称应该是:Always On Display,即我们常说的“熄屏显示”或”灭屏显示“功能,不点亮全屏点亮手机屏幕,只让屏幕局部亮起。

1.1 AOD的作用:

用户不做过多的操作,手机一直局部显示一些重要的内容(时间、重要信息等)。一个小区域能一直看到信息,且功耗小。

1.2 怎么开启AOD?

1)先确定下自己手机屏幕是LCD还是AMOLED,若是LCD,不用找了,没有AOD。
2)不同手机,操作不同。可以参考下面网页对号查看:

https://www.xda-developers.com/how-to-enable-always-on-display-android/#:~:text=To%20enable%20Always%20On%20Display%3A%20Open%20the%20Settings,on%20Home%20screen%2C%20Lock%20screen%20%26%20Always-On%20Display.

1.3 为什么我的手机上不能看到AOD这个功能?

值得注意的是,若是LCD显示屏,AOD功能的意义不是很大。因为LCD屏发光需要整屏的背光,即使是局部亮起,背光还是一直开着的,也就是说,一直是整块屏幕在发光,黑色是因为光没投射出来进入人眼。功耗还是在那里。即使有些APP可以在LCD手机上模拟AOD显示效果,但也不是真正的AOD。如果一直亮着,超级耗电。
若是AMOLED显示屏,就能做到使部分像素点单独显示,不显示的像素不点亮,大大降低了功耗,可以做到一直显示(做到Always on)。
所以知道为什么,即使android设备在软件方面支持AOD,手机厂商也不会开放这个功能,因为没意义。

2 修改Android源码实现AOD

android设备中,在Settings里有一个开关项:设置 - 显示 - 主动显示(Settings - Display - Ambient displays),就可以看到Always On Display。

若没找到,说明Android源码中没实现,这时,就要去改代码实现了。

代码不分析了,也不贴代码在这里了。源码改这2个地方:
1) frameworks/base/core/res/res/values/config.xml里,找到

<bool name="config_dozeAlwaysOnDisplayAvailable">false</bool>

将默认的 false 改为 true :

<bool name="config_dozeAlwaysOnDisplayAvailable">true</bool>

2)同样在 frameworks/base/core/res/res/values/config.xml里,找到

 <string name="config_dozeComponent" translatable="false"></string>

将默认的 false 改为 true :

  <string name="config_dozeComponent" translatable="true"></string>

编译生成image,更新设备image。再次reboot后,在设备中按照这个路径点击,出现了
Settings - Display - Ambient displays,点击进入,可以看到Always on开关。

如下:


息屏后,显示:

如何让android设备实现AOD相关推荐

  1. Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...

    1.首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍. Android系统移植与调试之------->如何修改Android设备添加重启.飞行模 ...

  2. 设置android启动器,教程:在任意 Android 设备上安装 HTC 专属桌面启动器

    HTC 手机的标志性 Sense UI 几乎是伴随着 Android 系统成长起来的,BlinkFeed 作为 Sense 5 的新特性进入了人们的视野之中.经历了几代更新,BlinkFeed 受到更 ...

  3. Android设备adb授权的原理【转】

    本文转载自:http://blog.csdn.net/zahuopuboss/article/details/50831171 http://blog.csdn.net/sowhat_ah/artic ...

  4. Android判断当前的android设备是否处于联网状态

    2019独角兽企业重金招聘Python工程师标准>>> 首先,要想获得当前android设备是否处于联网状态,那么android本身给我们提供了一个服务 private Connec ...

  5. android获取wifi连接状态,获取android设备wifi连接状态

    本文将介绍如何获取android设备wifi连接状态! 添加访问权限(AndroidManifest.xml文件里) Java代码(MainActivity.java文件) package com.e ...

  6. 安装APK到android设备那些事儿

    APK是AndroidPackage的缩写,即Android系统的应用软件安装包(apk).APK是类似Symbian Sis或Sisx的文件格式.通过将APK文件直接传到Android模拟器或And ...

  7. Android之如何获取Android设备的唯一识别码笔记

    因为需要在项目中需要获得一个稳定.可靠的设备唯一识别码,因此搜了一些网上的资料.今天我们将介绍几种方式. 1. DEVICE_ID 假设我们确实需要用到真实设备的标识,可能就需要用到DEVICE_ID ...

  8. android设备不自带sqlite3问题(sqlite3 not found)

    现在好多手机都没有sqlite3.打开/system/xbin目录发现只有两个文件,sqlite3真的就被cut掉了. sqlite3一般情况下都是通用的,所以随便去找个sqlite3就好. 解决方法 ...

  9. 基于Android设备的Kali Linux渗透测试教程第1章渗透测试

    基于Android设备的Kali Linux渗透测试教程第1章渗透测试 渗透测试(Penetration Testing)是一种通过模拟攻击者所采用的技术与方法,攻击目标系统的安全控制措施,并取得访问 ...

最新文章

  1. echarts datazoom 显示的位置设置
  2. DNA提取方法对浮游生物群落研究结果的影响
  3. cython安装ubuntu_ubuntu上的Cython独立可执行文件
  4. C语言程序设计 | 指针的进阶(一):字符指针、数组指针、指针数组、函数指针
  5. 关于使用rem单位,calc()进行自适应布局
  6. NSX发布Guest Introspection虚拟机时,主机报错的解决方法
  7. RHEL6本地YUM源配置
  8. SharePoint 2013 母版页修改后,无法添加应用程序
  9. admui3字体无法删除_做了一个过往字体汇总,含字体使用教程及简易搜寻字体方法...
  10. vcpkg工具+vs2019
  11. (ensp)华为USG6000v防火墙简单配置
  12. 怎么禁止使用计算机的软件,电脑如何禁止程序运行 一键彻底禁止电脑软件运行方法...
  13. openGL 例子:创建一个二十面体
  14. 深入浅出mysql_深入浅出MySQL读书笔记(一)
  15. 陌生人交友软件有哪些?陌生人社交APP排名|良心推荐
  16. u盘NTFS与FAT32区别
  17. JavaScript归纳总结
  18. 从unity到unreal4 虚幻4学习笔记 一 : ue4与vs studio、vs code开发环境的安装与配置
  19. ResourceUtils
  20. Acer Linux改win7,宏基台式机win10如何改win7系统_宏基台式机预装win10怎么换win7

热门文章

  1. 微信小程序新框架wex
  2. 馆中窥职:小公司没那么糟糕
  3. 计算机显卡设置方法,电脑小技巧: 显卡巧设置, 让你的电脑告别卡顿
  4. 论文笔记:PICARD: Parsing Incrementally for Constrained Auto-Regressive Decoding from Language Models
  5. 【MobaXterm】MobaXterm基础使用
  6. MATLAB学习 矩阵分析(矩阵范数,秩, 行列式,迹, 化零矩阵)
  7. php添加字段,zblog php主题添加支持文章自定义字段功能
  8. 客户关系管理与CRM
  9. lnmp下h5ai文件服务器配置从入门到死亡
  10. 手机通讯录管理系统——c语言