0. 用途

Android设备默认电池策略是均衡模式省电模式, 很少以性能模式运行. 而大型游戏需要CPU&GPU全速运行才流畅.
第三方应用如何检测和修改电池策略?

1. 检测

读cpu配置文件
路径 /sys/devices/system/cpu/cpu0/cpufreq/
文件解释
affected_cpus: 显示修改频率会影响哪些处理器
cpuinfo_cur_freq: CPU的当前工作频率(Android没有)
cpuinfo_min_freq: CPU的最低工作频率
cpuinfo_max_freq: CPU的最高工作频率
cpuinfo_transition_latency: CPU在两个不同频率之间切换所需时间
cpu_utilization: CPU利用率
related_cpus: 需要软件或者硬件来协调频率的CPU列表
scaling_available_frequencies: 通过echo命令, 可调节的主频率列表
scaling_available_governors: 通过echo命令, 可调节的策略模式列表
scaling_cur_freq: 被governor和cpufreq决定的当前CPU工作频率. 该频率是内核认为该CPU当前运行的主频率
scaling_driver: 该CPU当前使用的cpufreq驱动程序
scaling_governor: 当前策略模式
scaling_min_freq: 当前策略模式的下限
scaling_max_freq: 当前策略模式的上限(Android没有)
在linux平台, 需要首先设置scaling_max_freq, 再设置scaling_min_freq
scaling_setspeed: 如果用户选择了自定义模式(userspace), 那么可调节的频率
在scaling_min_freq 和 scaling_max_freq之间, (Android不支持)

策略模式:

  • performance - 最强性能模式
  • powersave - 省电模式
  • ondemand - 自动调节
  • userspace - 用户自定义

机型实测:
小米手机的性能模式和均衡模式都是ondemand, 只是max_freq不同. 用户无法启用performance模式.
那么最强performance模式的用途是什么? 只在跑分时开启?

2. 静默修改

需要root或system权限

su  echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  

3. 调用系统设置

  1. API Level 22, Android 5.1, 精确跳转

    //android.provider.settings.ACTION_BATTERY_SAVER_SETTINGS  Intent i = new Intent("android.settings.BATTERY_SAVER_SETTINGS");  startActivity(i);
  2. Android源码标准实现方式是系统设置Activity + 子设置项fragment
    MIUI虽然是自定义实现, 但接口与Android标准一致, 因此可用.

    Intent i = new Intent();  i.setClassName("com.android.settings", "com.android.settings.Settings");  i.setAction(Intent.ACTION_MAIN);  i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK           | Intent.FLAG_ACTIVITY_CLEAR_TASK           | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);  i.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT, "com.android.settings.fuelgauge.BatterySettings");  startActivity(i);  
  3. 华为手机, HWSettingsActivity

    TODO:  

4. 源码

https://github.com/9468305/android_battery_control

更多相关文章

  1. Android学习笔记:框架模式
  2. Android(安卓)OTA 升级之三:生成recovery.img
  3. Android涉及到的设计模式
  4. Android: JAVA和C# 3DES加密解密
  5. 简单介绍Android中Activity的四种启动模式
  6. Android(安卓)四大组件--activity 的 启动模式和生命周期
  7. Android的联通性---USB的主机模式和从属模式
  8. android中singleTask的home键的问题
  9. Android(安卓)MVP开发模式 google 官方Mvp架构详解(转)

随机推荐

  1. Android(安卓)音频简介(转)
  2. Android导入项目时Android(安卓)jar包丢
  3. 暮拾晨花,回望流年——我的2016
  4. Android(安卓)中自定义View(四)
  5. android 全局变量 Application
  6. android XMl 解析神奇xstream 六: 把集合l
  7. android 资源
  8. 玩转Android---UI篇---TextView(文本框)
  9. android的SDK----google中的翻译
  10. Android(安卓)Studio 1.0 苹果电脑安装配