2016-08-31 73 views
0

當我的應用程序處於後臺時,我想通過其他應用程序獲取電池消耗百分比。是否有任何API(公/私)可以從中獲取其他應用的電池消耗統計數據?當我的應用程序在後臺時獲取其他應用程序的電池消耗?

的蘋果公司可通過設置提供了範例:http://img.wonderhowto.com/img/63/90/63537324981100/0/view-battery-usage-stats-for-individual-apps-your-iphone-ios-8.w654.jpg

+0

通過編碼,其他應用程序的電池消耗不可能 –

回答

1

遺憾的是沒有。蘋果公司給你的只能是一個估計,而且可能是一個壞的。 (1)首先,爲什麼不能直接測量能量使用:處理器執行指令,操作系統執行應用程序。處理器是最大的能源豬。處理器的用電量基於執行的指令類型和數量(大致 - 請參見下面的項目#2)。這些說明可以以任意方式交織,這意味着您不能將能源使用劃分爲單個應用程序。 (是的,我知道指令是以相關代碼塊執行的,我的說法仍然有很多原因,請考慮一個內核上執行多個線程 - 英特爾稱之爲超線程)。 )您無法總結應用程序中每條指令所使用的功率,將結果相加,然後計算功率使用情況。根據執行的指令順序,功率使用情況會有所不同。這是因爲用電量具有「記憶」,這意味着用量取決於之前執行的指令。發生這種情況是因爲給定指令的週期數取決於指令的順序及其執行頻率。有許多新舊技術可以改變指令的週期(和功耗):緩存層次結構,uop融合,功耗狀態(P和C),每個內核執行多個線程等。

I don並不是說在給定足夠的限制條件下,您無法統計衡量應用程序的能源使用情況。但我認爲,在現實條件下,這些條件阻止了最廣泛的估計。

男孩,這將做一個偉大的一套實驗。不幸的是,我沒有足夠的設備來控制約束條件以獲得有用的數據。蕩。

相關問題