Thermal Engine
Thermal 相关的东西主要在Vendor/qcom/proprietary/thermal-engine 目录下:
thermal-engine.conf 文件可以用来配置高低温时CPU的工作模式、充电电流等相关操作。
 
 
也可通过修改ss-data.c thermal_config thermal_monitor-data-8916.c两个文件中的结构体成员来配置。
当然,程序会优先选择conf文件进行解析,但是conf文件中涉及到的各项内容,在 c文件中的结构体要存在。
(也就是说,你在conf文件中配置了CPU1,但是ss-data.c中对应的平台结构体没有CPU1这一项,那么相关的配置文件参数是不会生效的)
 
此文件由 therml_config.c 来解析,使用
int load_config(struct thermal_setting_t *settings, const char *pFName)
在 therml_config_v2.c 中使用
int load_config(struct thermal_setting_t *settings, const char *pFName, int flag)
 
主要看传入的第二个参数
const char *cf = (pFName) ? pFName : CONFIG_FILE_DEFAULT;
如果pFname不存在,就用默认文件
 
thermal.h文件中定义
#ifndef CONFIG_FILE_DEFAULT
#define CONFIG_FILE_DEFAULT "/system/etc/thermal-engine.conf"
#endif
 
在安卓O版本中,thermal-engine.conf 放在了 /system/vendor/etc/ 目录下,这个目录实际上是链接的vendor/etc/的目录,这个要特别注意。不止thermal这一块变了,camera的目录也发生了比较大的改变。
另外在安卓O版本中,调试的时候,输入adb shell thermal-engine -o 关于CPU的配置总是不能输出。但是adb root 的一下就可以了,这个应该是权限问题。具体会不会影响thermal机制的运行,还要实际测一下试试。

 
Thermal engine 调试
 
1.找到当前的thermal engine配置
  1. adb shell thermal-engine –o > thermal-engine.conf
 
2.修改该文件后推送到设备上
 
3.将”debug“放到thermal-engine.conf的首行,然后重新启动thermal-engine服务
  1. adb shell stop thermal-engine
  2. adb root
  3. adb remount
  4. adb push thermal-engine.conf /system/etc/thermal-engine.conf
  5. adb shell sync .
  6. adb shell strat thermal-engine --debug &
4.logcat查看系统温度log
  1. adb logcat –v time –s ThermalEngine

Android Thermal-engine的更多相关文章

  1. Android Thermal HAL 降龙十八掌

    基本概念 参阅下面两篇文章,就可以大概了解一些概念的内容了 https://source.android.com/devices/architecture/hidl/thermal-mitigatio ...

  2. Android游戏引擎总汇 原文出处:http://software.intel.com/en-us/blogs/2012/03/13/game-engines-for-android?page=1

    随着Android系统的使用越来越广泛,了解一下Android平台下的游戏引擎就非常有必要.而同时因为基于Intel x86的移动设备越来越多,我也非常关注支持x86的移动游戏引擎.然而就目前为止游戏 ...

  3. JustWeEngine - 轻量级游戏框架

    JustWeEngine - 轻量级游戏框架 An easy open source Android game engine. Github地址 引擎核心类流程图 使用方法 引入Engine作为Lib ...

  4. React Native纯干货总结

    随着项目也渐渐到了尾声,之前的项目是mobile开发,采用的是React Native.为即将要开始做RN项目或者已经做过的小伙伴可以参考借鉴,也顺便自己做一下之前项目的总结. 文章比较长,可以选择自 ...

  5. QLGame 2d Engine Android端环境搭建(通过jni读取assets目录的文件)

    QLGame 2d Engine win端已经实现了一个动物的动画了,初步的东西已经完成,考虑在Android端也实现这些基本的东西,这样跨平台的引擎也就实现了! 要在Android下编程,首先要实现 ...

  6. Android简易实战教程--第十一话《获取手机所有应用信息Engine类详解》

    如果想要获取系统手机应用的详细信息,那么下边代码可以直接作为模板使用.笔者对每一行代码都做了注解,供您参考.直接上代码: package com.example.itydl.engines; impo ...

  7. Android/Linux Thermal框架分析及其Governor对比

    图表 1 Thermal框架 随着SoC性能的快速提升,功耗也极大提高,带来的负面影响是SoC的温度提高很快,甚至有可能造成物理损坏.同时功耗浪费也降低了电池寿命. 从上图可知,Thermal框架可以 ...

  8. Android/Linux Thermal Governor之IPA分析与使用

    IPA(Intelligent Power Allocator)模型的核心是利用PID控制器,Thermal Zone的温度作为输入,可分配功耗值作为输出,调节Allocator的频率和电压值. 由P ...

  9. Genymotion 插件在 Eclipse 和 Android Studio 中点击后无法初始化 Initialize Engine: failed 解决方法

    Genymotion 插件已更新至 1.0.6,目前无法初始化的问题已经解决. ------------------------------------------------------------ ...

随机推荐

  1. COJ 1411 Longest Consecutive Ones

    题目大意: 希望在 k 步之内,将尽可能多的1移到相邻的位置上 这里依靠前缀和解决问题 我们用pos[i]保存第i个1的位置,这里位置我以1开始 用sum[i]保存前 i 个1从 0 点移到当前位置所 ...

  2. codevs3730 无线网络发射选址

    题目描述 Description 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129条东西向街道和129条南北向街道所形 ...

  3. 使用C#执行PowerShell命令

    按照网上的教程配置会发生SSL链接错误 该文章的最后使用了SSL来保证账户在连接服务器的时候不发生账户认证错误,但是我经过测试发现这个是不可行的,有一种更为简单的方法 首先要对服务器进行winrm设置 ...

  4. 【C语言】模拟实现strcmp函数

    //模拟实现strcmp函数 //str1>str2,返回1 //str1=str2,返回0 //str1<str2,返回-1 #include <stdio.h> #incl ...

  5. squid配置透明代理

    搞了半个月的squid普通代理和透明代理最终差点儿相同了!! squid配置透明代理主要有两步.见图: 第一个基本的步骤:设置client默认网关,让默认网关指向squid代理server water ...

  6. LeetCode 203. Remove Linked List Elements (移除链表中的项)

    Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 --& ...

  7. 阿里大数据比赛sesson2_RF&amp;GBRT(下)

    -----------__-----------接上文---------__---------- 2.Xlab RF上手 2.1.训练特征表准备 训练的特征表gbrt_offline_section_ ...

  8. 将jsp页面的<s:iterator>的数据返回到action

    jsp: <form method="post" id="createTable"> <table width="98%" ...

  9. python实现自动重启本程序的方法 技术的漩涡

    python实现自动重启本程序的方法 http://www.jb51.net/article/69174.htm import requests, time url_l = []with open(' ...

  10. Professional, Entreprise, Architect版本的区别

    RAD Studio,Delphi和C ++ Builder有3个不同的版本:Professional,Enterprise和Architect.直到最近,我们还出售了一些企业版功能作为专业版的插件, ...