成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

原因如下:

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

據我觀察,在Android系統上運行服務的軟件主要有三種目的:

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

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

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

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

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

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

3.軟件提供商壓力較小

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

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

又要引用那條微博:

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

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

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

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

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

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

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

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

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

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

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

作為Android用戶,真心希望這個優秀的功能可以應用于Android。另外,也真心希望Android有更多可以被其他系統借鑒的優秀設計。

【編輯推薦】

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

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-06-15 09:57:46

HibernateIBatis

2009-02-17 15:59:55

2012-06-15 09:37:40

Linuxmark

2011-06-24 11:35:01

內鏈

2018-10-17 10:46:54

區塊鏈互操作性比特幣

2020-05-20 07:00:00

DevOps端點檢測網絡攻擊

2015-04-16 14:00:55

新浪云SAE序列化

2009-12-11 09:36:02

PHP數據緩存類

2011-11-08 21:19:25

2023-03-07 13:28:17

2009-12-25 14:26:40

無線接入技術集成

2023-08-20 12:34:53

2011-06-14 10:20:20

URL標準化

2023-09-14 15:58:34

C++表達式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区四区在线视频 | 亚洲欧美精品一区 | 在线小视频 | 欧美日韩国产三级 | 国产成人精品一区二区 | 精品免费在线 | 午夜在线小视频 | 午夜免费观看网站 | 日韩精品一区二区三区在线播放 | 日韩视频一区二区在线 | 国产精品高潮呻吟久久av黑人 | 91直接看| 亚洲精品二区 | 7777在线视频 | 天天拍天天插 | 国产精品亚洲视频 | 毛片a区 | 婷婷免费视频 | 久久精品亚洲精品国产欧美 | 超碰免费在线 | 国产欧美精品一区二区色综合朱莉 | 久久久久国产精品 | 在线国产视频 | 成人动漫视频网站 | 亚洲综合区 | 国产影音先锋 | 天天色天天射天天干 | 欧美性另类| 亚洲精品乱码久久久久久蜜桃 | 国产精品综合久久 | 一区二区三区高清在线观看 | 久久久www成人免费精品 | 一片毛片 | www日本高清视频 | 情侣av| 精品视频免费 | 欧美精品一区二区三区在线播放 | 精品在线一区 | 视频在线h | 久久九九网站 | a级在线免费 |