紙上得來終覺淺,絕知此事要躬行。android
手機在屏幕喚醒,cpu喚醒,網絡,定位等耗電嚴重,若是應用在非必要場景依然使用的話,很容易形成耗電嚴重,手機發燙等現象。固然也會遭到用戶無情的拋棄……git
Android Studio 4.0 Gradle version 6.1.1 Android API version 30github
窗口詳細說明:性能優化
CPU:cpu工做損耗電量
Network:網絡通訊損耗電量
Location:定位功能損耗電量markdown
在時間軸上拖動以選擇要查看的區域網絡
對各個窗口進行說明:ide
紅色:喚醒鎖定
黃色:做業和鬧鐘
淺紫色:位置信息工具
對上面所提到的系統事件作說明:oop
JobBuilder
建立做業,並使用 JobScheduler
對這些做業進行調度。在許多狀況下,建議您使用 JobScheduler
對做業進行調度,而不是使用鬧鐘或喚醒鎖定。public class EnergyProfilerActivity extends AppCompatActivity {
private static final String TAG = "EnergyProfilerActivity";
private PowerManager.WakeLock mWakeLock;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_energy_profiler);
}
public void onEnergyWakeLockAcquire(View view) {
Log.d(TAG, "onEnergyWakeLockTest: ");
if (mWakeLock != null) {
return;
}
createWakeLock();
mWakeLock.acquire();
}
public void onEnergyWakeLockRelease(View view) {
Log.d(TAG, "onEnergyWakeLockRelease: ");
if (mWakeLock != null) {
mWakeLock.release();
mWakeLock = null;
}
}
private void createWakeLock() {
Log.d(TAG, "createWakeLock: ");
PowerManager pm = (PowerManager) getBaseContext().getSystemService(POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getClass().getSimpleName());
}
}
複製代碼
會當凌絕頂,一覽衆山小post
❤ 比心 ❤