『壹』 安卓手機後台程序無法關閉怎麼辦
其實android系統設計的理念就是要淡化用戶對後台的管理,手機資源的分配完全交給系統就可以。Android會設定一個閾值,這個閾值默認設置的非常小,所以我們所看到內存剩餘量也會很少,事實上並不會影響手機的速度。下面是我收集整理的安卓手機後台程序無法關閉怎麼辦,歡迎閱讀。
安卓手機後台程序無法關閉怎麼辦
關於Android的後台一直關不掉的問題,其實完全是因為Android的廣播機制。簡單來說,當用戶安裝某一個程序的時候,系統會像面試官一樣把這個程序的功能記錄下來,當用戶在使用手機時,系統狀態的變化會產生各種事件,這些事件需要一些程序來處理的時候,系統會發送廣播消息,而這些能處理這件事的程序會被啟用,究竟是用哪一個程序,這個是由系統默認的程序或者由用戶選擇的程序來處理這個事件。
舉個例子:就如同你開了一家公司,Android是你的管家,那些程序則是來你這里應聘的職工,管家會記錄這些職工的能力,例如A會搓澡,B會大保健。當你想要搓澡的時候,管家會叫A過來幫你搓澡。當你想要大保健的時候,管家會叫B過來給你做個大保健。哪怕這個程序是在休眠中,也會被叫起來。也就是不管你怎麼去關閉這些應用程序,當需要它的時候,它就是一顆螺絲釘,哪裡需要哪裡釘。
當然還有一些你不需要的程序也一直在自啟動,這是因為利益的原因,國內的很多流氓軟體都改變了自身程序的優先性,外加增加了終止其他程序的許可權,還有增加守護進程的功能,當檢測到自己人被幹掉了,直接一個復活術讓這個程序滿血滿藍原地復活。而另外一些社交軟體則是為了保證能夠及時推送消息,也會做出一些優先權的改變。
如果運行內存大,是不是就不需要關閉了?
其實Android系統設計的.理念就是要淡化用戶對後台的管理,手機資源的分配完全交給系統就可以。Android會設定一個閾值,這個閾值默認設置的非常小,所以我們所看到內存剩餘量也會很少,事實上並不會影響手機的速度,而且它有一個自己的規則來回收這些內存,當內存使用達到臨界值的時候,再次打開另一個程序系統會選擇一些重要性比較低的程序關閉來騰出內存給這個程序運行。
而我們之所以感覺手機在打開某個大型程序會慢的原因就是當你打開這個程序的時候,這個程序會向系統申請內存,由於系統不會關閉所有的進程,只是選擇性的去關閉,所以會調動大量的系統資源進行操作,自然也就會拖慢系統。改變系統的閾值會改善很多,但是也可能會帶來一些問題。
所以,後台的程序本身就不需要關閉,如果當你運行某個大型程序的時候可以去手動關閉,這樣可以顯著的提高速度,而平常使用的時候則不需要去管它。至於內存的大小,這個除非你內存大到一定程度,否則你安裝N多APP早晚又會達到這個閾值的。
關閉手機後台運行程序
方法一、在應用上退出程序
現在很多軟體游戲在退出後是不會在後台繼續運行的,像這類應用我們只需在應用界面點擊手機「返回鍵」兩次即可退出,或者在應用設置處點擊退出即可。
方法二、在手機設置里關閉程序
如果手機應用在前台關閉後仍然會運行,您也可以在手機設置里對程序進行關閉。
1、在手機「設置」里找到「應用程序」,在應用列表裡找到該應用,如下圖所示。
2、點擊應用圖標打開設置頁面後點擊「強行停止」即可。
方法三、用第三方軟體關閉程序
現在很多手機管理軟體都有關閉程序的功能,像360手機衛士、騰訊手機管家、高級任務管理器之類的軟體都可以實現。這里就以360手機衛士為例為大家講解一下。
1、打開360手機衛士,在「手機加速」里找到「內存清理」並點開,如下圖所示。
2、在「內存清理」頁面選擇需要清理的應用進程,有些如網路輸入法這類常用的軟體可以不用清理,然後選擇「一鍵清理」即可,如下圖所示。
3、此外360手機衛士安裝後在手機屏幕上會有個如下圖顯示所佔內存百分比的小圖標,點擊打開小窗口,點擊某個會關閉該應用,也可以點擊「一鍵清理」關閉所有前台應用。
手機中有些小軟體佔用的內存是很小的,對於這些軟體如果用戶常用的話是不需要去關閉其後台程序的,這樣能加快您下次啟動該軟體的時間,增加用戶體驗。而對於占內存比較大的軟體游戲,我們可以手動對其進行關閉,保障系統運行的流程,也能節省手機電量。
強制結束關閉後台
首先是打開"設置",然後找到"應用程序"點擊進入,找到"管理應用程序"後點擊,進入"正在服務的程序"選項,找到想結束的程序進入後點擊"強制結束"即可。
『貳』 怎麼把pc端的軟體作為伺服器與android客戶端通信
Android使用的僅僅使用了PC 里邊的一個埠 IP自然就是127.0.0.1了,或者是localhost吧 關於5037口和5555口,找到了一個看起來合理的解釋: adb(Android Debug Bridge)包括三個部分: 1)adb client, 運行在PC上(為DDMS,即IDE工作) 2)adb daemon(守護進程), 運行於Emulator(為與Emulator中的VM交互工作); 3)adb server(服務進程), 運行在PC(任務管理器上有),管理著adb client和adb daemon的通信.server與client通信的埠是是5037, adb server會與emulator交互的,使用的埠有兩個,一個是5554專門用於與Emulator實例的連接,那麼數據可以從Emulator轉發給IDE控制台了,另一個則是5555,專門與adb daemon連接為後面調試使用。
『叄』 Android5.0之後怎麼實現守護進程
1.提高優先順序
這個辦法對普通應用而言,應該只是降低了應用被殺死的概率,但是如果真的被系統回收了,還是無法讓應用自動重新啟動!
2.讓service.onStartCommand返回START_STICKY
通過實驗發現,如果在adb shell當中kill掉進程模擬應用被意外殺死的情況(或者用360手機衛士進行清理操作),如果服務的onStartCommand返回START_STICKY,在eclipse的進程管理器中會發現過一小會後被殺死的進程的確又會出現在任務管理器中,貌似這是一個可行的辦法。但是如果在系統設置的App管理中選擇強行關閉應用,這時候會發現即使onStartCommand返回了START_STICKY,應用還是沒能重新啟動起來!
3.android:persistent="true"
網上還提出了設置這個屬性的辦法,通過實驗發現即使設置了這個屬性,應用程序被kill之後還是不能重新啟動起來的!
4.讓應用成為系統應用
實驗發現即使成為系統應用,被殺死之後也不能自動重新啟動。但是如果對一個系統應用設置了persistent="true",情況就不一樣了。實驗表明對一個設置了persistent屬性的系統應用,即使kill掉會立刻重啟。一個設置了persistent="true"的系統應用,在android中具有core service優先順序,這種優先順序的應用對系統的low memory killer是免疫的!
『肆』 adb環境下的root許可權獲取
這個是和設備的系統有關系的,一般的debug 版本的系統可以開root,正式出廠的都沒有的
adb的root許可權是在system/core/adb/adb.c中控制.主要根據ro.secure以及ro.debuggable等systemproperty來控制.默認即檔ro.secure為0... 博文 來自: sir_...查看全部2021年1月3日-csdn已為您找到關於adb獲得root許可權相關內容,包含adb獲得root許可權相關文檔代碼介紹、相關教程視頻課程,以及相關adb獲得root許可權問答內容。為您解決當...
2021年7月1日-adb獲取root許可權----adb命令集合:一、獲取root許可權,給文件以讀寫許可權 步驟:1、手機進行root; 2、cmd 進入命令行 運行adbshell命令(adb已配置到環境變...
2016年8月10日-當你獲取root許可權後通過adb訪問 /data/data目錄: 1、進入shell模式adbshell 2、su 切換到root用戶 su 3、修改/data/data目錄的許可權為 777即可 chmod 777 /...
2013年8月15日-adb裡面有個root命令,可以用來獲取root許可權。Android守護進程adbd啟動時,會調用create_local_service_socket()創建socket套接字, fd = service_to_fd(...
『伍』 Android 7.0 和8.0 如何保活
1.控制onStartCommand函數的返回值。
我對這個函數的理解是:當服務被異常終止時,是否重啟服務?
有些文章裡面在用這個做保活時,修改的是flag,在我實際測試中是無效。有效的做法是直接返回參數。另外默認的flags值為0,是START_STICKY_COMPATIBILITY。如下:
[java]view plain
@Override
publicintonStartCommand(Intentintent,intflags,intstartId){
//TODOAuto-generatedmethodstub
returnSTART_STICKY;
//returnsuper.onStartCommand(intent,flags,startId);
}
測試結果:
魅族的機子:無效,不管默認還是修改參數,在DDMS裡面直接結束進程後都不會重啟服務。
其它三台機子(9100沒測):默認參數的情況下就會重啟服務,return START_STICKY 會重啟,return START_NOT_STICKY 不會重啟。
其它:1.用360一鍵清理,或者360超級ROOT的手機優化,會殺死進程,過會兒還是會重啟,只是會慢很多,大概是在排隊重啟服務。
2.一次測試完後確保服務重啟後,執行了onStartCommand函數。
2.在service 的onDestory裡面重啟服務
這個在所有能觸發onDestory的情況下都是有效的。4台測試機都測試過。直接startService 或者發送廣播重啟都可以 。
但能觸發onDestory的情況,我不知道內存回收會不會觸發。另外兩種情況(2,3)是不觸發的。我的測試方法是在「設置」-》應用管理-》正在運行-》停止服務。(這個是正常停止服務,會觸發onDestory,所以上面的onStartCommand效果不會觸發。)
3.提高服務的優先順序
這個主要是針對第一種kill服務的情況,內存回收機制。由於這個測試比較難搭建。360清理什麼把後台的進程都殺的,體現不出優先順序這樣的概念。我的建議是能提高就提高。下面例幾種。
通知--前台service
創建一個通知使自己成為前台service
測試結果:
360一鍵清理和手機優化,不會把該service結束掉。
對於後台保護:華為G730不結束service,魅族和華為TL00H都會結束service。
通知欄的保活效果還是可以的,一般的應用要求基本能滿足了。
若有root許可權:
android:persistent="true",並放入system/app中
測試結果:效果一般,三星9100上用360等清理工具殺不掉進程,在華為G730上沒什麼效果.(這個測試跟onStartCommand有點干擾)
4.守護進程
雙服務
360會同時殺掉兩個服務,分兩個apk也一樣。
native守護進程
360不會殺掉native的守護進程,但在魅族和華為TL00H中待機一段時間後還是會被殺掉。
結論和待續
1.一般的應用添加到後台保護進程後,改個onStartCommand返回值,再加個通知。基本上大部分都能保活了。
2.雙服務我覺得沒有native守護進程來的好,雖然360,微信什麼的都有幾個進程服務,但如果不添加到後台保活的話,效果一樣不能保活,也會進入停止狀態。
3.但是.360手機助手會創建雙natice守護進程做相互的看守。存活的效果會高一點點。「沒添加到後台保活」一般只會殺一次,(魅族是屏幕關閉後5分鍾,華為TL00H是屏幕關閉時)