1、引言
IM在Android上的保活問題經(jīng)常在即時(shí)通訊網(wǎng)的論壇和技術(shù)群里被討論,自從Android 8.0后系統(tǒng)大大降低了后臺(tái)運(yùn)行應(yīng)用的?;钊萑潭龋ㄔ斠姟禔ndroid P正式版即將到來:后臺(tái)應(yīng)用?;?、消息推送的真正噩夢》),?;顝暮诳萍紮M行的時(shí)代進(jìn)入了技術(shù)蠻荒階段,真要實(shí)現(xiàn)?;睿夹g(shù)難度越來越大。
不過話說回來,既然用黑科技進(jìn)行?;钍茿ndriod技術(shù)的逆潮流,那何不回頭是岸,做個(gè)“良民”?
本文將以某款線上的IM產(chǎn)品為例,介紹它是如何引導(dǎo)用戶在多款主流機(jī)型上加白名單的,并分享了該款I(lǐng)M中已制作完成的多達(dá)7款主流Andriod機(jī)型的詳細(xì)加白FAQ頁面資源(含完整html+圖片),方便您進(jìn)行參考、學(xué)習(xí)和研究,希望能為你的應(yīng)用開發(fā)帶來幫助。
特別申明:本文示例中的資源來自某款真實(shí)的IM產(chǎn)品,僅供學(xué)習(xí)和研究,請勿用作非法用途,如有侵權(quán),請告之于我。
學(xué)習(xí)交流:
- 即時(shí)通訊/推送技術(shù)開發(fā)交流5群:215477170[推薦]
- 移動(dòng)端IM開發(fā)入門文章:《新手入門一篇就夠:從零開發(fā)移動(dòng)端IM》
本文已同步發(fā)布于“即時(shí)通訊技術(shù)圈”公眾號(hào),鏈接是:
https://mp.weixin.qq.com/s/JqWloZLBYicpxElVL_HKYw
2、Android保活,變的越來越不可能了
IM產(chǎn)品在Android上的?;顔栴}從早期的系統(tǒng)版本到現(xiàn)在,從未有人停止過嘗試。即時(shí)通訊通訊網(wǎng)也隨著Andriod系統(tǒng)版本的升級(jí),持續(xù)整理了很多篇相關(guān)文章,比如下面這些(文章的順序按照Android系統(tǒng)的版本從低到高)。
《應(yīng)用保活終極總結(jié)(一):Android6.0以下的雙進(jìn)程守護(hù)?;顚?shí)踐》
《應(yīng)用?;罱K極總結(jié)(二):Android6.0及以上的?;顚?shí)踐(進(jìn)程防殺篇)》
《應(yīng)用?;罱K極總結(jié)(三):Android6.0及以上的保活實(shí)踐(被殺復(fù)活篇)》
《Android進(jìn)程?;钤斀猓阂黄恼陆鉀Q你的所有疑問》
《Android P正式版即將到來:后臺(tái)應(yīng)用?;睢⑾⑼扑偷恼嬲瑝簟?/p>
《全面盤點(diǎn)當(dāng)前Android后臺(tái)?;罘桨傅恼鎸?shí)運(yùn)行效果(截止2019年前)》
上面這些文章,我們可以看到,自從Android 8.0(即Andriod P)以后,IM以及其它需要在后臺(tái)?;畹漠a(chǎn)品,存活難度越來越高,黑科技幾乎都不起作用了。
于是,一些技術(shù)從牛們只能從更深的Android系統(tǒng)層面嘗試突破系統(tǒng)的?;钕拗疲热邕@兩篇:《史上最強(qiáng)Android保活思路:深入剖析騰訊TIM的進(jìn)程永生技術(shù)》、《Android進(jìn)程永生技術(shù)終極揭密:進(jìn)程被殺底層原理、App應(yīng)對被殺技巧》。
正如上面兩篇文章,為了跟系統(tǒng)作斗爭,可謂斗智斗勇。但Android系統(tǒng)的歷史進(jìn)程終究無人能阻擋,越來越嚴(yán)格的保活限制已經(jīng)是Android官方及各大手機(jī)廠商的共識(shí)。
好吧,之前費(fèi)盡心機(jī)折騰的各種黑科技,如今就像浮云一樣。。。
3、死磕保活?別做夢了,回頭是岸
正如上節(jié)所述,鑒于Andriod保活變的越來越不可能,很多原本靠黑科技保活的產(chǎn)品,開始重新審視保活技術(shù)實(shí)現(xiàn),到底是把?;詈诳萍歼@條路走到黑,還是回歸Android官方最佳實(shí)踐(乖乖引導(dǎo)用戶手動(dòng)設(shè)置白名單)?
我個(gè)人認(rèn)為,后者是保活技術(shù)發(fā)展的必然結(jié)果,就像之前分享的這篇文章里所做的嘗試一樣:《2020年了,Android后臺(tái)?;钸€有戲嗎?看我如何優(yōu)雅的實(shí)現(xiàn)!》,規(guī)范地引導(dǎo)用戶“加白”。
放棄“黑科技”,并不意味著技術(shù)不行,回歸“良民”,反而變的一身輕松。
4、調(diào)用系統(tǒng)代碼引導(dǎo)用戶加白名單,也不完美
之前整理的《2020年了,Android后臺(tái)?;钸€有戲嗎?看我如何優(yōu)雅的實(shí)現(xiàn)!》一文,是按照不同的機(jī)型,自動(dòng)適配代碼并在代碼中調(diào)用系統(tǒng)的加白名單設(shè)置功能。
比如像下面這樣的代碼調(diào)用:
(▲ 以下代碼引用自《2020年了,Android后臺(tái)?;钸€有戲嗎?看我如何優(yōu)雅的實(shí)現(xiàn)!》)
會(huì)彈出這樣一個(gè)窗口:
這個(gè)方法確實(shí)不錯(cuò),但因?yàn)闄C(jī)型不同、同機(jī)型的ROOM版本不同,代碼的兼容處理,可能會(huì)相當(dāng)復(fù)雜,所以方法雖好,但也并不能一勞永逸的解決所有問題。
5、應(yīng)用內(nèi)提供更多機(jī)型的“加白”FAQ幫助,是一個(gè)補(bǔ)充辦法
正如上節(jié)所示,調(diào)用系統(tǒng)代碼引導(dǎo)用戶加白名單確實(shí)算的上“優(yōu)雅”,但在不同的機(jī)型、同機(jī)型的不同系統(tǒng)版本上,可能差異很大,代碼兼容性是個(gè)頭疼的問題,總之這不是個(gè)百分百完美的辦法。
這就需要一個(gè)補(bǔ)充手段,比如我們可以針對大量不同的機(jī)型,針對它的最行或最常用系統(tǒng)版本,在應(yīng)用內(nèi)以FAQ幫助網(wǎng)頁的方式,為用戶提供幫助。
比如可以在手機(jī)里打開像下面這樣FAQ網(wǎng)頁頁面:
至少能在調(diào)用系統(tǒng)代碼無法實(shí)現(xiàn)的情況下,可以讓用戶自主找到解決問題的辦法。而這便是本文要分享,下節(jié)內(nèi)容會(huì)以一個(gè)市面上做的比較好的IM應(yīng)用為例,為你提供一個(gè)完整示例。
6、一個(gè)完整的“加白”FAQ幫助示例
最近發(fā)現(xiàn)的一款市面上的IM應(yīng)用(此產(chǎn)品跟即時(shí)通訊網(wǎng)無任何關(guān)系,僅僅是作為技術(shù)研究參考對象而已),它內(nèi)置的“加白”FAQ幫助就很完善。
以下是從該款I(lǐng)M中截下來的圖:
以下是該款I(lǐng)M應(yīng)用中的運(yùn)行演示視頻(點(diǎn)此打開視頻鏈接):
收起視頻
目前該應(yīng)用中FAQ幫助已覆蓋7款主流Andriod機(jī),以下是完整示例頁面鏈接:
1)如何解決華碩手機(jī)收不到消息提醒?(手機(jī)里查看,效果更佳)
2)如何解決 HTC 手機(jī)收不到消息提醒?(手機(jī)里查看,效果更佳)
3)如何解決華為手機(jī)收不到消息提醒?(手機(jī)里查看,效果更佳)
4)如何解決小米手機(jī)收不到消息提醒?(手機(jī)里查看,效果更佳)
5)如何解決 OPPO 手機(jī)收不到消息提醒?(手機(jī)里查看,效果更佳)
6)如何解決三星手機(jī)收不到消息提醒?(手機(jī)里查看,效果更佳)
7)如何解決 vivo 手機(jī)收不到消息提醒?(手機(jī)里查看,效果更佳)
可以看到,這款I(lǐng)M里的“加白”FAQ做的還是比較細(xì)、覆蓋的機(jī)型也比較典型, 如果你有類似的想法或需求,完全可以參考這款產(chǎn)品的實(shí)現(xiàn)。尤其在一些特定的場景(比如企業(yè)內(nèi)部的IM等)下,這種方式還是能解決大部分終端用戶的問題的。
7、覆蓋7款主流機(jī)型的“加白”FAQ頁面靜態(tài)資源(附件下載)
我整理了上節(jié)中提到的這款I(lǐng)M產(chǎn)品中的全部“加白”FAQ幫助頁面靜態(tài)資源,覆蓋7款主流Andriod機(jī)型,如果你也需要同樣的東西,可以參考這份完整的示例實(shí)現(xiàn),打包到手機(jī)中使用之。
以下是這份靜態(tài)資源示例的內(nèi)容(圖太長,已截掉了一部分):
無法上傳附件,見諒。
(本文同步發(fā)布于:
http://www.52im.net/thread-3033-1-1.html)