当前位置: 首页 > news >正文

网站每个页面关键词都一样公共资源交易中心网站建设汇报

网站每个页面关键词都一样,公共资源交易中心网站建设汇报,临沂恒商做网站,php 网站缓存文件前言 BatteryStats模块主要用于设备在电池供电是系统对各个模块电量使用的统计,Android提供的Battery Historain工具就是对此模块统计的数据进行解析和展示。 一 BatteryStats模块类图 模块主要类图如下:见根目录的模块类图 BatteryStats:抽象类,本模块的核心类,主要定…前言 BatteryStats模块主要用于设备在电池供电是系统对各个模块电量使用的统计,Android提供的Battery Historain工具就是对此模块统计的数据进行解析和展示。 一 BatteryStats模块类图 模块主要类图如下:见根目录的模块类图 BatteryStats:抽象类,本模块的核心类,主要定义多个内部类,内部类主要包括Uid、Timer等; BatteryStatsImpl:核心实现类,负责电池数据的统计计算,其实现亮BatteryStats中所有的抽象内部类,这些类用于不同统计实现; Uid:针对每个进程的uid设置,用于统计不同uid下进程的耗电数据,如wakelock、sensor、Proc等数据; BatteryStatsService:系统中battersystats服务,提供binder接口,但电池数据计算工作是在BatteryStatsImpl中; BatteryStatsHelper:负责计算软件和硬件等各个模块的耗电数据,提供给设置、手机管家等模块展示; BatterySipper:表示每一个耗电模块的数据统计。 二 BatteryStats启动过程 BatteryStats服务是在AMS中启动,其启动时序图如下: ActivityManagerService-BatteryStatsService:new BatteryStatsService-BatteryStatsImpl:new setPowerProfileLocked ActivityManagerService-BatteryStatsService:initPowerManagement 2.1 初始化BatteryStatsService ActivityManagerService-BatteryStatsService:new 在AMS的构造函数中初始化BatteryStatsService对象,读取统计文件中已经保存的信息,同时开启异步信息记录,设置回调,在AMS的onStart中发布服务。 BatteryStatsService构造函数主要初始化Handler、耗电统计和计算类BatteryStatsImpl,设置耗电参考指标参数等。 --javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown public ActivityManagerService(Context systemContext, ActivityTaskManagerService atm) {...// TODO: Move creation of battery stats service outside of activity manager service.mBatteryStatsService = new BatteryStatsService(systemContext, systemDir,BackgroundThread.get().getHandler());mBatteryStatsService.getActiveStatistics().readLocked();mBatteryStatsService.scheduleWriteToDisk();mOnBattery = DEBUG_POWER ? true: mBatteryStatsService.getActiveStatistics().getIsOnBattery();mBatteryStatsService.getActiveStatistics().setCallback(this);...}BatteryStatsService(Context context, File systemDir, Handler handler) {...HandlerThread = new HandlerThread("batterystats-handler");mHandlerThread.start();mHandler = new Handler(mHandlerThread.getLooper());mStats = new BatteryStatsImpl(systemDir, handler, this,this, mUserManagerUserInfoProvider);mWorker = new BatteryExternalStatsWorker(context, mStats);mStats.setExternalStatsSyncLocked(mWorker);mStats.setRadioScanningTimeoutLocked(mContext.getResources().getInteger(com.android.internal.R.integer.config_radioScanningTimeout) * 1000L);mStats.setPowerProfileLocked(new PowerProfile(context));mStats.startTrackingSystemServerCpuTime();...} 2.2 BatteryStatsImpl初始化: 创建存储文件、校准文件和每日文件; 创建handler信息,注此looper为AMS提供; 初始化各类型timer和counter,每一种类型的对应一类事件。 工具类主要有三类, StopwatchTimer负责计时统计 LongSamplingCounter负责计数、 ControllerActivityCounterImpl包含多个负责计数的类对象,比如数据收发包统计 --javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown public BatteryStatsImpl(Clocks clocks) {...if (systemDir == null) {mStatsFile = null;mBatteryStatsHistory = new BatteryStatsHistory(mHistoryBuffer);} else {mStatsFile = new AtomicFile(new File(systemDir, "batterystats.bin"));mBatteryStatsHistory = new BatteryStatsHistory(this, systemDir, mHistoryBuffer);}mCheckinFile = new AtomicFile(new File(systemDir, "batterystats-checkin.bin"));mDailyFile = new AtomicFile(new File(systemDir, "batterystats-daily.xml"));...mHandler = new MyHandler(handler.getLooper());...initTimersAndCounters();...initTimes(uptimeUs, realtimeUs);...} 2.2.1 初始化全局Timer --javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown void initTimes(long uptimeUs, long realtimeUs) {mStartClockTimeMs = mClocks.currentTimeMillis();mOnBatteryTimeBase.init(uptimeUs, realtimeUs);mOnBatteryScreenOffTimeBase.init(uptimeUs, realtimeUs);mRealtimeUs = 0;mUptimeUs = 0;mRealtimeStartUs = realtimeUs;mUptimeStartUs = uptimeUs;} 2.2.2 初始化Uid进程Timer --javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown public Uid(BatteryStatsImpl bsi, int uid, long elapsedRealtimeMs, long uptimeMs) {mBsi = bsi;mUid = uid;/* Observer list of TimeBase object in Uid is short */mOnBatteryBackgroundTimeBase = new TimeBase(false);mOnBatteryBackgroundTimeBase.init(uptimeMs * 1000, elapsedRealtimeMs * 1000);/* Observer list of TimeBase object in Uid is short */mOnBatteryScreenOffBackgroundTimeBase = new TimeBase(false);mOnBatteryScreenOffBackgroundTimeBase.init(uptimeMs * 1000, elapsedRealtimeMs * 1000);mUserCpuTime = new LongSamplingCounter(mBsi.mOnBatteryTimeBase);mSystemCpuTime = new LongSamplingCounter(mBsi.mOnBatteryTimeBase);mCpuActiveTimeMs = new LongSamplingCounter(mBsi.mOnBatteryTimeBase);mCpuClusterTimesMs = new LongSamplingCounterArray(mBsi.mOnB
http://www.hkea.cn/news/14584257/

相关文章:

  • 黔西网站建设用自己主机做网站视频
  • 深圳自己做网站 服务器网站禁止访问
  • 个人网站怎么做打赏搭建电商平台方案
  • 能力建设和继续教育中心网站杭州网站网站建设
  • 如何利用国外网站开发客户wordpress 首页文章列表
  • 哈尔滨百度网站排名公司做网站费用记到哪个科目
  • 网站建设要如何选择网站代码结构
  • 安卓手机做网站服务器吗平面设计公司经营范围
  • 网站 详细设计郑州知名网站建设公司排名
  • 普通电脑怎么做网站服务器网站建设实训心得及收获
  • 苏州建设职业技术学院招聘信息网站tp做网站签到功能
  • 网站建设案例分享网站开发简单吗
  • 肯尼亚网站域名手机视频制作软件最火
  • 模板和网站是一体的吗php网站后台开发
  • 搞网站比较好的网页模板网站
  • 广州网站开发制作内网网站建设流程
  • 东莞网站推广定制公司广州网站制作后缀
  • 手机新手学做网站买国外域名 网站
  • 桂林旅游网站建设外贸网站建设 佛山
  • 网站原创性百度官方下载安装
  • wordpress主题 mohtml系统优化是什么意思
  • 设计师一般用什么网站花卉公司网页设计
  • c 网站开发视频教程 高清西安网站建设
  • 廊坊文安建设局网站三合一网站开发
  • 河北邯郸做网站的公司php做网站答辩问题
  • wordpress模板展示网站零陵网站建设
  • 什么网站有题目做wordpress免费 360插件下载
  • dedecms网站源码网站服务器怎么看是哪个厂家的
  • 如何做古诗词网站用vue-cli做的网站
  • 去成都旅游攻略怎么做北京优化词网站