Skip to content

进阶用法 动态响应配置

kuanglinfei edited this page Aug 3, 2018 · 4 revisions

注意事项

动态响应功能需要保证微工具箱一直处于后台运行状态。
且手机界面上的悬浮窗(如悬浮球、性能监视器、边缘手势、加速球等)会一直被认为是前台应用,导致无法判定当前实际的前台应用,从而导致动态响应功能失效,因此你需要把悬浮窗应用添加到“忽略列表”。
同样,分屏也会影响动态响应的效果

本篇介绍:自定义你的“动态响应”模式配置文件

方式1:临时自定义配置

  • “微工具箱”目前内置了 骁龙系列(625,820,821,835)以及Exynos系列(8890)的专属动态响应配置。但是,如果你的设备不属于上述Soc,或者你希望自定义配置文件的话,可参考下面的步骤。
  • 工作原理:工具箱首先会检查/data/powercfg.sh是否存在,如果存在则直接使用,如果不存在才会检测是否有内置的配置文件可用(兼容性检测),因此你只需要自行提供这个文件,即可跳过兼容性检测。
  1. 创建脚本文件,格式如:配置格式示例
    注意:linux对脚本编码格式非常敏感,你的脚本文件必须是unix编码,关于如何更改文件编码,可参考:Unix编码
  2. 复制到/data目录,文件命名为powercfg.sh,设置权限为755
  3. 激活微工具箱的辅助功能(一般在“设置”-“无障碍”里面,或者,在工具箱主界面点击右上角的齿轮按钮,在“微工具箱增强服务”界面内,点击顶部的按钮也可快速跳转到辅助功能设置。
  4. 在确保辅助服务已启动后,将“微工具箱增强服务”界面的动态响应功能开启。
  5. 回到微工具箱主界面,打开左侧抽屉导航栏,点击“性能配置”即可为每个应用单独选择运行模式。
  6. 预运行脚本:除了/data/powercfg.sh外,微工具箱还会在加载配置阶段首先执行/data/powercfg-base.sh,因此你可以将一些只需要执行一次的优化代码写到/data/powercfg-base.sh,这个文件只需要按照普通脚本的格式编写即可。

方式2:集成到应用内部

  • 工作原理:微工具箱通过getprop ro.board.platform获取soc信息,并检查应用包assets目录下是否有同名的配置文件夹,你可以通过adb命令或终端模拟器执行该命令,来查看你的设备soc名称。
  1. 解压微工具箱apk文件,进入assets目录。可以看到,里面已经有msm8896、msm8898、exynos5等文件夹,这是为不同soc定制的性能配置文件。除此外,还有一个powercfg-template文件夹,这就是预先准备好的配置模板,你可以在模板的基础上加以修改,根据你的调频代码编写经验,或者参考其它soc的配置代码。
  2. 微工具箱允许你定义两组配置文件,用户可以在“性能配置-设置”里切换配置文件。powercfg-base-default.sh、powercfg-default.sh理解为“偏重省电”选项的配置,powercfg-base-bigcore.sh、powercfg-bigcore.sh为“性能优先”的配置。powercfg-base-*.sh只在微工具箱刚刚启动动态响应时执行一次,常用于放一些基础优化脚本。而powercfg.sh才是主要配置,用于模式切换。
  3. 按照soc名称放置配置文件,如:骁龙820设备执行getprop ro.board.platform显示msm8996,因此配置文件放在assets/msm8898目录中
  4. 重新打包(使用zip方式压缩即可,压缩完后.zip后缀改为.apk),对apk进行签名,然后安装即可。后续使用方式参考 方式1 的 步骤3-5。