<The Fucking Source Code>
注:以下均为android源码Framework层修改。
设计实现在任意界面从屏幕边缘上滑弹出快捷操作栏,包括亮度调节、正在后台运行的程序显示、一键加速、关闭后台进程、开关控制(含wifi、双卡数据网络、飞行模式、位置信息、蓝牙、闪光灯、屏幕旋转锁定、快捷振动模式)。点击快捷栏其他地方收回快捷栏。
效果如下(动图效果后面加):
主要设计事项有以下几点:
1)总开关:将功能的开关设置写入Settings中,每次弹出快捷栏读取设置信息
2)屏幕上滑操作:监听屏幕坐标,根据按下时的坐标是否在规定范围内以及上滑的距离来判断是否弹出快捷栏
3)自定义ShortcutDialog快捷栏
4)开关控制及状态更新:自定义开关的控制和系统原生的开关需要保持同步状态及更新,所以开关控制的逻辑应嵌入系统的开关中,不是单纯的控制
5)亮度调节:使用系统的亮度控件
6)一键加速:获取正在运行程序,过滤掉特定项后根据包名杀掉相关进程并更新UI界面
其中,关键点有任意界面上滑调出快捷栏、开关状态更新、获取正在运行程序和kill。
下面只讲着三个关键点: