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和微信作比較了!!!