1. 程式人生 > >android版微信的不死之謎

android版微信的不死之謎

你是否還在為android程式後臺服務被使用者清理而苦惱?你是否還在耿耿於懷微信的應用為什麼那麼頑強的在後臺存活?你是否被“人家微信能實現後臺推送,你也能實現”這種理論而搜遍各大論壇?

是時候來揭曉微信不死之謎的正面目了大笑(賣個關子)

答案:因為你的程式不夠牛B,或者你的公司不夠牛B,影響力不夠!

此話怎講呢?

現在國內的手機廠商使用的android系統無一例外的都是進過改造後。

剛好手頭有一部華為的榮耀測試機,那麼我將用最簡單的方式來證明我的答案:

新建一個android工程,將 applicationId設定為 "com.tencent.mm"。此applicationId為微信的,我們先借來用一下。

然後建立一個空的service服務,在MainActivity啟動的時候將service啟動。

先將手機上已有的微信app解除安裝掉,然後再將測試的工程安裝到手機,開啟應用。此時正常情況下服務已經被開啟。

退回到系統Home介面,點選選單鍵,會出現如下介面。


向上滑動或者點選垃圾桶,會對後臺的程式進行清理。

如果你是一般的應用,這麼清理你的後臺服務肯定會掛掉的,但是微信就是可以存活!可見微信屬於二般應用了偷笑

由於我借用了微信的applicationid,所以我的後臺服務仍然健康的活著!

看我已經全部都清理掉了


接下來到設定裡面檢視,正在執行的服務

我的Demo應用RecordUploader仍然在執行著!


看看這個Demo的服務詳細,看到那個”com.tencent.mm“了嗎?


說明華為的系統針對微信的應用做了特殊的處理!!!只要是微信的appid就預設的不清理,相當於加入了白名單!

更可氣的往下看,華為的手機管家裡面有個受保護的應用功能,預設的普通應用是不受保護的。但是隻要是微信的appid對應的應用就預設的被保護了???!!!


開機啟動也預設的被允許了!!!


看到這裡,你應該明白了吧。因為微信足夠的強大,強大到影響ROM廠商主動的為其開路!

那些號稱不死服務、程序守護的實現方式都是扯淡!因為改造過的android系統會直接把你的程序清理掉!

不過從使用者的角度來想,系統廠商們這麼做也是無可厚非的。如果系統都做不到徹底的清理,那麼是個軟體開發者都能讓自己的服務在後臺一直執行,開發者的水平參差不齊。那麼android的體驗豈不是非常的差?執行的速度越來越慢。

產品經理們都想讓自己的服務在後臺執行著,隨時可以給使用者推送,你們有考慮使用者的感受嗎?

所以,不要拿你普通的app和微信作比較了!!!