自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

通知推送在Android上的必要性與可行性

移動開發(fā)
“iOS通知?哼哼,我們有后臺任務(wù)”很多Android用戶對iOS的通知推送不屑一顧。Android允許應用程序在后臺執(zhí)行任務(wù),諸如QQ等應用程序可以與服務(wù)器實時通訊,iOS版QQ的推送延遲也不會在Android上出現(xiàn)。

Android應用甚至擁有iOS無法想象的能力,名為Tasker的應用允許用戶創(chuàng)建自動化腳本,比如到地鐵入口處自動關(guān)閉3G網(wǎng)絡(luò),出了地鐵再開啟之類。那是否Android就不需要通知推送了呢?答案是需要。

原因如下:

1.通知推送可以以三種方式提醒用戶(鈴聲、應用圖標上的數(shù)字或一條文本信息),這涵蓋了大部分后臺程序的功能

據(jù)我觀察,在Android系統(tǒng)上運行服務(wù)的軟件主要有三種目的:

1)對用戶毫無好處的流氓軟件,代表軟件CutTheRope,該游戲在后臺運行服務(wù),但是其任何功能都不需要后臺服務(wù)的支持。唯一解釋是該應用正在收集并上傳用戶數(shù)據(jù)。

2)通訊軟件,以QQ和微博為代表。Android上的QQ收到信息后會發(fā)出鈴聲并顯示一個通知圖標。iOS的通知推送完全可以實現(xiàn),只是有時會有延遲。

3)自動化軟件。這些軟件在后臺執(zhí)行任務(wù),不與用戶交互。代表為短信防火墻和Tasker。不考慮越獄的話,iOS軟件無法實現(xiàn)這種功能。這種軟件數(shù)量較少,使用起來也較復雜,多為高端用戶(順便說下短信防火墻曾經(jīng)擋了支付寶的驗證碼短信)

可見,通知推送可以做到大部分“接收服務(wù)器通知并呈現(xiàn)給用戶”軟件要利用后臺服務(wù)才能搞定的功能。

2.通知推送利用單一的通訊連接與服務(wù)器通信,省電省流量

如果你的Android手機同時掛著QQ、微博、微信,用電那是嗖嗖的快呀,而iPhone沒有這個問題,掛的多頂多是通知多點惹人煩。運行后臺服務(wù)連接 服務(wù)器,不僅要占用CPU,并且維持3G網(wǎng)絡(luò)也是很費電的。通知推送在3G連接持續(xù)可用時(比如正在用瀏覽器上網(wǎng))保持與推送服務(wù)器的通信,在手機閑置時 過一段時間才連接一次服務(wù)器(這就是QQ推送會延遲的原因),省電。推送服務(wù)器把多個消息打包,一起發(fā)送給手機,省流量。(如果經(jīng)過優(yōu)化,甚至可以僅啟用 2G連接接受推送消息。Android后臺服務(wù)不可能進行這樣的優(yōu)化)

3.軟件提供商壓力較小

假設(shè)我是一個軟件提供商,有十萬活躍用戶,每天給每個用戶發(fā)送10條消息。如果利用通知機制,我只需要發(fā)一百萬條消息而已,甚至可以只用一個VPS就完成這點工作。而用Android的后臺服務(wù),需要接受10萬用戶的連接,壓力與前者不在一個數(shù)量級。

4.編程簡單,可以日后升級,尤其適合消息頻率低的軟件

又要引用那條微博:

@williamlong: 不知道是不是我的錯覺還是其他什么原因,剛才我的iphone上忽然彈出一個窗口,說我已經(jīng)很久沒玩捕魚達人了,然后系統(tǒng)就自動運行我手機上的捕魚達人應用了。

先不說這種方法是否騷擾用戶,他的確是拉來用戶的有效方法。在iOS上這太容易實現(xiàn)了,只要在發(fā)布軟件時請求推送權(quán)限就行了。我們看看如果在Android上實現(xiàn)這功能需要怎么做:

1)為軟件編寫系統(tǒng)服務(wù)或開機啟動功能。一個高級用戶很容易發(fā)現(xiàn)你在這么做,并把這功能屏蔽或直接卸載。另外,如果只是為了在半個月后彈出一條通知,這么大動干戈也太“重”了吧?

2)如果沒有前瞻性,就需要靠軟件升級。開發(fā)軟件的時候如果沒把前一條的功能寫好,你準備發(fā)布一個增加了系統(tǒng)服務(wù)的版本并在更新說明中寫上“增加了系統(tǒng)服務(wù),以便彈出通知拉回那些很久不使用的用戶”么?

3)安卓軟件如果優(yōu)化的不好,容易死機或者占用過多內(nèi)存。后臺服務(wù)也很難優(yōu)化對網(wǎng)絡(luò)的訪問:使用長連接需要保持網(wǎng)絡(luò)在線, 如果是過一段時間連接一次服務(wù)器,在后臺應用較多時也難以省電,不同的應用對網(wǎng)絡(luò)的訪問此起彼伏,網(wǎng)絡(luò)難以閑置。

以上的分析足以說明Android系統(tǒng)使用推送機制可以帶來足夠的好處。那么,是否我們很快就可以在下個版本的Android系統(tǒng)中見到推送機制呢?畢竟Google的技術(shù)如此強大,Android又是如此需要推送。

如果不考慮專利問題的話,Android和推送之間的***隔閡其實是策略,或者說系統(tǒng)定位。

iOS嚴重依賴網(wǎng)絡(luò)服務(wù),一個不越獄,不綁定AppleID的iPhone幾乎什么都做不了。推送機制應用于這樣的系統(tǒng)順理成章。原生的Android 系統(tǒng)是個完全自治的環(huán)境。他不需要任何輔助就可以自主運行。以CM為例,它里面沒有Google賬戶,沒有電子市場。用戶需要單獨刷入Google服務(wù)包 才能使用Google服務(wù)。(相比之下,Nexus系列的固件其實是Google定制版的Android)通知推送這種依賴服務(wù)器的軟件如何在這種系統(tǒng)下 運行?

如果加上通知機制,如果默認為所有Android都使用Google的服務(wù)器,則Android本身變?yōu)橐粋€依賴Google才能運 行的系統(tǒng),這顯然違背 了Android一向“干凈”的風格。如果僅在Google服務(wù)包中提供通知服務(wù),無疑等于半拋棄了那些沒有服務(wù)包的設(shè)備們,這也讓Android設(shè)備的 分化更為嚴重。

如果Android上有了推送功能,更可能的是系統(tǒng)自帶了推送功能代碼,而服務(wù)器則需要手機廠商(或者用戶)自定義。大多數(shù)廠商可以直接使用Google的推送服務(wù),亞馬遜肯定要用自己的推送服務(wù)器,大陸行貨就請自求多福把。

軟件提供商也面臨著難題:他們要連接多個服務(wù)器(Google的和Amazon的,沒準還有QQ的和阿里云的)以便為不同的用戶群提供推送;還必須為那些手 機不支持推送服務(wù)的用戶做出兼容(捕魚達人有沒有廣告推送問題不大,QQ這種實時性高的用后臺服務(wù)更好些,微博從各個方面看利用推送都正合適,但難道要為 沒有推送的用戶單獨做一個版本?)。好消息是大部分的用戶都會在軟件提供商那里注冊(這樣提供商才知道用哪個服務(wù)器發(fā)起推送),便于追蹤用戶使用情況。

作為Android用戶,真心希望這個優(yōu)秀的功能可以應用于Android。另外,也真心希望Android有更多可以被其他系統(tǒng)借鑒的優(yōu)秀設(shè)計。

【編輯推薦】

  1. 微軟:Android惡意軟件受害者可獲免費WP手機
  2. 10種技巧可提升Android應用運行效果
  3. 研究稱Android是最不開放的開源移動平臺
責任編輯:冰凝兒 來源: 淺嘗輒止
相關(guān)推薦

2012-10-26 13:48:54

云計算運維云安全

2023-05-31 10:02:29

人工智能

2012-04-12 17:41:02

2009-09-21 16:40:42

Hibernate可行

2011-04-28 11:04:22

DataReader分頁

2014-02-17 09:37:31

亞馬遜WorkSpacesVDI

2009-02-17 15:59:55

2009-06-15 09:57:46

HibernateIBatis

2012-06-15 09:37:40

Linuxmark

2011-06-24 11:35:01

內(nèi)鏈

2020-05-20 07:00:00

DevOps端點檢測網(wǎng)絡(luò)攻擊

2018-10-17 10:46:54

區(qū)塊鏈互操作性比特幣

2015-04-16 14:00:55

新浪云SAE序列化

2009-12-11 09:36:02

PHP數(shù)據(jù)緩存類

2011-11-08 21:19:25

2023-03-07 13:28:17

2009-12-25 14:26:40

無線接入技術(shù)集成

2023-08-20 12:34:53

2011-06-14 10:20:20

URL標準化

2023-09-14 15:58:34

C++表達式
點贊
收藏

51CTO技術(shù)棧公眾號