Android 後台機制能不能設計成和 iOS 的一樣?

原問題:

安卓允許程序後台運行是技術硬傷還是故意放任??

原問題補充說明:

谷歌不會不知道有多少人煩這個吧。。。

弄成IOS那樣是技術上沒法做到嗎?


兩者都是,原因在於,Android是開源的。

iOS不是不能後台,而是只允許蘋果自己的程序後台。

Android么,google能不能規定只有google程序允許後台?不能,雖然這隻需要寫一句代碼就能實現,但一個開源的aosp項目寫這麼一句話挺不和諧的,而且產商可以輕易修改掉這句代碼,所以使得這毫無意義。

另外一方面,蘋果能規定只有自己的應用能後台,第三方應用不能後台,這完全有可能存在某個隱藏的內部api,但開源的Android同樣也不可能有隱藏api。所以技術上也更難實現。

當然,如果某個手機廠商主動願意做這個限制,還是可以做到的,比方說 LBE 能做到,那麼如果某個手機廠商的 ROM 內置 LBE,控制自啟動這些就不是問題。——我認為這種限制應該成為所有 android 手機的標配,也許產商並不這麼想。


回答是: 現在已經不能了.

當然, 這個問題也不是這麼簡單:

1. 從技術角度來看. Android完全可以通過將在後台運行超過一定時間的Service回收, 並且限制BroadcastReceiver和Alarm的使用來控制應用在後台的運行. 做成iOS那樣的後台機制並沒有任何技術障礙. Greenify這樣的App和國內的一些Rom已經能夠在一定程度上實現類似的功能. 當然, iOS的後台機制不是簡單到通過Android開發者模式的幾個設置就能模仿的.

2. 從歷史角度來看. iOS一開始完全沒有後台任務, 用集中管理的後台推送來滿足IM類軟體的需求. 而Android一開始就將Service設計為App的核心組件之一, 並且不提供集中的消息推送機制(gcm並非強制使用, 並且在國內比較呵呵). 大量App的核心功能極度依賴Service: Dropbox的後台同步, 迅雷的後台下載等等. 現在雖然技術沒有障礙, 但是Android的生態環境已經不允許Google這麼做了.

3. 從設計哲學的角度看. Apple和Google這兩家公司文化截然不同. 一個封閉, 一個開放. 兩者的公司文化很大程度上影響到了兩款操作系統的設計. 一句調侃的話是: 在Apple, 是設計師在寫代碼; 在Google, 是工程師在做設計.

另外需要補充的是, 隨著設計的逐漸成熟以及硬體的不斷發展, 兩者正在彼此借鑒. iOS從完全沒有後台, 逐步變成有限制的後台. Android開始區分Foreground Service和Background Service, 並對Alarm等機制進行逐步改進. 雙方都在從自己的視角對產品進行不斷的優化.

可憐的Windows Phone.


主要是沒有統一的推送平台,所以無法實現後台停止活動


題目改了,所以補充一下:

當然可以,無論是操作方式還是後台機制都能設計得跟iOS一模一樣

但這不是安卓的選擇的道路

設置-&>開發者模式拉到最底下,自己設置允不允許程序後台運行

看看禁止後台程序運行之後用起來如何,就知道是允許體驗好還是禁止體驗好了


我覺得這既不是硬傷,也不是放任.安卓實際是從好的角度出發的.後台允許運行自定義的service,有利於軟體開發.

內存不足時,系統會自動殺掉一些進程,所以佔用內存什麼的也不是大問題.如果程序願意,在系統內存足夠的情況下, 還可以重啟後台.

這是工程師思維.蘋果可能考慮商業比較多.

有的軟體開發商看到了後台程序的商業價值,過度利用了這個功能.這應該不是安卓的本意.

不過安卓應該提供選項,禁用某些軟體的後台倒是真的.

有些二次開發的rom已經做了.


真的沒人知道Android默認是可以和iOS一樣限制背景程序的嗎?

進入開發者模式

拉到最下面點擊[背景程序限制]

把標準限制改成[無背景程序]

有必要的話重啟一下

祝君用的好


這是一個選擇。

事實是,優秀應用只在需要後台時後台,而國內安卓生態圈裡優質應用很難冒出來


推薦閱讀:

攜程的實習 offer 該去么?和小米的實習 offer 之間該選哪個?
在窮游網(www.qyer.com)工作是一種怎樣的體驗?
有哪些比較好的下載有聲讀物或者有聲資料的網站,免費且方便的?
為什麼現在的互聯網公司喜歡用動物來做標誌和logo?
如何評價韓東燃造謠童哲事件?

TAG:互聯網 | 蘋果公司AppleInc | Android開發 | 科技 | Android |