android優化之省電

2021-06-20 12:53:24 字數 2840 閱讀 1454

android程式中耗電最多的地方在以下幾個方面 :

1、 大資料量的傳輸。

2、 不停的在網路間切換。

3、 解析大量的文字資料。

那麼我們怎麼樣來改善一下我們的程式呢?

1、 在需要網路連線的程式中,首先檢查網路連線是否正常,如果沒有網路連線,那麼就不需要執行相應的程式。

檢查網路連線的方法如下:

[*]connectivitymanager mconnectivity;

[*]telephonymanager mtelephony;

[*]……

[*]// 檢查網路連線,如果無網路可用,就不需要進行連網操作等

[*]networkinfo info = mconnectivity.getactivenetworkinfo();

[*]if (info == null ||

[*]        !mconnectivity.getbackgrounddatasetting())

[*]//判斷網路連線型別,只有在3g或wifi裡進行一些資料更新。

[*]int nettype = info.gettype();

[*]int netsubtype = info.getsubtype();

[*]if (nettype == connectivitymanager.type_wifi) else if (nettype == connectivitymanager.type_mobile

[*]        && netsubtype == telephonymanager.network_type_umts

[*]        && !mtelephony.isnetworkroaming()) else

[*]很多人開發的程式後台都會乙個service不停的去伺服器上更新資料,在不更新資料的時候就讓它sleep,這種方式是非常耗電的,通常情況下,我們可以使用alarmmanager來定時啟動服務。如下所示,第30分鐘執行一次。

alarmmanager am = (alarmmanager) [*]

context.getsystemservice(context.alarm_service);

[*]intent intent = new intent(context, myservice.class);

[*]pendingintent pendingintent =

[*]pendingintent.getservice(context, 0, intent, 0);

[*]long interval = dateutils.minute_in_millis * 30;

[*]long firstwake = system.currenttimemillis() + interval;

[*]am.setrepeating(alarmmanager.rtc,firstwake, interval, pendingintent);

[*]最後一招,在執行你的程式前先檢查電量,電量太低,那麼就提示使用者充電之類的,使用方法:

[*]public void oncreate()

[*]intentfilter mfilter =

[*]        new intentfilter(intent.action_battery_changed);

[*]broadcastreceiver mreceiver = new broadcastreceiver()

[*]};

xin.wu發表於 2012-2-21 12:50:14

我確實發現android比較費電。有時間連一天都用不了。感謝樓主的分享

xuemei發表於 2012-2-21 12:58:31

哇塞,很酷。搞乙個放在手機裡,試一試:d

火星人發表於 2012-2-21 13:18:19

嗚嗚,我手機是塞班的系統,樓主有沒有塞班省電的好方法啊?

hong.li發表於 2012-2-21 13:18:57

太好了,我正為此發愁呢。樓主的帖子發得真及時。謝謝!

yinhangdy發表於 2012-2-21 17:37:41

如果有節省流量的就更好了

hellobyj發表於 2012-2-22 14:22:15

本帖最後由 hellobyj 於 2012-2-22 14:22 編輯

節省流量的方法是斷開網路,不上網;p

hey123發表於 2012-2-24 09:40:26

android手機省電技巧,該技巧通過本人實際測試,效果很不錯,貼出來和大家一塊分享。:)

1:將手機的螢幕亮度調到最低限度。

2:將震動關閉,將來電模式設定為鈴聲。

3:平時不上網、不使用藍芽、不使用wifi時將這些功能都關閉,如果這些功能開啟的話,它們會不停的搜尋周圍的訊號。還有將wifi中自動搜尋周邊的wifi網路也給關閉掉。

4:晚上睡覺時,可以講當前手機狀態模式,調成飛行模式或者關機。

5:最好能將自己的android手機的root許可權給開啟,將內建的一些不用的軟體給卸掉,因為它們會一直在後台跑著自己的服務,這樣也會很費電。

6:在平時自己使用某款軟體時,如果用完了,最好是能把它們給關閉退出來,不然這些軟體會一直在你手機的後台執行。

7:出差的途中為了讓手機更省電,可以將手機設成離線模式,這樣它就不會在換區域時不停的搜尋訊號。

8:平時再打**時,最好在乙個地方待會把話說完,如果不停的走動,手機的也會不停的搜尋周圍的基站,並且還會增加訊號忽強,忽弱時無線電波對你大腦的輻射。

後台任務及省電優化

三 android不同版本對省電的優化 四 針對省電優化的解決方案 附 參考 關於 android 程序保活,你所需要知道的一切 但是,官方說明自己看 doze會通過推遲應用程式的後台cpu和網路活動來減少電池消耗。系統會定期退出doze一段時間,讓應用程式完成延期活動。在此維護視窗期間,系統將執行...

Android之效能優化

目的 減少布局檔案的層級,減少android繪製時的工作量。方法 刪除布局中無用的控制項和層級 選用效能較低的viewgroup linearlayout,framelayout1.ondraw中不要建立新的區域性物件 2.ondraw中不要做耗時任務 產生記憶體洩漏原因 1.靜態變數導致 2.單例...

Android應用優化之業務優化

作為程式開發者,我們應該也需要花費一些時間放在業務優化上。很多時候迫於時間的關係,當實現業務的方案並非最優。比如為了實現多張的上傳,很多人直接使用序列操作,儘管這樣比較容易達到效果,但並非最優。由於每個產品的業務並不相同,也就很難有通用的優化方案。首先我們先來設立兩個目標。1 如果有可能,序列業務並...