精华内容
下载资源
问答
  • Android 功耗优化

    2019-11-07 19:45:03
    功耗优化- ...android 功耗优化- https://blog.csdn.net/zhangbijun1230/article/category/7618452 MTK 驱动- https://blog.csdn.net/zhangbijun1230/article/cat...

    功耗优化- https://blog.csdn.net/zhangbijun1230/article/category/7541658
    android 功耗优化- https://blog.csdn.net/zhangbijun1230/article/category/7618452
    MTK 驱动- https://blog.csdn.net/zhangbijun1230/article/category/7494418
    高通驱动- https://blog.csdn.net/zhangbijun1230/article/category/7494419
    手机modem开发- https://blog.csdn.net/zhangbijun1230/article/category/6500603

      Android App耗电发热分析,adb shell dumpsys batterystats ;
      这个命令可以打印出于电池消耗相关的信息,可以通过,adb shell dympsys batterystats > D:/batterystats.txt ;

    Android功耗评测系列之——软件评测方案原理- https://www.cnblogs.com/Yanss/p/10146839.html
    processAppUsage()方法中,一个应用的总功耗在这里体现出来了:
    cpu;Wakelock(保持唤醒锁); 数据天线(2G/3G/4G);WIFI;蓝牙;传感器;相机;闪光灯;

      量测电流波形需要采样精度高,而且能保存整个电流变化为文件形式的专业工具。
    PowerMonitor- https://www.msoon.com/LabEquipment/PowerMonitor/

    Android功耗值测量- https://www.jianshu.com/p/bf4cf01c4450
     设备制造商必须提供组件功耗配置文件/frameworks/base/core/res/res/xml/power_profile.xml
     要测定电源配置文件的值,请使用测量设备使用功耗的硬件,并执行所需信息的各种操作。测量这些操作期间的所用功耗并计算值(根据需要从其他基线所用功耗中获得差异)。
     对于运行Android 7.0的设备,系统会收集低能耗(LE)扫描和蓝牙网络流量(如RFCOMM和L2CAP)的数据,并将这些活动与启动应用程序相关联。

    android 功耗 android 功耗分析方法和优化- https://blog.csdn.net/zhangbijun1230/article/details/80164118
    - 高通平台
    一般情况下的底电流参考数据上限是:
    512M RAM < 1.5mA; 1G RAM < 2mA; 2G RAM < 2.6mA

      通过top命令,可以查询到cpu占用较高的应用。如果一个应用一直在占用cpu,而此时并没有打开该应用,那么该应用很可能会导致待机异常。adb shell 

    CPU/GPU的动态调频调压可以优化手机的功耗表现。该影响是整体性的,系统性的。
    CPU降频主要通过两种方式实现,都可以达到降频的目标:
      1、设置CPU工作在powersave模式。设置该模式后,CPU将一直工作在最低频率(300000hz)。此时手机最省电,但是有可能会出现手机运行变卡顿。
      2、限制CPU最高频率,以限制CPU的运行频率上限。在超级省电模式下,CPU工作的宗旨是:CPU工作频率低+运行不卡,两项都要保障。

      在android系统的耗电量排行里,cpu的耗电占 了比较大的一部分比例,也就是说,cpu的使用率和使用频率将直接或间接的影响电量的分配和使用,但很遗憾,android-sdk中没有为 android的开发者提供类似cpu管理的功能,但是当下很多省电类应用或专业的cpu管理软件都提供了cpu的降频甚至是超频的功能。
      CPU进入WFI后,整个系统就依靠一颗SCP:SPM来控制睡眠/唤醒的流程,它会去关注各个子系统的状态,SPM =System Power Manager。

      Android的定时任务有两种实现方式,Timer类和Alarm机制。Timer有一个明显的短板,不适合长期后台运行的定时任务。为了能让电池更加耐用,每种手机都会有自己的休眠策略,Android手机就会在长时间不操作的情况下自动让CPU进入到睡眠状态,这就有可能导致Timer中的定时任务无法正常运行。而Alarm机制则不存在这种情况,它具有唤醒CPU的功能,即可以保证每次需要执行定时任务的时候CPU能正常工作。重点来了:从Android 4.4之后,Alarm任务的触发时间将会变得不准确,有可能会延迟一段时间后任务才能得到执行。这不是bug,而是系统在耗电性方面进行的优化。系统会自动检测目前有多少Alarm任务存在,然后将触发时间将近的几个任务放在一起执行,这就可以大幅度的减少CPU被唤醒的次数,从而有效延长电池的使用时间。
       除了常规的异步网络、多线程技术、本地缓存等等之外,Android省电开发还有一个重要的方面是:wifi比蜂窝数据,包括2G(GPRS)、3G更省电:a)尽量在Wi-Fi下传输数据,当然这是废话,不过可以考虑在有Wi-Fi的时候做预加载,比如应用中心的zip包、手Q web类应用的离线资源等;b)非Wi-Fi下,尽量减少网络访问,每一次后台交互都要考虑是否必须。虽然WiFi接入方式已经占到移动互联网用户的50%,但是是有些手机设置为待机关闭WiFi连接,即便有Wi-Fi信号也只能切换到蜂窝数据;

      在Dalvik中,应用每次运行,字节码都需要通过即时编译器转换为机器码,这回拖慢应用的运行效率,而在ART环境中,应用在第一次安装时,字节码就会预先编译成机器码,使其成为了真正的本地应用。这个过程叫做预编译。这样的话,应用的启动和执行都会变得更加快速。但是ART的缺点是预编译完的机器人占用了更大的存储空间,应用的安装需要更长的时间。但是牺牲空间时间换取省电速度,在Android应用中还是可以接受的,毕竟性能的提升,运行速度的变快,体验更流畅,电池续航更久显得更重要。
      经测试,谷歌最新的Android L系统与上一版本相比续航能力可以提升36%。

     Project Volta省电模式、BatterySaver省电模式;
     Android 5.0的省电模式是通过JobSchedulerAPI以及自动调节屏幕亮度、刷新率来达到省电的效果,而且还使用了Project Volta量化每个应用的耗电量,在手机快没电的情况下主动降低CPU的主频或者关闭通讯模块,以获得更长的待机时间。还配备了一个Battery Bistorian电池历史记录功能,可让详细显示设备的耗电情况。

    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK| PowerManager.ON_AFTER_RELEASE,TAG);
    wl.acquire();//为了保证任务不被系统休眠打断,申请WakeLock
    // 开始我们的任务
    wl.release();//任务结束后释放,如果不写该句。则可以用wl.acquire(timeout)的方式把释放的工作交给系统。

    Android battery historian功耗分析- https://github.com/google/battery-historian
    google已经做了工具用于可视化的显示这个报告:battery-historian
    Android battery historian功耗分析之环境搭建- https://www.jianshu.com/p/5abd53abcc1e

    如何确定阻止进入suspend的原因;系统没有进入suspend,主要的原因是因为系统有锁导致.
    锁一般分为:APP透过PowerManager拿锁,以及kernel wakelock.

     Android系统为了进行电源管理,设计了PowerManagement框架,其中包含BatteryState服务。BatteryStats 会不断地收集信息,并存储这些信息以便在重新启动后继续使用。该服务不会直接跟踪电池中消耗的电流,而是通过收集计时信息来估算不同组件所消耗的电量。

    BLE是蓝牙4.0标准的一部分,旨在解决传统蓝牙连接慢、能耗大的问题,Google在Android 4.3(API 18)中引入了对BLE的支持。BLE连接使用GAP(Generic Access Profile)协议,通信使用GATT(Generic Attribute Profile)协议。GATT又以ATT为基础,所有的LE服务都以ATT作为应用层协议。
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
        <uses-permission android:name="android.permission.BLUETOOTH" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

        <uses-feature
            android:name="android.hardware.bluetooth_le"
            android:required="false" />
        <!-- Needed only if your app targets Android 5.0 (API level 21) or higher. -->
        <uses-feature android:name="android.hardware.location.network" />

    -- 所有便携式的Android设备都会对设备的功耗提出要求,尽量在最快的运行速度的情况下,降低电池的消耗,降低设备温度。
      根据行业内部默认水准,我列出如下几条功耗要求:(Android智能手表/智能手机,四个方向调节设备功耗)
    1 设备整机(插SIM卡,拔除USB线)待机功耗的最小电流调节之3mA左右
    2 设备连接后台数据的情况下待机每小时平均功耗 < 10mA(严格的说是 7mA)
    3 依据设备电池容量限制设备充电功耗
    4 设备通话10分钟~20分钟后的温度一般限制在45度以下

    -- 手机功耗,总结的两个方向:
      1 硬件方向:逐步拔出外设,比如 TP LCD Camera等基本外设,这种方式简单粗暴,很容易定位功耗消耗源所在,比如我遇到的问题就是TP在待机的时候消耗电池,是某个引脚漏电。
      2 软件方向:
      第一部分:抓取Android电池消耗记录,查看CPU唤醒源。此处要介绍一个工具Battery Historian,这是一款由Google提供的Android系统电量分析工具. 在网页中展示手机的电量消耗过程, 输入电量分析文件, 显示消耗情况. 最后提供一些电量优化的方法,关于此工具的安装方式,网上或者我在另一个博客中有详细说明,需要的话请挪步查看。此处会介绍此工具的使用方式以及功能。
      第二部分:关核降频

    -- Android App功耗浅析- https://blog.csdn.net/happy_develop_/article/details/70154172
    App功耗浅析,主要原因:
    (1)http请求(GZIP压缩)
    (2)json数据解析(json解析效率主要是解析耗时),大量的数据解析
    (3)数据库读写操作
    (4)SD卡读写操作
    (5)程序的执行的timer定时器(例如IM中的心跳包,用系统的Alarm优化)
    (6)网络切换(wifi会比手机的数据移动网络更加省电)

    展开全文
  • --SODISODI跟deep idle类似,是SPM的另外一种工作模式SODI:Screen On Deep IdleSODI的进入条件跟deep idle是类似的,区别只是要检查的clock跟deep idle不完全一样 ,SODI对display功耗的影响相对于CMD / ...

    SODI (screen on deep idle)

    背景知识---SODI

    SODI跟deep idle类似,是SPM的另外一种工作模式

    SODI:Screen ODeep Idle

    SODI的进入条件跟deep idle是类似的,区别只是要检查的clock跟deep idle不完全一样 ,SODI对display功耗的影响相对于CMD / VDO mode是不一样的

    前面讲过了CMD / VDO的差别,其实就很容易理解这一点:因为CMD mode下,CPU不用送数据出去,因此MIPI clock可以不用送,这整条clock路径上的东西(PLL/clock)都可以关闭,而且memory跟VDO相比也可以做更多省电的action;所以SODI对CMD mode的省电效果会比VDO的效果更明显

    是否进入SODI也可以从波形上明显地看到:

    下图示SODI  enable/disable的idle mode波形比较

    CMD mode:SODI on(左) vs SODI off(右)

    VDO mode:SODI on(左) vs SODI off(右)

    *重点关注波形的形状,电流下降的数值不同平台不一样

    展开全文
  • SPMSPM以及时钟请求信号控制流程因为整个系统不只是AP(MCU),还包括modem、connectivity等子系统;CPU进入WFI后,整个系统就依靠一颗SCP:SPM来控制睡眠/唤醒的流程,它会去关注各个子系统的状态 SPM =System ...

    SPM

    SPM以及时钟请求信号控制流程

    因为整个系统不只是AP(MCU),还包括modem、connectivity等子系统;

    CPU进入WFI后,整个系统就依靠一颗SCP:SPM来控制睡眠/唤醒的流程,它会去关注各个子系统的状态

     

    SPM =System Power Manager

    它掌控着cpu suspend之后系统是否能掉到最小电流的关键逻辑,你可以把它理解成一个投票机制,当系统的关键资源(memory、clock)没有任何人使用的时候,它就会让系统进入一个真正的深睡状态(最小电流)只要它检测到有任何资源请求还没释放,系统就无法降到底电

    所以在底电问题上的debug流程中,我们不仅仅要看cpu有没有suspend成功,还要看SPM的状态是否正确

     

    SPM里面有一个可编程控制器PCM(Programmable Command Master)

    CPU在进去WFI之前会把SPM的firmware写入PCM,然后PCM就依据firmware的逻辑来控制SPM的工作

     

    SPM强相关的一个东西就是系统中的时钟请求信号,也就是26M时钟开关的控制逻辑;因为系统工作在最小电流的时候,SPM只依靠32K时钟工作;因此要判断系统是不是已经到深睡状态,就要看26M有没有关闭

     

    26M时钟的控制逻辑概要如下图

     

     

    所以从上图我们就可以看到, 26M有没有关,就只要看SCLKENA这个信号有没有关闭;而SPM对这个信号的输出以及子系统的信号输入,都会记录在SPM的寄存器里面,这个就是我们通过log排查的依据

     

    代码路径:

    /kernel-x.x/drivers/misc/mediatek/base/power/spm_vx/

    展开全文
  • Android后台调度与省电I. Handler:在进程存活的期间有效使用, Google官方推荐使用。相关机制可以参见: Android Handler Looper机制简单易用。稳定高效。II. AlarmManager:利用系统层级的闹钟服务(持有Wake Lock)。1....

    Android后台调度与省电

    I. Handler:


    在进程存活的期间有效使用, Google官方推荐使用。

    相关机制可以参见: Android Handler Looper机制


    • 简单易用。

    • 稳定高效。


    II. AlarmManager:


    利用系统层级的闹钟服务(持有Wake Lock)。


    1. 使用场景


    在大概的时间间隔(重复)运行指定任务。

    在精确的时间间隔(重复)运行指定任务。


    • 需要精确的定时(重复)任务,如闹钟。

    • 非网络访问的,大概时间间隔的定时(重复)任务。

    • Google官方不建议网络请求相关的业务使用AlarmManager。


    2. 特征


    • 运行在系统的闹钟服务上的,注册以后,无论是自己的应用进程或组件是否存在,都会正常运作。

    • 所有注册的闹钟服务都会在系统重启后复位,因此如果需要保证任务,就需要注册RECEIVE_BOOT_COMPLETE广播,确保重启后,可以重新将任务注册到闹钟服务中。

    • AlarmManager处理的是一个PendingIntent。

    • 考虑到电量损耗,建议非特殊情况使用大概时间间隔的规则,这样Android会尽量让几个任务打包在一起执行,防止频繁的唤起手机。


    III. Job Scheduler:


    JobScheduler官方文档


    1. 使用场景


    在指定特定场景下执行指定任务


    • Google官方建议网络请求相关业务放到Job Scheduler,由于其的省电的特性。

    • 一些与特定场景(JobInfo)绑定的任务。


    2. 特征


    • Job Scheduler只有在Api21或以上的系统支持。

    • Job Scheduler是将多个任务打包在一个场景下执行。

    • 在系统重启以后,任务会依然保留在Job Scheduler当中,因此不需要监听系统启动状态重复设定。

    • 如果在一定期限内还没有满足特定执行所需情况,Job Scheduler会将这些任务加入队列,并且随后会进行执行。


    3. 接口类型


    boolean onStartJob(JobParams params) {

        // 开始执行

        // 注意这个方法是在主线程执行的,如果是耗时操作请抛到独立线程中

        // jobFinished(JobParameters params) // 在完成任务并且决定是否还需要定时执行更多任务

        // return 是否是在独立现在还有事务要执行

    }

     

    void onStopJob(){

        // 用于清理数据,在结束任务后被回调。

    }


    IV. GCM(FCM)


    GCM Network Manager实际上在 Api 21 或以上也是使用了 Job Scheduler,在此之前的版本使用的是Google Play Service中实现Job Scheduler的功能。

    在GCMNetworkManager中有很多利于省电的规则。

    在中国内地,该服务被墙,无法正常使用。


    1. 使用场景


    • 实时消息推送。

    • 非实时消息推送。


    2. 特征


    系统级别维护的长链接,十分稳定。


    3. 接口类型


    • 通过 OneoffTask.Builder()与PeriodicTask.Builder()创建任务。

    • GcmTaskService#onRunTask(TaskParams params)是在后台线程执行的。


    V. Sync Adapter


    Transferring Data Using Sync Adapters


    1. 使用场景


    用于同步服务端与本地设备中的数据。


    • 通常是用于同步较多的数据,如系统联系人信息、Dropbox等。


    2. 特征


    • 省电稳定。

    • 可绑定一个账户。

    • 利于大数据同步。

    • 通过提供ContentProvider,可以快捷的与服务端同步的数据库。

    • 只有在存在网络的时候才触发同步。

    • 不需要依赖Google Play Service。

    • 用户可以通过设置中主动查看同步的时间,以及触发同步,或者关闭同步。

    • Sync Adapter在API7或以上就可以使用,因此在一些场景下这是Job Scheduler在API21之前比较好的替代品。


    3. 在一定的场景下触发同步


    尽可能的打包所有需要同步的任务在一个周期中执行,以此来进行尽可能的节省手机电量。


    • 服务端或设备端数据发生变化。

    • 手机闲置时。

    • 一天。

    • 如果同步失败,会放到同步失败的队列中,在尽可能的时候进行同步。


    VI. Doze Mode


    Deep Doze Mode


    API23中直接称其为Doze Mode。


    1. 特征


    旨在: 在用户离开设备以后,尽可能的减少手机电量的消耗。


    • 无论应用指定的Target SDK是多少,只要设备是Android 6或以上会启用该模式。

    • 开发人员并不需要做特殊的适配,但是会对上面提到的所有Schedule的方式(Job Scheduler、AlarmManager、Syncs Adapter)产生影响。


    所有任务周期通过移动窗口打包任务执行,并且间隔时间会越来越久。



    2. 进入条件


    会同时满足以下情况一段时间(大约30分钟)以后生效:


    • 手机没有在充电

    • 屏幕被关闭

    • 手机各方状态保持稳定


    退出条件是,进入条件中任意条件状态发生变化。


    3. 在两个处理窗口之间的手机状态


    1. 对所有应用拒绝网络访问。

    2. 所有JobScheduler、Sync-Adapter、AlarmManager的任务都会被延后到窗口中执行。

    3. 系统会拒绝所有来自应用的Wake Lock

    4. 停止所有Wifi以及GPS扫描

    5. 减少位置事件从设备检测WiFi热点。


    Light Doze Mode


    Android 7或以上会启用该模式。


    1. 特征


    • 相比Deep Doze Mode,打包执行任务的频率会更高些。



    2. 进入条件


    会同时满足以下情况一段时间(大约几分钟)以后生效:


    • 手机没有在充电

    • 屏幕被关闭

    • 处于稳定状态/不稳定状态


    或者在Deep Doze Mode的情况下同时满足以下条件下生效:


    • 屏幕关闭

    • 手机没有在充电

    • 手机不再处于稳定状态


    3. 退出条件


    • 屏幕打开

    • 手机开始充电

    • 进入Deep Doze Mode


    4. 在两个处理窗口之间的手机状态


    • 对所有应用拒绝网络访问。

    • 所有JobScheduler与Sync Adapter的任务都会被延后到窗口中执行。

    • 不会对AlarmManager中的任务进行影响,但是将无网络访问(如果你的任务需要网络访问,是时候改用JobScheduler或Sync Adapter了,这样才会保证在任务窗口执行会有网络)


    中断/避开Doze


    以下所有情况,Google官方都建议不在特殊情景,不要去使用,由于中断了Doze Mode的省电规则。


    1. AlarmManager


    • 在精确的时间间隔中运行的任务: setAndAllowWhileIdle()、setExactAndAllowWhileIdle()。但是在非窗口期间并不解除无网络访问的限制,并且只有10s的时间给予处理。

    • 指定闹钟事件AlarmManager.setAlarmClock()的事件会在闹钟结束前,令系统短暂的完全退出Doze模式,并且正常处理事件,系统为了突显该闹钟事件,将会在系统的Status Bar上显示物理闹钟的ICON。


    2. FCM/GCM


    (Firebase Cloud Messaging,旧版中称为Google Cloud Messaging(GCM))。


    FCM/GCM中高优先级的任务配置中("priority" : "high") 的消息,在Doze模式下可以正常及时到达。


    3. 白名单


    白名单官方文档

    官方建议可考虑加入白名单的情况


    • 主动请求加入白名单,用户同意以后才加入白名单;

    • 用户也可以主动将应用从白名单中删除或将应用添加到白名单中;

    • 应用可以通过isIgnoringBatteryOptimizations()来获知是否在白名单中;

    • 白名单的应用可以访问网络与持有有效的Wake Lock,但是其他Doze的约束依然存在(如延后的Job Scheduler、Syncs-Adapter、AlarmManager);


    白名单的请求方式:


    • 通过ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS打开电量优化页面,用户可以通过搜索来关闭应用的电量优化,以此加入白名单。

    • 先持有REQUEST_IGNORE_BATTERY_OPTIMIZATIONS权限,然后通过启动IntentACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS直接弹出Dialog让用户关闭应用的电量优化,以此加入白名单。


    4. 特殊情况


    前台服务(Foreground Service)将不会受到Doze模式影响。


    Doze模式测试


    Google官方提供了一些adb命令用于测试Doze模式,而非需要通过等待来进入Doze模式的。


    1. 进入Doze模式


    • 准备一台系统是在Android Nougat Developer Preview4或以上版本的设备。

    • 将其连接连接到电脑。

    • 通过执行adb shell dumpsys battery unplug命令让设备进入未连接充电的模式。

    • 通过执行adb shell dumpsys deviceidle step [light|deep]强行进入Doze模式。


    退出Doze模式,让手机恢复正常需要复位充电模式:adb shell dumpsys battery reset。


    2. 其他指令


    • 获取设备状态:adb shell dumpsys deviceidle get [light|deep|force|screen|charging|network]。


    在Android Nougat Developer Preview 4中,Doze模式的状态周期是:


    LightACTIVE -> IDLE -> IDLE_MAINTENANCE -> OVERRIDE

    DeepACTIVE -> IDLE_PENDING -> SENSING -> LOCATING -> IDLE -> IDLE_MAINTENANCE

    展开全文
  • android 7.0低电耗Doze模式从 Android 6.0(API 级别 23)开始,Android 引入了两个省电功能,可通过管理应用在设备未连接至电源时的行为方式为用户延长电池寿命。 低电耗(Doze)模式通过在设备长时间处于闲置状态时...
  • android功耗优化(2)--对齐唤醒

    千次阅读 2018-03-27 11:48:20
    概况Android手机上安装的很多应用都会频繁唤醒手机(唤醒系统、唤醒屏幕),造成手机耗电等现象。良好的对齐唤醒管理方案,就是对后台应用待机时不频繁唤醒,智能节省电量。实现原理:APK作为该功能的入口,勾选应用...
  • Android O 的Doze模式白名单路径Doze 模式列表上述备注规则如下if(powerWhitelist.isSysWhitelisted(pkg)) { // Summary of app which doesn't have a battery optimization setting show:Battery optimization ...
  • 如何确定阻止进入suspend的原因系统没有进入suspend,主要的原因...分析上层持锁的问题:目前PowerManagerService的log 默认不会打开,可以通过修改:/frameworks/base/services/core/java/com/android/server/powe...
  • 性能优化之电量优化-使用Battery Historian生成电量消耗报告1 数据准备1.1 先断开adb服务,然后开启adb服务(a)adb kill-server 1这一步很重要,因为当我们开发时做电量记录时会打开很多可能造成冲突的东西。...
  • 如何分析wakelock(wakeup source)持锁问题锁...分析上层持锁的问题:目前PowerManagerService的log 默认不会打开,可以通过修改:/frameworks/base/services/core/java/com/android/server/power/PowerManagerSe...
  • 概况Android手机上安装的很多应用都会频繁唤醒手机(唤醒系统、唤醒屏幕),造成手机耗电等现象。良好的对齐唤醒管理方案,就是对后台应用待机时不频繁唤醒,智能节省电量。实现原理:APK作为该功能的入口,勾选应用后...
  • Android性能优化:这是一份全面&详细的内存优化指南 Android性能优化:手把手带你全面了解 内存泄露 & 解决方案 Android性能优化:那些关于Bitmap图片资源优化的小事
  • 功耗优化:关于一些对功耗的检测及优化 内存优化:关于一些对内存的常见优化手段及检测工具 功耗优化 耗电原因 CPU:wakelocks 网络、无线、蓝牙等 屏幕 CPU 与网络等是属于 Background Process,若要优化,需要...
  • android功耗高通平台 分类:功耗1、底电流调试(Rock Bottom Current Optimization)底电流在手机飞行模式下调试。每个平台的底电流数据可能不一样,具体可以参考release出来的Current Consumption Data文档...
  • 可以采用功耗问题时间追踪表来精确追踪功耗异常。 可以使用如下命令来打开指定文件的kernel log(以qpnp-adc-tm.c和qpnp-adc-common.c为例): adb shell mount -t debugfs none /sys/kernel/debug adb shell ...
  • 功耗和温升通常是Android系统的硬伤,尤其是结构空间有限的Android系统设备,比如用Android系统开发的手表设备。结构有限意味着能放的电池容量不会很大,导致待机时间变得特别短。 而且通常这种手表设备的在原始...
  • Android功耗分析

    2019-09-04 14:25:39
    Andorid功耗分析(2)高通平台功耗优化基础 Android功耗分析(3)高通功耗问题分析 Android功耗分析(4)MTK平台待机功耗分析流程 Android功耗分析(5)功耗调试方法 Android功耗分析(6)整机功耗测试 Android功耗...
  • 摘要:Android操作系统提供了唤醒锁机制用于避免系统进入休眠状态.但若存在唤醒锁的误用,将导致...结合具体实机测试数据,本文提出的检测机制及功耗优化方法,可有效降低功耗,提高用户体验.;The Android PowerManager...
  • 可以采用功耗问题时间追踪表来精确追踪功耗异常。 可以使用如下命令来打开指定文件的 kernel log (以 qpnp-adc-tm.c 和 qpnp-adc-common.c 为例): adb shell mount -t debugfs none /sys/kernel/debug adb...
  • 标签:android功耗高通平台 分类:功耗1、底电流调试(Rock Bottom Current Optimization)底电流在手机飞行模式下调试。每个平台的底电流数据可能不一样,具体可以参考release出来的Current Consumption Data...
  • 高通android平台功耗优化方法

    千次阅读 2017-08-18 14:25:37
    Android :/data/busybox # ./busybox devmem 0x100B000 32  ./busybox devmem 0x100B000 32  0x00000203  GPIO_PULL = "11" PULL_UP  FUNC_SEL = "0000" FUNCTION GPIO  ...
  • Android操作系统提供了唤醒锁机制用于避免系统进入休眠状态.但若存在唤醒锁的误用,将导致设备能耗的加剧并严重影响用户...结合具体实机测试数据,本文提出的检测机制及功耗优化方法,可有效降低功耗,提高用户体验.
  • 现在的处理器都支持DVFS - 动态...在某Android平台,在单线程运行dhrystone的情况下, 可以看到随着DMIPS的增加(其实也就是频率的增加),Power数据前期相对平缓,后面就变陡了,越高频率功耗增加的越多 关于CPU功...
  • 摘要:在信息技术快速发展的今天,随着集成电路技术和移动互联网技术的快速发展,基于Android...因此,优化基于Android嵌入式系统多核处理器智能手机的功耗,提高待机时间成为一个研究热点问题.本文主要通过优化Andr...
  • 对于功耗优化时长可以看到alarm唤醒频繁,或者alarm timer持锁时间过长的问题,对于这样的情况Android的各个版本也都有持续性的优化,对于alarm来说,简而言之都是加强管控,尽可能减少唤醒,集中批量处理。...
  • android 功耗 高通平台 底电流在手机飞行模式下调试。每个平台的底电流数据可能不一样,具体可以参考release出来的CurrentConsumptionData文档或者releasenote。一般情况下的底电流参考数据上限是:1、底电流调试...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 185
精华内容 74
关键字:

android功耗优化