Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
cjyyx committed Sep 9, 2023
1 parent 7eab750 commit 5b74e72
Show file tree
Hide file tree
Showing 9 changed files with 153 additions and 36 deletions.
Binary file modified Image/Screenshot_1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Image/Screenshot_3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
61 changes: 39 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,35 +14,44 @@

本应用参考了开源项目 https://www.coolapk.com/apk/com.omarea.filter

## 应用截图
## 下载地址

![](Image/Screenshot_1.jpg)![](Image/Screenshot_2.jpg)![](Image/Screenshot_3.jpg)![](Image/Screenshot_4.jpg)
下载链接 1:github release

## 应用原理
https://github.com/cjyyx/ScreenFilter/releases

详见 https://zhuanlan.zhihu.com/p/642886728
下载链接 2:蓝奏云

## 应用设计
https://wwis.lanzouq.com/b04whksif

### 主界面
密码:1234

打开软件,打开准备界面(提示提供相应权限)
## 应用截图

软件主界面,有
![](Image/Screenshot_1.jpg)
![](Image/Screenshot_2.jpg)
![](Image/Screenshot_3.jpg)
![](Image/Screenshot_4.jpg)

- 屏幕滤镜开关(支持状态栏快捷设置)
- 智能亮度开关(支持状态栏快捷设置)(关闭系统自动亮度,自己实现智能亮度)
- 屏幕亮度设置拖动条(与系统状态栏亮度条同步)
- 最低硬件亮度拖动条(最低硬件亮度应设置为手机屏幕关闭类 DC 调光的阈值)
- 最高滤镜不透明度拖动条,可以调整夜间全黑环境下最舒适的屏幕亮度
- 高光照阈值拖动条(光照达到阈值,打开系统自动亮度,使屏幕能够达到最大激发亮度)
- 亮度-光照曲线设置界面按钮
## 应用原理

### 光照控制亮度逻辑
详见 https://zhuanlan.zhihu.com/p/642886728

通过亮度-光照曲线来实现。点击主界面的亮度-光照曲线设置按钮,打开亮度-光照曲线设置界面。可以通过增减修改光照-亮度对应点来调整亮度-光照曲线。
## 应用使用说明

- 屏幕滤镜开关:打开关闭屏幕滤镜;注意开启滤镜时不要开启系统纸质护眼,否则会造成花屏;支持状态栏快捷设置磁贴
- 智能亮度开关:打开关闭智能亮度;控制屏幕实际亮度处于 [ 通过环境光照和亮度-光照曲线计算得的屏幕亮度 - 亮度调高容差, 通过环境光照和亮度-光照曲线计算得的屏幕亮度 + 亮度调低容差 ] 这个区间;支持状态栏快捷设置磁贴
- 正常截屏:状态栏快捷设置磁贴,关闭屏幕滤镜截图,之后恢复屏幕滤镜
- 在多任务界面隐藏:字面意思
- 屏幕亮度设置:与系统状态栏亮度条同步
- 亮光模式阈值:当环境光照超过阈值时,应用会自动关闭屏幕滤镜并打开系统自动亮度,从而使屏幕能够达到最大激发亮度
- 暗光模式阈值:当环境光照低于阈值且屏幕亮度设置条(系统状态栏亮度条)被拖到最低时,设置屏幕亮度为最低值,即系统屏幕亮度为最低硬件亮度,滤镜不透明度为最高滤镜不透明度,屏幕实际亮度 = 最低硬件亮度 * ( 1 - 最高滤镜不透明度 )^2
- 最低硬件亮度:最低硬件亮度应设置为手机屏幕关闭类 DC 调光的阈值
- 最高滤镜不透明度:可以调为暗光模式下最舒适的屏幕亮度
- 亮度调高容差:与智能亮度调节有关
- 亮度调低容差:与智能亮度调节有关
- 亮度-光照曲线设置界面:可以通过增减修改光照-亮度对应点来调整亮度-光照曲线

在满足亮度-光照曲线的同时,设置了一定的容差,使屏幕亮度不会频繁变化,也使用户能够在一定范围内选择亮度。

## 项目依赖

Expand All @@ -52,19 +61,27 @@

可以直接用 Android Studio 打开项目。开发时使用的是 2022.2.1 版。

## 项目架构
## 项目各模块简介

### GlobalStatus

使项目各模块解耦合。当一个模块要调用另一个模块的方法时,必须通过 GlobalStatus。
使项目各模块解耦合。当一个模块要调用另一个模块的方法时,必须通过 GlobalStatus

### AppConfig

管理应用的配置

### Utils

通用的工具

### UI

与应用 UI 有关的模块位于 ui 文件夹下。
与应用 UI 有关

### FilterViewManager

应用的核心模块,负责管理屏幕滤镜
应用的核心模块,负责管理屏幕滤镜

### AppAccessibilityService

Expand Down
Binary file modified app/release/app-release.apk
Binary file not shown.
10 changes: 3 additions & 7 deletions app/src/main/res/layout/activity_preparatory.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,20 +37,16 @@
android:layout_height="match_parent"
android:autoLink="web"
android:text="
1、项目源码:
1、github 项目源码:
\n
https://github.com/cjyyx/ScreenFilter
\n
应用原理:
\n
https://zhuanlan.zhihu.com/p/642886728
\n\n
注意:
\n- 支持直接拖动系统状态栏亮度条来控制亮度
\n- 当环境光照较高时,应用会自动关闭屏幕滤镜并打开系统自动亮度,从而使屏幕能够达到最大激发亮度
\n- 开启滤镜时不要开启系统纸质护眼,否则会造成花屏
\n
"
android:textSize="14sp" />
android:textSize="16sp" />

<View
android:layout_width="match_parent"
Expand Down
46 changes: 42 additions & 4 deletions app/src/main/res/layout/activity_readme.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,24 +33,62 @@
android:layout_height="16dp" />

<TextView
android:layout_width="300dp"
android:layout_width="320dp"
android:layout_height="match_parent"
android:autoLink="web"
android:text="
1、项目源码:
应用简介
\n
对于 OLED 屏幕的手机,一般情况下,屏幕亮度越低,频闪越强。本应用控制屏幕具有较高的亮度,并通过给屏幕添加一层不透明度可调的黑色滤镜来调节实际亮度,从而实现**低亮度下也有低频闪**的效果。
\n\n
项目源码
\n
https://github.com/cjyyx/ScreenFilter
\n
应用原理
应用原理
\n
https://zhuanlan.zhihu.com/p/642886728
\n\n
下载地址
\n
下载链接 1:github release
\n
https://github.com/cjyyx/ScreenFilter/releases
\n
下载链接 2:蓝奏云
\n
https://wwis.lanzouq.com/b04whksif
\n
密码:1234
\n\n
注意:
\n- 支持直接拖动系统状态栏亮度条来控制亮度
\n- 当环境光照较高时,应用会自动关闭屏幕滤镜并打开系统自动亮度,从而使屏幕能够达到最大激发亮度
\n- 开启滤镜时不要开启系统纸质护眼,否则会造成花屏
\n\n
解释:
\n- 屏幕滤镜开关:打开关闭屏幕滤镜;注意开启滤镜时不要开启系统纸质护眼,否则会造成花屏;支持状态栏快捷设置磁贴
\n- 智能亮度开关:打开关闭智能亮度;控制屏幕实际亮度处于 [ 通过环境光照和亮度-光照曲线计算得的屏幕亮度 - 亮度调高容差, 通过环境光照和亮度-光照曲线计算得的屏幕亮度 + 亮度调低容差 ] 这个区间;支持状态栏快捷设置磁贴
\n- 正常截屏:状态栏快捷设置磁贴,关闭屏幕滤镜截图,之后恢复屏幕滤镜
\n- 在多任务界面隐藏:字面意思
\n- 屏幕亮度设置:与系统状态栏亮度条同步
\n- 亮光模式阈值:当环境光照超过阈值时,应用会自动关闭屏幕滤镜并打开系统自动亮度,从而使屏幕能够达到最大激发亮度
\n- 暗光模式阈值:当环境光照低于阈值且屏幕亮度设置条(系统状态栏亮度条)被拖到最低时,设置屏幕亮度为最低值,即系统屏幕亮度为最低硬件亮度,滤镜不透明度为最高滤镜不透明度,屏幕实际亮度 = 最低硬件亮度 * ( 1 - 最高滤镜不透明度 )^2
\n- 最低硬件亮度:最低硬件亮度应设置为手机屏幕关闭类 DC 调光的阈值
\n- 最高滤镜不透明度:可以调为暗光模式下最舒适的屏幕亮度
\n- 亮度调高容差:与智能亮度调节有关
\n- 亮度调低容差:与智能亮度调节有关
\n- 亮度-光照曲线设置界面:可以通过增减修改光照-亮度对应点来调整亮度-光照曲线
"
android:textSize="16sp" />
android:textSize="18sp" />

<View
android:layout_width="match_parent"
Expand Down
22 changes: 19 additions & 3 deletions 其它/发布.md → 其它/OLED 手机降低频闪原理介绍.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ SVM 值越高,频闪程度越高。而且 SVM 值是可以进行精确计算

![](PasteImage/2023-07-11-13-32-45.png)

up 主先看评测制作 app 先看频闪,同样展示了 OLED 手机屏幕 SVM 随屏幕亮度变化曲线

![](PasteImage/Screenshot_2023-08-19-20-19-45-946_com.xk.flash.jpg)

因此可以得出结论,一般情况下,OLED 屏幕亮度越高,频闪越低。结合分析 SVM 计算过程得到的结论,有降低屏幕频闪的方法:**维持屏幕在高亮度,通过增加一个不透明度可调节的黑色滤镜来控制屏幕实际亮度,从而实现在低亮度下也有低频闪**,这就是通过屏幕滤镜降低手机频闪的原理。

## 屏幕滤镜在安卓系统的实现
Expand Down Expand Up @@ -188,20 +192,32 @@ public class FilterViewManager {

对于 OLED 屏幕的手机,一般情况下,屏幕亮度越低,频闪越强。本应用控制屏幕具有较高的亮度,并通过给屏幕添加一层不透明度可调的黑色滤镜来调节实际亮度,从而实现**低亮度下也有低频闪**的效果。

项目源码: https://github.com/cjyyx/ScreenFilter
github 项目源码: https://github.com/cjyyx/ScreenFilter

下载链接 1:github release

https://github.com/cjyyx/ScreenFilter/releases

下载链接: https://github.com/cjyyx/ScreenFilter/releases
下载链接 2:蓝奏云

https://wwis.lanzouq.com/b04whksif

密码:1234

注意:

1. 支持直接拖动系统状态栏亮度条来控制亮度
2. 当环境光照较高时,应用会自动关闭屏幕滤镜并打开系统自动亮度,从而使屏幕能够达到最大激发亮度
3. 最低支持版本安卓11
4. 本应用在开发时没有考虑兼容性,目前只能保证在我的手机上正常运行。我的手机系统是 MIUI14
5. 开启滤镜时不要开启系统纸质护眼,否则会造成花屏

## 参考资料

[1] 低调的山, https://space.bilibili.com/394790691

[2] Navis-慢点评测, https://space.bilibili.com/8986182

[3] 维基百科, https://en.wikipedia.org/wiki/Stroboscopic_effect
[3] 维基百科, https://en.wikipedia.org/wiki/Stroboscopic_effect

[4] 先看频闪, https://www.bilibili.com/video/BV1K14y1D7mg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
50 changes: 50 additions & 0 deletions 其它/activity_readme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
应用简介
\n
对于 OLED 屏幕的手机,一般情况下,屏幕亮度越低,频闪越强。本应用控制屏幕具有较高的亮度,并通过给屏幕添加一层不透明度可调的黑色滤镜来调节实际亮度,从而实现**低亮度下也有低频闪**的效果。

\n\n

项目源码
\n
https://github.com/cjyyx/ScreenFilter
\n
应用原理
\n
https://zhuanlan.zhihu.com/p/642886728

\n\n

下载地址
\n
下载链接 1:github release
\n
https://github.com/cjyyx/ScreenFilter/releases
\n
下载链接 2:蓝奏云
\n
https://wwis.lanzouq.com/b04whksif
\n
密码:1234

\n\n

注意:
\n- 支持直接拖动系统状态栏亮度条来控制亮度
\n- 当环境光照较高时,应用会自动关闭屏幕滤镜并打开系统自动亮度,从而使屏幕能够达到最大激发亮度
\n- 开启滤镜时不要开启系统纸质护眼,否则会造成花屏

\n\n

解释:
\n- 屏幕滤镜开关:打开关闭屏幕滤镜;注意开启滤镜时不要开启系统纸质护眼,否则会造成花屏;支持状态栏快捷设置磁贴
\n- 智能亮度开关:打开关闭智能亮度;控制屏幕实际亮度处于 [ 通过环境光照和亮度-光照曲线计算得的屏幕亮度 - 亮度调高容差, 通过环境光照和亮度-光照曲线计算得的屏幕亮度 + 亮度调低容差 ] 这个区间;支持状态栏快捷设置磁贴
\n- 正常截屏:状态栏快捷设置磁贴,关闭屏幕滤镜截图,之后恢复屏幕滤镜
\n- 在多任务界面隐藏:字面意思
\n- 屏幕亮度设置:与系统状态栏亮度条同步
\n- 亮光模式阈值:当环境光照超过阈值时,应用会自动关闭屏幕滤镜并打开系统自动亮度,从而使屏幕能够达到最大激发亮度
\n- 暗光模式阈值:当环境光照低于阈值且屏幕亮度设置条(系统状态栏亮度条)被拖到最低时,设置屏幕亮度为最低值,即系统屏幕亮度为最低硬件亮度,滤镜不透明度为最高滤镜不透明度,屏幕实际亮度 = 最低硬件亮度 * ( 1 - 最高滤镜不透明度 )^2
\n- 最低硬件亮度:最低硬件亮度应设置为手机屏幕关闭类 DC 调光的阈值
\n- 最高滤镜不透明度:可以调为暗光模式下最舒适的屏幕亮度
\n- 亮度调高容差:与智能亮度调节有关
\n- 亮度调低容差:与智能亮度调节有关
\n- 亮度-光照曲线设置界面:可以通过增减修改光照-亮度对应点来调整亮度-光照曲线

0 comments on commit 5b74e72

Please sign in to comment.