導航:首頁 > 操作系統 > 為什麼安卓喚醒

為什麼安卓喚醒

發布時間:2022-04-14 19:05:49

A. 為什麼安卓 APP 之間能互相喚醒

收發廣播的老流氓

B. 如何解決安卓手機頻繁喚醒的問題

如果你遇到這種問題的話,你可以在手機的自啟動向你取消,開機自啟動,一般的情況下可以取消其喚醒了,如果還是不行了,那麼就要將系統root了,然後你就可以直接把這個東西刪除了。

C. android os進程長時間處於「保持喚醒狀態」,什麼原因

我也在找這個問題解決辦法,但是很遺憾 還沒有!下邊有一篇文章寫的比較清楚:只有飛行模式有辦法解決!而且還有個問題:今天半天時間看了下流量,這個進程居然一下耗費了13M多的流量,真的不知道是什麼情況!!
------------------------------以下轉自網路--------------------------------
Android OS 進程耗電多的問題是否有解決辦法?
簡單的說就是Android手機(根據查閱,各種型號Android手機均有可能出現此情況)變得異常費電,查看電量信息,android os進程耗電最大,待機時佔用到60%+的電量。

網友總結有以下特點:
1.關掉背景同步和各種谷歌服務,無效
2.用鈦同步凍結各種有可能在待機時工作的服務和軟體(包括各種谷歌服務),無效
3.能挪到SD卡的程序統統挪到SD卡,無效
4.關掉WLAN,GPS,數據傳輸,數據漫遊,無效
5.打開USB調試,無效
6.充滿電以後重啟一次,無效
7.用CPU大師設置屏幕關閉時自動降頻至384MHZ或者192MHZ,無效
8.用PLUS工具箱提高超頻電壓,因為不能設置1.2GHZ以上的值,嘗試設置成56-800一類的若干組高電壓數值,無效
9.飛行模式,有效
10.考慮到9有效,綜合考慮4,因此在4的基礎上,手動指定運營商為聯通,並設置為2G網路,無效
11.用PLUS工具箱切換了O2,港版,新歐版等幾種基帶配置,無效
12.刷ROM,無效
13.用autostart關掉各種自啟動關聯,無效

網友分析得出的原因:
「不
正常耗電是因為android os在待機時不斷喚醒設備造成的。至於具體是什麼子進程在不斷讓android os工作,可以通過wake
lock的使用情況來確定。所以安裝模擬終端,用take
wakelock的方式得到/proc/wakelock文件,然後進行查看,結果數次查看的結果都是mmc_delayed_work進程非常頻繁的使
用wake lock。(1小時5000次以上)然後重啟在充電和飛行模式下做同樣的測試,結果mmc_delayed_work進程使用wake
lock的次數幾乎可以忽略(只有幾次),據此基本可以確定,是mmc_delayed_work在不插電的情況下工作不正常,不斷請求CPU資源,導致了android os一直喚醒待機時的設備,造成異常耗電。此問題基本上和谷歌服務什麼的沒任何關系。」
那麼,這種情況應該如何解決呢?這樣的好點基本導致手機無法正常使用了,但純待機都到不了12小時,希望有高人給用戶些建議

D. 安卓後台應用為何喜歡互相喚醒

一般不會互相喚醒,安卓後台應用需要注冊事件才能喚醒,例如網路連接改變,鎖屏喚醒等,這些事件會喚醒所有注冊該事件的應用,因此看起來是互相喚醒。

E. airpodspro安卓為什麼一開主動降噪就喚醒了語音助手

恢復出廠或者用設置,不過最大的可能是卡了。無法喚醒語音助手(下載的第三方應用現在會將AirPodspro識別成別的耳... *降噪體驗十分完美 ps: 1.同時打開藍牙會優先鏈接安卓2.連接過安卓後需放。

F. 在Android系統上啟動知乎app時會喚醒微信是什麼原因

本回答信息來自針對微信Android客戶端以及知乎Android客戶端的分析。

我手機上裝了一鍵清理的軟體,平時從來不讓微信在後台運行,但是每當打開知乎,不出三秒,微信消息就來了,消息並不固定,只是感覺微信被打開了,我在想知乎是不是跟微信合作,後台打開微信,然後以此來賺錢的呢?
首先針對題主的疑問,准備的回答:不是

實際的情況是,知乎調用微信sdk中分享的相關介面,微信sdk的相關介面裡面,給微信發送了一個廣播,微信app就被喚醒了,這不是知乎的主觀行為,而是微信的(而且結合實際的分析來看,這個應該也算是正常的功能)。

以下是詳細分析:

1 首先說一下app的被喚醒(自啟動)機制。
app自啟動,基本上都是依靠Android的廣播來實現的,而且是靜態注冊的廣播(在AndroidManifest.xml文件中進行配置的廣播),發送廣播的方法在一般情況下是sendBroadcast。

2 按照慣例,反編譯一下微信apk,然後搜索一下它能夠由哪些靜態廣播進行喚醒,同時抓取廣播相關的log。

結合微信的AndroidManifest.xml文件以及抓取的log,可以知道相關的BroadcastReceiver是EntryReceiver,相關的action 為

com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_REGISTER
com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_UNREGISTER

從其名稱上看,是和注冊/注銷相關,具體接收到廣播之後做了哪些處理,這些就不贅述了。

I/ActivityManager( 1107): Start proc com.tencent.mm for broadcast com.tencent.mm/.plugin.base.stub.WXEntryActivity$EntryReceiver: pid=28779 uid=10131 gids={50131, 3003, 1028, 1015, 3002, 3001}

<receiver android:name="com.tencent.mm.plugin.base.stub.WXEntryActivity$EntryReceiver">
<intent-filter>
<action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_REGISTER"/>
<action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_UNREGISTER"/>
</intent-filter>

3 接下來分析知乎的代碼

搜索一下知乎反編譯之後的smali文件(sendBroadcast),其中只有一條是和微信相關的

hu_2.0.3_176/smali/com/tencent/mm/sdk/openapi/j.smali: invoke-virtual {v0, v4, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V

再看一下反編譯的java文件,能夠比較清楚的看到,就是利用com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_REGISTER
這個action來進行注冊,檢查一些必要的信息。

根據這些信息,結合微信和知乎反編譯之後的文件,已經可以完整的分析具體發生了哪些事情了。

com.tencent.mm.sdk.openapi.j

public final boolean a(String paramString)
{
if (!b("com.tencent.mm"))
{
com.tencent.mm.sdk.platformtools.a.a("MicroMsg.SDK.WXApiImplV10", "register app failed for wechat app signature check failed");
return false;
}
this.b = paramString;
com.tencent.mm.sdk.platformtools.a.b("MicroMsg.SDK.WXApiImplV10", "register app " + this.a.getPackageName());
Context localContext = this.a;
String str1 = "weixin://registerapp?appid=" + this.b;
String str2 = "com.tencent.mm" + ".permission.MM_MESSAGE";
Intent localIntent = new Intent("com.tencent.mm.plugin.openapi.Intent.ACTION_HANDLE_APP_REGISTER");
String str3 = localContext.getPackageName();
localIntent.putExtra("_mmessage_sdkVersion", 553910273);
localIntent.putExtra("_mmessage_appPackage", str3);
localIntent.putExtra("_mmessage_content", str1);
localIntent.putExtra("_mmessage_checksum", b.a(str1, str3));
localContext.sendBroadcast(localIntent, str2);
com.tencent.mm.sdk.platformtools.a.b("MicroMsg.SDK.MMessage", "send mm message, intent=" + localIntent + ", perm=" + str2);
return true;
}

4 最後,因為偷懶,所以我只是大概的靜態分析了相關代碼,沒發現知乎和微信做了什麼喪失的事情,然後大概加了段log check了一下,從中也可以看出的確是和分享有關,至於使用時機及頻率是否合適,這個和問題沒什麼關系,不做討論。

D/hillwind( 5766): java.lang.Throwable
D/hillwind( 5766): at com.hillwind.android.util.RLog.printStackTrace(RLog.java:11)
D/hillwind( 5766): at com.tencent.mm.sdk.openapi.j.a(Unknown Source)
D/hillwind( 5766): at com.hu.android.util.af.b(WeChatHelper.java:43)
D/hillwind( 5766): at com.hu.android.widget.a.b(ActivityChooserModel.java:721)
D/hillwind( 5766): at com.hu.android.widget.ShareActionProvider.setShareIntent(ShareActionProvider.java:98)
D/hillwind( 5766): at com.hu.android.ui.fragment.bx.a(QuestionViewerFragment.java:221)
D/hillwind( 5766): at android.support.v4.app.j.a(FragmentManager.java:1973)
D/hillwind( 5766): at android.support.v4.app.g.onCreatePanelMenu(FragmentActivity.java:226)
D/hillwind( 5766): at android.support.v7.a.b.a(ActionBarActivity.java:233)
D/hillwind( 5766): at android.support.v7.a.g.a(ActionBarActivityDelegateICS.java:146)
D/hillwind( 5766): at android.support.v7.a.b.onCreatePanelMenu(ActionBarActivity.java:200)
D/hillwind( 5766): at android.support.v7.a.g$a.onCreatePanelMenu(ActionBarActivityDelegateICS.java:293)
D/hillwind( 5766): at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:472)
D/hillwind( 5766): at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:878)
D/hillwind( 5766): at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:257)
D/hillwind( 5766): at android.os.Handler.handleCallback(Handler.java:733)
D/hillwind( 5766): at android.os.Handler.dispatchMessage(Handler.java:95)
D/hillwind( 5766): at android.os.Looper.loop(Looper.java:136)
D/hillwind( 5766): at android.app.ActivityThread.main(ActivityThread.java:5140)
D/hillwind( 5766): at java.lang.reflect.Method.invokeNative(Native Method)
D/hillwind( 5766): at java.lang.reflect.Method.invoke(Method.java:515)
D/hillwind( 5766): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
D/hillwind( 5766): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
D/hillwind( 5766): at dalvik.system.NativeStart.main(Native Method)

G. 安卓系統不同的軟體總是被喚醒是怎麼回事

  1. 安卓系統不同的軟體總是被喚醒是因為軟體被允許在後台運行,有消息就自動喚醒。

  2. 解決方法:設置-自啟管理里關閉軟體自動後台啟動。

  3. 或者在安裝軟體完成時禁止軟體後台運行。

H. 安卓手機雙擊喚醒屏幕怎麼實現的

可以通過設置來完成,以魅族手機為例,具體操作方法如下:

1、在手機主界面打開設置。

I. 為什麼那麼多安卓應用要互相喚醒,為什麼要

國內沒有谷歌原裝android系統,沒有谷歌機制的監管,大家不得不這么做

閱讀全文

與為什麼安卓喚醒相關的資料

熱點內容
如何查看電腦系統伺服器ip地址查詢 瀏覽:389
把文件夾設鎖 瀏覽:570
命令行語句 瀏覽:218
企友3e財務如何連接伺服器 瀏覽:984
華為手機如何刪除卸載app殘留數據 瀏覽:543
rpm的命令作用 瀏覽:365
如何查看網站的伺服器時間 瀏覽:850
編譯局和人民出版社 瀏覽:652
java泛型extends 瀏覽:326
頭條程序員教學 瀏覽:772
安卓合並什麼意思 瀏覽:530
linux在光碟引導 瀏覽:537
imap伺服器地址怎麼查 瀏覽:654
作曲教程pdf 瀏覽:506
pr怎麼壓縮文件大小 瀏覽:863
查看oracle字元集命令 瀏覽:179
鋰電池增加密度 瀏覽:661
linux用戶密碼忘記 瀏覽:242
gb壓縮天然氣 瀏覽:635
圖片拼接不壓縮app 瀏覽:670