Batterystats日志分析app耗電

1 耗電原因

  • app消耗電量的體現(xiàn)寇仓,為以下各模塊的耗電
屏幕、CPU揪阿、相機(jī)、閃光燈济欢、音頻悉患、視頻、藍(lán)牙泣港、modem暂殖、wifi、gps
  • 單位耗電量排序
相機(jī)(平均1152mAh) > modem(最高604mAh) > wifi(發(fā)數(shù)據(jù)370mAh) > CPU(最高頻率290mAh) > 屏幕(最亮240mAh) > 音頻(75mAh) > 視頻(50mAh) > GPS(49mAh) > 藍(lán)牙(8mAh)

2 日志內(nèi)容

  • 導(dǎo)出日志的命令
adb shell dumpsys batterystats > batterystats.txt
  • 日志片段
Battery History (2% used, 11KB used of 512KB, 102 strings using 9638):
                    0 (10) RESET:TIME: 2019-02-18-15-49-33
                    0 (1) 034 status=charging health=good plug=usb temp=330 volt=3768 charge=948 +running +wake_lock +mobile_radio +screen +plugged data_conn=lte phone_signal_strength=excellent brightness=medium +wifi_running +wifi +usb_data wifi_signal_strength=4 wifi_suppl=disconn gps_signal_quality=good
                    0 (2) 034 proc=1000:"com.xiaomi.joyose"
                    0 (2) 034 proc=1000:"com.goodix.fingerprint"
                    0 (2) 034 proc=u0a150:"com.tencent.mobileqq"
                    0 (2) 034 proc=u0a211:"com.miui.systemAdSolution"
                    0 (2) 034 proc=1001:"com.android.phone"
                    0 (2) 034 proc=1000:"com.miui.contentcatcher"
                    0 (2) 034 proc=u0a196:"com.sohu.inputmethod.sogou"
                    0 (2) 034 proc=u0a3:"com.lbe.security.miui"
                    0 (2) 034 proc=1000:"com.miui.wmsvc"
  • 整個(gè)日志的結(jié)構(gòu)大致如下


    image.png
* Battery History: 耗電統(tǒng)計(jì)的歷史記錄当纱,每一條記錄以HistoryItem的形* 式存在
* Per-PID Stats: 每個(gè)進(jìn)程喚醒工作的時(shí)間
* Discharge step durations: 每掉一隔電的時(shí)間點(diǎn)和設(shè)備的狀態(tài)
* Daily stats: 以天為單位展示每掉一隔電的時(shí)間點(diǎn)和設(shè)備狀態(tài)
* Statistics since last charge: 從上次充電以來的統(tǒng)計(jì)詳情呛每,包含很多子板塊
     * Cellular Statistics: 移動(dòng)數(shù)據(jù)網(wǎng)絡(luò)狀態(tài)和使用情況
     * Wifi Statistics: WIFI的網(wǎng)絡(luò)狀態(tài)和使用情況
     * Bluetooth: 藍(lán)牙在不同工作狀態(tài)下的使用情況
     * Estimated power use (mAh): 近似計(jì)算出的各個(gè)用戶(uid)的耗電量,一個(gè)APK通常對應(yīng)到一個(gè)用戶坡氯,當(dāng)然晨横,也有多個(gè)APK共享一個(gè)用戶的情況

2-1 Battery History

batterystats會被動(dòng)(push)或主動(dòng)(pull)的獲取電量統(tǒng)計(jì)信息,每一次都會將獲取到的信息記錄下來箫柳,每一條信息會以HistoryItem對象的形式保存在一個(gè)緩沖區(qū)手形。整個(gè)Battery History的日志結(jié)構(gòu)如下圖所示:

image.png

HistoryItem可以理解為一次記錄耗電變化的動(dòng)作,因此滞时,它被設(shè)計(jì)為命令的方式叁幢,每生成一個(gè)HistoryItem滤灯,就相當(dāng)于發(fā)起了一次耗電統(tǒng)計(jì)的命令坪稽。HistoryItem詳細(xì)的描述了在某一個(gè)時(shí)刻,影響耗電的各因素所在的狀態(tài)鳞骤,是分析功耗問題重要的依據(jù)窒百。隨著待機(jī)時(shí)間的延長,HistoryItem對象的數(shù)量就越多豫尽,因此篙梢,整個(gè)電量統(tǒng)計(jì)日志可能很大篇幅都被Battery History占據(jù)了,下面就詳細(xì)地剖析其中意義美旧。

  • 第一行
Battery History (2% used, 11KB used of 512KB, 102 strings using 9638):

用于存儲HistoryItem的緩存并非無限大渤滞,Android默認(rèn)為512KB,此處使用了11KB榴嗅,所以使用率為2%妄呕。另外,因?yàn)槿罩局蓄l繁出現(xiàn)的也是一些固定的字符串嗽测,為了節(jié)省空間绪励,統(tǒng)計(jì)信息都是以極簡的格式存儲,所以唠粥,此處還有一個(gè)字符串的緩存疏魏。

  • 第二行
0 (10) RESET:TIME: 2019-02-18-15-49-33

這是第一條HistoryItem記錄: RESET命令。RESET表示重新開始一個(gè)時(shí)間段的電量統(tǒng)計(jì)晤愧。為什么需要RESET呢? 因?yàn)樵诮y(tǒng)計(jì)之前可能是充電狀態(tài), 停止充電后才有統(tǒng)計(jì)的必要大莫。

  • 0: 表示當(dāng)前開始統(tǒng)計(jì)的起點(diǎn)時(shí)間
  • (10): 從緩存中讀取的子節(jié)數(shù)
  • RESET命令,該處可能出現(xiàn)的另外命令還有START(開機(jī)時(shí)的統(tǒng)計(jì)記錄)官份,SHUTDOWN(關(guān)機(jī)時(shí)的統(tǒng)計(jì)記錄)葵硕,OVERFLOW(緩沖區(qū)溢出的記錄)眉抬。 RESET和START命令會打印出當(dāng)前的時(shí)間,即TIME: 2019-02-18-15-49-33
  • 第三行
0 (1) 034 status=charging health=good plug=usb temp=330 volt=3768 charge=948 +running +wake_lock +mobile_radio +screen +plugged data_conn=lte phone_signal_strength=excellent brightness=medium +wifi_running +wifi +usb_data wifi_signal_strength=4 wifi_suppl=disconn gps_signal_quality=good
  • 100 當(dāng)前電量百分值懈凹,隨著時(shí)間的推移蜀变,這個(gè)值會逐漸減少
  • status: 充電狀態(tài)(unknown未知狀態(tài),charging充電狀態(tài)介评,discharging放電狀態(tài)库北,not-charging沒有充電,full已充滿)
  • health: 電池狀態(tài)(unknown未知狀態(tài)们陆,good正常寒瓦,overheat過熱,dead已壞坪仇,over-voltage電壓過高杂腰,cold過冷)
  • plug: 插拔連接狀態(tài)(none未插拔,ac交流電椅文,usb數(shù)據(jù)線喂很,wireless無線連接)
  • temp: 電池溫度
  • volt: 電池電壓
  • state: 主動(dòng)記錄的影響耗電的硬件工作狀態(tài),這些狀態(tài)從字面意思就能理解
  • 部分狀態(tài)前面會帶上+或者-皆刺,+表示進(jìn)入狀態(tài)少辣,-表示離開狀態(tài),譬如: +running表示CPU進(jìn)入運(yùn)行狀態(tài)羡蛾,-wakelock表示釋放鎖
  • 部分狀態(tài)設(shè)置了狀態(tài)值漓帅。譬如: phone_signal_strength=great表示當(dāng)前手機(jī)信號很強(qiáng)
  • wakeup_reason: 如果存在,則會打印喚醒的理由
  • event: 被動(dòng)通知的影響耗電的事件痴怨,event會帶上事件源的uid
  • 部分事件前面會帶上+或者-忙干,+表示進(jìn)入事件,-表示離開事件浪藻,譬如: +top=u0a70:”com.test.mygame”表示當(dāng)前進(jìn)入顯示的界面為com.test.mygame捐迫,事件源的uid為u0a70
  • 所有事件都有一個(gè)描述值,即=右邊的內(nèi)容
  • 第四珠移、五行
0 (2) 034 proc=1000:"com.xiaomi.joyose"
0 (2) 034 proc=1000:"com.goodix.fingerprint"

這是第三條和第四條HistoryItem記錄弓乙,分別記錄了兩個(gè)事件(event),Android系統(tǒng)進(jìn)程啟動(dòng)完成時(shí)會通知batterystats

  • 第六钧惧、七行暇韧。。浓瞪。
0 (2) 100 alarm=u0a165:"*walarm*:com.alipay.mobile.healthcommon.broadcast.TIME_TO_COUNT_STEP"
+3ms (2) 100 stats=0:"screen-state"
+10ms (2) 100 +camera +wake_lock_in=1000:"*vibrator*"
+17ms (2) 100 +alarm=1000:"*alarm*:android.intent.action.TIME_TICK"
+19ms (2) 100 +wake_lock_in=1000:"*alarm*:android.intent.action.TIME_TICK"
+21ms (2) 100 +wake_lock_in=1001:"*telephony-radio*"
+23ms (2) 100 +wake_lock_in=u0a140:"*telephony-radio*"
+23ms (2) 100 +wake_lock_in=u0a149:"*telephony-radio*"
+24ms (2) 100 -wake_lock_in=1001:"*telephony-radio*"
+27ms (2) 100 -wake_lock_in=u0a140:"*telephony-radio*"
+27ms (2) 100 +wifi_scan -wake_lock_in=u0a149:"*telephony-radio*"
+52ms (2) 100 +wake_lock_in=1027:"NfcService:mRoutingWakeLock"
+73ms (3) 100 +audio -wake_lock_in=1000:"*vibrator*"
......

剩下的HistoryItem記錄懈玻,用時(shí)間序記錄了耗電過程,整個(gè)過程其實(shí)就是硬件狀態(tài)和耗電事件交替發(fā)生變化乾颁。隨著時(shí)間的推移涂乌,系統(tǒng)在睡眠中會被喚醒艺栈,CPU開始運(yùn)轉(zhuǎn),camera喚醒湾盒,wifi掃描湿右,這些都直接反映到了上述日志中。

2-2 Per-PID Stats

每個(gè)進(jìn)程wakelock的持鎖時(shí)間

Per-PID Stats:
  PID 0 wake time: +2s728ms
  PID 1333 wake time: +8s574ms
  PID 1923 wake time: 0
  PID 1333 wake time: +6ms
  PID 2088 wake time: +50ms
  PID 2096 wake time: +7s369ms
  PID 3769 wake time: +87ms
  PID 0 wake time: +12s857ms
  PID 1333 wake time: +2ms

日志中會看到一些重復(fù)的PID罚勾,因?yàn)檫@份日志是按照uid來歸類的(但并沒有把uid打印出來)毅人,表達(dá)的是一個(gè)uid關(guān)聯(lián)到的所有進(jìn)程持有wakelock的時(shí)間。

2-3 Discharge step durations:

每隔電的掉電時(shí)間和設(shè)備狀態(tài)
Discharge step durations:
  #0: +1m42s403ms to 97 (screen-on, power-save-off, device-idle-off)
  #1: +1m21s919ms to 98 (screen-on, power-save-off, device-idle-off)\

第#0條記錄尖殃,表示用了1分42秒的時(shí)間丈莺,電量從98%已經(jīng)掉到97%,手機(jī)此時(shí)的狀態(tài)是:不在省電狀態(tài)(power-save-off)送丰,也不在空閑狀態(tài)(device-idle-off)缔俄。 當(dāng)然,在掉電的過程中器躏,手機(jī)還可能處于其他狀態(tài):

  • screen-on/scree-off:屏幕是否點(diǎn)亮俐载。如果我們發(fā)現(xiàn)日志中,screen-on這個(gè)狀態(tài)高頻出現(xiàn)邀桑,那說明手機(jī)處于比較耗電的狀態(tài)中瞎疼。
  • power-save-on/power-save-off:是否開啟省電模式科乎。在設(shè)置中壁畸,可以打開手機(jī)進(jìn)入省電模式的開關(guān),在省電狀態(tài)下茅茂,手機(jī)會降低運(yùn)行性能捏萍、禁止一些后臺服務(wù)(譬如收郵件、定位等)空闲。默認(rèn)情況下令杈,該開關(guān)是關(guān)閉的,既手機(jī)處于power-save-off的狀態(tài)碴倾。
  • device-idle-on/device-idle-off:是否處于空閑狀態(tài)逗噩。從Android M(6.0)開始,就引入了Doze模式跌榔,簡單來說异雁,就是手機(jī)滿足一定的條件(滅屏、靜止僧须、沒有充電)時(shí)纲刀,就會進(jìn)入到一種休眠狀態(tài)(IDLE),在這種狀態(tài)下担平,所有CPU示绊、網(wǎng)絡(luò)锭部、外設(shè)的使用請求都會被擱置。在深度休眠一段時(shí)間后面褐,手機(jī)又會被喚醒拌禾,留出一小段窗口期(IDLE_MAINTAINESS),執(zhí)行之前擱置的請求展哭。

2-4 Daily stats

以天為單位蹋砚,展示每隔電的掉電時(shí)間和設(shè)備狀態(tài)。這一部分日志的含義與上面相同摄杂,僅僅加了一個(gè)分類坝咐,不再贅述。

2-5 Statistics since last charge

自從上次充電以來的電量統(tǒng)計(jì)析恢,既最近一次拔下充電線墨坚,僅僅使用手機(jī)電池的統(tǒng)計(jì)。這一部分日志是重點(diǎn)映挂,包含很多方面的信息泽篮。

我們先來看整個(gè)耗電的統(tǒng)計(jì)概覽:

Statistics since last charge:
   System starts: 0, currently on battery: false
   Estimated battery capacity: 2679 mAh
   Min learned battery capacity: 2863 mAh
   Max learned battery capacity: 2863 mAh
   Time on battery: 5m 45s 235ms (99.2%) realtime, 5m 45s 235ms (100.0%) uptime
   Time on battery screen off: 0ms (0.0%) realtime, 0ms (0.0%) uptime
   Time on battery screen doze: 0ms (0.0%)
   Total run time: 5m 47s 923ms realtime, 5m 47s 922ms uptime
   Discharge: 62.7 mAh
   Screen off discharge: 0 mAh
   Screen doze discharge: 0 mAh
   Screen on discharge: 62.7 mAh
   Device light doze discharge: 0 mAh
   Device deep doze discharge: 0 mAh
   Start clock time: 2019-02-19-15-51-04
   Screen on: 5m 45s 235ms (100.0%) 0x, Interactive: 5m 45s 235ms (100.0%)
   Screen brightnesses:
     dim 5m 45s 235ms (100.0%)
   Connectivity changes: 3
   Total full wakelock time: 2s 272ms
  • System starts:手機(jī)重啟次數(shù),currently on battery:當(dāng)前是否正在使用電池
  • Estimated battery capacity:電池總?cè)萘?/li>
  • Time on battery:電池使用時(shí)間柑船。這個(gè)有兩個(gè)時(shí)間:
  • realtime:正常流逝的時(shí)間帽撑,通常把這個(gè)時(shí)間叫做“墻上時(shí)間(walltime)”,就像掛在墻上的時(shí)鐘一樣鞍时,走過了一小時(shí)就是小時(shí)
  • uptime:CPU工作的時(shí)間亏拉。“墻上時(shí)間”經(jīng)過一小時(shí)逆巍,但CPU可能就工作了一分鐘及塘,其他時(shí)間CPU都在休眠
    這兩個(gè)時(shí)間結(jié)合在一起,就能夠知道休眠率: (realtime-uptime)/realtime锐极,既手機(jī)休眠的時(shí)間占整個(gè)待機(jī)時(shí)間的比率笙僚。休眠率越高,就表明越省電灵再。
  • Time on battery screen off:在滅屏狀態(tài)下肋层,電池的使用時(shí)間。通常翎迁,在滅屏?xí)r栋猖,我們希望手機(jī)可以快速進(jìn)入休眠狀態(tài),所以鸳兽,這里計(jì)算出的休眠率使我們考察耗電問題的重要指標(biāo)
  • Time on battery screen doze:在Doze狀態(tài)下掂铐,電池的使用時(shí)間
  • Total run time:總共的電池使用時(shí)間
  • Discharge:放電量,既總共使用的電量
  • Screen off discharge:滅屏狀態(tài)下的放電量
  • Screen doze discharge:Doze狀態(tài)下的放電量
  • Screen on discharge:亮屏狀態(tài)下的放電量
  • Start clock time:開始電量統(tǒng)計(jì)的時(shí)刻
  • Screen brightnesses:屏幕在不同亮度下的時(shí)間
  • Total partial wakelock time:應(yīng)用層持有wakelock的總時(shí)間

2-5-1 Estimated power use

計(jì)算得到,不同硬件和應(yīng)用的耗電情況排行

Estimated power use (mAh):
    Capacity: 3400, Computed drain: 44.9, actual drain: 68.0-102
    Unaccounted: 23.1 ( ) Including smearing: 0 ( ) Excluded from smearing
    Screen: 19.6 Excluded from smearing
    Uid u0a124: 16.0 ( cpu=4.38 radio=11.6 wifi=0.00580 gps=0.00936 sensor=0.000149 ) Including smearing: 18.0 ( proportional=1.94 )
    Uid 1000: 4.02 ( cpu=3.85 radio=0.00146 wifi=0.00575 sensor=0.0000303 camera=0.158 ) Excluded from smearing
    Uid 0: 2.02 ( cpu=1.81 radio=0.206 wifi=0.00166 ) Excluded from smearing
    Idle: 0.467 Excluded from smearing
    Uid u0a18: 0.304 ( cpu=0.113 radio=0.191 ) Including smearing: 0.341 ( proportional=0.0369 )
    Uid 1052: 0.300 ( cpu=0.00173 radio=0.299 ) Excluded from smearing
    Wifi: 0.299 ( cpu=0.0266 wifi=0.272 ) Including smearing: 0.335 ( proportional=0.0363 )
    Cell standby: 0.291 ( radio=0.291 ) Excluded from smearing
    Uid 1051: 0.256 ( radio=0.256 ) Excluded from smearing
  • Capacity: 電池容量, Computed drain: 計(jì)算得到的耗電量, actual drain: 實(shí)際耗電量全陨。本例中爆班,計(jì)算得到的耗電量(44.9mAh)竟然是實(shí)際耗電量(68.0~102mAh)的10幾倍,進(jìn)一步說明耗電統(tǒng)計(jì)只是一個(gè)近似計(jì)算
  • Cell standby:射頻待機(jī)的耗電量辱姨。正是由于這里計(jì)算出了26122mAh的耗電量柿菩,導(dǎo)致總體計(jì)算值出現(xiàn)了很大的偏差。為什么會計(jì)算出這么大的值呢雨涛?要么是單位電流值配置出錯(cuò)了枢舶,要么是使用時(shí)間計(jì)算出錯(cuò)了
  • Bluetooth:藍(lán)牙使用的耗電量。
  • Uid XXX:一個(gè)Uid的耗電量替久,可以近似理解為一個(gè)應(yīng)用的耗電量凉泄。在高版本的日志中,會再進(jìn)行細(xì)分蚯根,括號中cpu=4.38 radio=11.6 wifi=0.00580 gps=0.00936 sensor=0.000149后众,就表明一個(gè)應(yīng)用使用cpu的電量是4.38mA,使用傳感器的耗電量是0.000149mAh等

這一部分日志是按照耗電量的從大到小排序的颅拦,通常我們只需關(guān)注頭部耗電占比嚴(yán)重的模塊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒂誉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子距帅,更是在濱河造成了極大的恐慌右锨,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碌秸,死亡現(xiàn)場離奇詭異绍移,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哮肚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門登夫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來广匙,“玉大人允趟,你說我怎么就攤上這事⊙恢拢” “怎么了潮剪?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長分唾。 經(jīng)常有香客問我抗碰,道長,這世上最難降的妖魔是什么绽乔? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任弧蝇,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘看疗。我一直安慰自己沙峻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布两芳。 她就那樣靜靜地躺著摔寨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪怖辆。 梳的紋絲不亂的頭發(fā)上是复,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機(jī)與錄音竖螃,去河邊找鬼淑廊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛特咆,可吹牛的內(nèi)容都是我干的蒋纬。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼坚弱,長吁一口氣:“原來是場噩夢啊……” “哼蜀备!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起荒叶,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤碾阁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后些楣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脂凶,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年愁茁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蚕钦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鹅很,死狀恐怖嘶居,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情促煮,我是刑警寧澤邮屁,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站菠齿,受9級特大地震影響佑吝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绳匀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一芋忿、第九天 我趴在偏房一處隱蔽的房頂上張望炸客。 院中可真熱鬧,春花似錦戈钢、人聲如沸嚷量。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝶溶。三九已至,卻和暖如春宣渗,著一層夾襖步出監(jiān)牢的瞬間抖所,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工痕囱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留田轧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓鞍恢,卻偏偏與公主長得像傻粘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子帮掉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 一蟆炊、電量消耗理論與分析 寫出耗電量低的應(yīng)用的關(guān)鍵是要透徹理解它的理論以及全部過程稽莉。下面將對電量消耗的相關(guān)理論知識進(jìn)...
    香沙小熊閱讀 4,618評論 4 4
  • 本文由作者張迎貞授權(quán)網(wǎng)易云社區(qū)發(fā)布。 APP性能測試除了需要監(jiān)控PCU涩搓、內(nèi)存占用污秆、流量等,還需要獲取APP的電量數(shù)...
    43ce3d72fadb閱讀 811評論 0 0
  • 我幻想著 住在一個(gè)城堡 里面裝的滿滿的 都是我的念想 溫暖如初 奶油蛋糕在桌上 安靜的發(fā)著呆 空中綴滿了棉花糖 它...
    潤寒閱讀 209評論 2 2
  • 欣月走了昧甘。沈凡從來沒看到欣月生這么大的氣良拼。他心想,欣月是個(gè)通情達(dá)理的人充边,她可能一時(shí)想不開庸推,過一晚就會好的。 欣月回...
    梁繼申閱讀 375評論 0 1