Android性能分析与优化笔记 -9 电量优化

 IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_BATTERY_CHANGED);
        Intent intent = registerReceiver(null, filter);
        LogUtils.i("battery " + intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1));

ACTION_BATTERY_CHANGED

  • 获取手机电池电量,充电状态,电池状态等信息

Battery Historian

  • 5.0(API 21)及以上系统的电量分析
  • 强大,适合线下使用
    Android性能分析与优化笔记 -9 电量优化_第1张图片
    Android性能分析与优化笔记 -9 电量优化_第2张图片
    Android性能分析与优化笔记 -9 电量优化_第3张图片
    Android性能分析与优化笔记 -9 电量优化_第4张图片
    Android性能分析与优化笔记 -9 电量优化_第5张图片

电量辅助监控实战

Android性能分析与优化笔记 -9 电量优化_第6张图片
Android性能分析与优化笔记 -9 电量优化_第7张图片
https://github.com/codeguyFred/MyPerformance/blob/master/app/src/main/java/com/optimize/performance/wakelock/WakeLockUtils.java

https://github.com/codeguyFred/MyPerformance/blob/master/app/src/main/java/com/optimize/performance/aop/ActivityHooker.java
Android性能分析与优化笔记 -9 电量优化_第8张图片
线程运行时长
Android性能分析与优化笔记 -9 电量优化_第9张图片

总结

Android性能分析与优化笔记 -9 电量优化_第10张图片
Android性能分析与优化笔记 -9 电量优化_第11张图片
Android性能分析与优化笔记 -9 电量优化_第12张图片
Android性能分析与优化笔记 -9 电量优化_第13张图片
Android性能分析与优化笔记 -9 电量优化_第14张图片
Android性能分析与优化笔记 -9 电量优化_第15张图片
onStartJob执行在主线程
https://github.com/codeguyFred/MyPerformance/blob/master/app/src/main/java/com/optimize/performance/net/JobSchedulerService.java

/**
     * 演示JobScheduler的使用,需要在处于wifi和充电状态下才会执行
     */
    private void startJobScheduler() {
        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
            JobScheduler jobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
            JobInfo.Builder builder = new JobInfo.Builder(1, new ComponentName(getPackageName(), JobSchedulerService.class.getName()));
            builder.setRequiresCharging(true)
                    .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
            jobScheduler.schedule(builder.build());
        }
    }

你可能感兴趣的:(Android性能分析与优化笔记 -9 电量优化)