android原型
① 為什麼安卓比ios慢
雖然很多Android手機的配置都比iPhone要高,比如大多數Andorid手機的內存都有1GB,而iPhone 4S只有512MB內存,但用過iPhone的人都知道Android手機在使用的時候總感覺沒有那麼順滑,究竟為什麼會出現這種現象呢?
Android沒有iOS流暢的原因並非Java GC導致暫停,也不是因為Android運行的是Java編譯的bytecode而iOS運行的native code,根本的原因是,iOS的UI渲染採用實時優先順序,而Android的UI渲染遵循傳統電腦模式的主線程普通優先順序。
這聽起來似乎很抽象和難以理解,但大家可以嘗試一下,使用你的iPad或者iPhone,打開Safari,然後載入一個復雜的網頁,例如新浪網首頁,當網頁載入到一半的時候,把你的手指放在屏幕上,並且四處移動,你會發現所有的渲染立刻停止,在你拿開手指前,網頁永遠也不會繼續載入。
而在Android設備上重復這個操作,你會發現,瀏覽器會繼續嘗試載入頁面並渲染HTML,試圖多任務同時進行,因此對於Android來說,一個高效的雙核處理器是很重要的,這也就是Galaxy S II能夠非常平滑的原因。
在iOS中UI渲染過程具有絕對的優先等級,當用戶接觸到iPhone的觸摸屏後,iOS中所有的進程都將停止,UI線程攔截了所有的事件,系統會將所有資源用於渲染UI過程,以保證用戶界面的實時渲染優先順序。而在Android系統中UI渲染過程的優先順序別卻沒有那麼高,也就是說當你觸摸Android手機屏幕的時候,系統後台的程序並沒有停止,仍然在繼續運行之中,比如下載和查收簡訊,這樣系統UI獲得的資源就不夠,這就是Android系統不流暢的原因。
由於這個原因,新發布的Galaxy Nexus,甚至配備四核處理器的話說EeePad Transformer Prime平板電腦都無法保證順滑的操作體驗,這些設備只能與3年前的iPhone順滑程度相比,那麼Android團隊為什麼不從根本解決這個問題呢?
除了UI渲染之外,Android缺乏有效的的硬體加速也是一個原因,在不同的Android手機上的硬體加速存在巨大差異,而蘋果是唯一一個既做硬體又做軟體的手持設備公司,只有蘋果可以在硬體中插入對軟體的優化,使得基於蘋果晶元的設備不僅省電,而且流暢。
實際上,Android的開發工作在第一代iPhone發布之前就已經開始了,原始Android原型體被設計成為使用鍵盤手機的設備,也就是黑莓手機的競爭對手。UI渲染優先順序別在有鍵盤的手機上並沒有那麼重要。但是在iPhone發布之後,Android小組為了快速推出能與iPhone競爭的產品,迅速將Android改成觸摸屏手機系統,但那時重寫UI框架已經不可能了。因為如果這樣Android應用市場中的所有程序將變得不可用,這種關系將一直處於惡性循環之中。
② Android:安卓發展史
1973手機館| 數碼文化
手機 歷史 未來發展
深度好文 全面詳細
近幾年來,安卓系統市場佔有率穩定在60-70%,從誕生到擊敗Windows Phone(微軟)、Symbian(諾基亞)、BlackBerry OS(黑莓),安卓只用了非常短的時間。
Android這個詞最先出現在法國作家維里耶德利爾·亞當在1886年發表的科幻小說《未來夏娃》中,作者把外表像人類的機器起名為「安德羅丁」(android)。
而安卓的創始人則是大名鼎鼎的安迪·魯賓,1963年出生於美國紐約州,1986年獲得紐約州尤蒂卡學院計算機學士學位,之後加入卡爾·蔡司擔任機器人工程師。
1989年,魯賓到開曼群島 旅遊 ,遇到了蘋果公司一位叫Bill Caswell的工程師,之後被推薦到蘋果公司,於是26歲的魯賓便加入了蘋果公司。
1989年到1992年,安迪·魯賓在蘋果擔任軟體工程師,工作期間,由於喜歡研究機器人,還得到了一個外號:Android(機器人)。
1990年,蘋果將手持電腦部門和通訊設備部門剝離出來,成立了一個新公司General Magic,中文叫通用魔術,主要研究個人通訊器一類的手持設備,也就是智能手機,兩年後,魯賓加入了這個新公司。
通用魔術不僅研發出了早期的手機系統Magic Cap,還做出了便攜的移動設備,是智能手機和手機系統的奠基者。
由於概念太超前,只有少數幾個生產商和通訊公司能勉強接受,之後通用魔術公司破產,部分人員後來都成為了谷歌、蘋果、微軟的高級工程師,毫不誇張的說一定程度上對蘋果和安卓都有極大的影響,這個偉大公司我們之後單獨講。
而安迪·魯賓則選擇了加入了三名蘋果公司元老成立的Artemis公司,參與開發互動式互聯網電視WebTV。1997年,Artemis公司被微軟收購,魯賓留在微軟,繼續 探索 機器人項目。
1999年,魯賓離開微軟,在矽谷中心城市帕羅奧圖租了一個零售商店做實驗室,研究各種機器人。
之後安迪·魯賓和朋友一起創辦了一家名為「Danger」的公司,名字來自美國電視劇《迷失太空》,劇中有個機器人經常發出「Danger!」警告。
開發一個可聯網的相機,為了吸引投資人的興趣,他們為相機加上了鍵盤、無線通訊等模塊,做成了可上網的智能手機Sidekick,並決定與運營商進行合。
2002年10月,Danger發布了SideKick首款產品Hiptop,這是一台具有革命性的無線設備,支持網上沖浪、收發電子郵件、網上聊天、在線 游戲 、電子郵件、小說、通訊功能。
之後陸續發布了Hiptop2、Hiptop3、SideKick iD、SideKick LX、SideKick 2008、摩托羅拉Q700、Sidekick 2009,直到2011年,三星還推出了Sidekick 4G。
2002年初,在斯坦福大學給矽谷工程師講課,談到了Sidekick的研發過程,恰好台下坐著谷歌創始人拉里·佩奇和謝爾蓋·布林。受到Sidekick的啟發,佩奇有了開發手機和一個移動操作系統的想法。
Danger公司成立之後,安迪·魯賓從工程師轉變為管理者,公司運營不理想,雖然SideKick是超越了時代的產品,但商業上卻無比失敗,之後魯賓選擇了卸任CEO。
2003年10月,安迪·魯賓聯合幾位朋友創建Android公司,自己也把所有積蓄投入了進去。
一開始Android主要是針對數碼相機開發操作系統,但是無法引起投資者的興趣。
由於很喜歡機器人這個稱呼,安迪·魯賓購買了Android.com 作為個人網站的域名,2008年Android.com變成了安卓開發聯盟的本部。
一開始,安迪·魯賓就把Android的商業計劃確定為免費向手機生產商開放,然後向運營商出售增值服務。
但Android的經營一直不太良好,關鍵時間安迪·魯賓還得靠朋友的資助才維持了公司的運營,為此只好尋找投資,就這樣谷歌走了進來。
2005年1月,安迪·魯賓和西爾斯到谷歌山景城總部會談,Google三駕馬車,只有拉里·佩奇欣賞魯賓的構想。
45天之後又進行了第二次會面,Android四位創始人全部到齊, 向 谷歌展示了一款軟體原型,谷歌也直接表明態度:想要收購Android。
正缺投資的Android接受了谷歌的收購提議,據說交易價格為5000萬美元。
2005年7月11日,Android團隊搬進了谷歌。
一開始Android略有點抗拒成為谷歌的一部分,谷歌會對每一行代碼進行審查,保證質量和統一性,但是Android一直反對,兩年後,谷歌才如願以償,但Android在谷歌一直是特立獨行,像孤兒一樣閉門造車。
因為谷歌的移動戰略是把自己的應用安裝到其他手機上,而Android的理念不僅要把應用裝到其他手機里,還要把自己的系統裝到手機里。
要想推廣Android,谷歌還需要開發出運行這款軟體的手機,為了找到願意銷售手機的運營商,安迪·魯賓不停遊走在晶元生產商、智能手機生產商、移動運營商之間尋找合作。
時間來到了2007年,谷歌一邊加緊安卓系統的完善和開發,一邊尋找生產手機的合作夥伴。
在美國手機銷售由運營商控制,沒有一家運營商感興趣,Verizon、Sprint、AT&T都不感興趣,與T-Mobile談判了6個月後,還是被拒絕。
關鍵時刻,恰好Android聯合創始人尼克·西爾斯,曾擔任過T-Mobile的營銷高管,成功說服了CEO羅伯特·道森答應了合作。
谷歌終於找到了願意銷售Android手機的運營商,但這個過程中發生了一件大事,2007年1月蘋果推出了智能手機,2007年6月正式發售。
全觸屏的體驗式革新給谷歌帶來了巨大壓力,打亂了谷歌的步伐,但也讓谷歌和安卓因禍得福。
Android在正式發行之前,有兩個內部測試版本,分別是阿童木、發條機器人。
而第一部搭載Android系統的手機也有兩個版本,第一個代號Sooner,使用HTC Excalibur的機身,T-Mobile的定製版本叫Dash。第二個代號Dream, 採用了新的設計和觸摸屏。
普通的Sooner版本採用的是早期的Android M3系統,很粗糙,軟硬體開發度都比較低,原型機既不支持觸摸功能,也不支持3G網路和WiFi,外形還非常像黑莓的翻版。
早期版本Android系統的主頁的風格借鑒了MacOS的風格,底部有一個Dock可以顯示五個應用圖標,按Home鍵彈出快捷方式抽屜,操作完全用搖桿鍵切換圖標,與蘋果全觸控的交互邏輯完全沒法競爭。
半路殺出個蘋果之後,谷歌不得不放棄之前計劃,跟隨蘋果趨勢,轉向更激進的Dream版本,跟進觸屏趨勢,重新設計系統。
原始Android M3版本有太多全鍵盤的交互邏輯,時間緊急,谷歌只好以側滑蓋方式保留了全鍵盤,在默認狀態下以屏幕觸控進行交互。
谷歌正在不停地完善新系統的主屏幕、通知欄、撥號鍵盤、快捷方式、日歷、Gmail、電子市場等等最基礎的功能。
另一邊,初代iPhone已經發布。
2007年11月5日,谷歌也趕緊展示了Android系統,並宣布建立一個聯盟組織開放手持設備聯盟(Open Handset Alliance)來共同研發改良Android系統。
該組織由34家手機製造商、軟體開發商、電信運營商、晶元製造商、84家硬體製造商、軟體開發商、電信營運商組成。
2008年,Android.com變為OHA(手機開放聯盟)的官方網站,在Android上,魯賓吸取了Magic Cab和Sidekick的教訓,為了讓更多廠商生產相關的設備,堅持Android開源。
時間來到了2008年6月,蘋果發布了iPhone 3G,而到8月份,谷歌終於發布了Android 0.9 Beta版,終於是一個嶄新完善的系統了。
在展示了Android系統一年以後,終於有了成品亮相,2008年9月22日,谷歌正式對外發布第一款Android手機HTC G1,又名HTC Dream。9月23日,谷歌發布了Android1.0。
手機是由運營商T-Mobile定製,台灣HTC代工製造。早在魯賓洽談製造Sidekick手機的時候就和HTC有過交流,看來多年的合作默契也是後來谷歌手下HTC手機部門開發Pixel的原因之一。
HTC G1發布後,對手iPhone的暢銷反而又幫了谷歌和安卓一把,AT&T獲得了iPhone在美國的獨家銷售權,其他運營商找不到可以與iPhone匹敵手機,被迫開始關注Android。
之後大廠摩托羅拉也開發出了基於Android操作系統的手機Droid,Verizon甚至花一億美元推廣摩托羅拉Droid。
2009年4月,T-Mobile宣布,G1銷量突破一百萬台。到2010年末僅僅推出三年的Android已經超越稱霸十年的諾基亞Symbian系統。
站穩腳步後,谷歌推出了自己旗下第一款自主品牌手機,Nexus one(HTC G5),依然由HTC代工生產。
2010年,新設計了Android的Logo,是由Ascender公司設計,靈感源於男女廁所門上的圖形符號。
安卓系統雖然不是谷歌100%說了算,但英文的Android和中文安卓,以及這個綠色機器人都是谷歌的商標,只有谷歌可以直接用,其他廠商則必須打上Powered by Android的標識。
2009年4月,Android 1.1發布三個月後,Androud1.5發布,這也是第一個有公共代號的版本:紙杯蛋糕。
從這個版本開始,Android每次會以英文字母的順序,以甜點作為版本代號。
從Android 10開始,Android不再按照零食或甜點的字母順序命名,而是轉換為版本號。
安卓逐漸強大,是一系列因素共同作用的結果,既有蘋果的助力,也有運營商的幫助,更重要的是開源。
而創始人安迪魯賓則慢慢在Android的發展方面失去了話語權,桑達爾·皮采(Sundar Pichai)接管了Android、Chrome和谷歌的大多數產品。
2013年3月,安迪魯賓離開了Android部門,負責谷歌的機器人部門,2014年離開谷歌,投入到自己的創業孵化公司。
2015年,安迪魯賓創立了一家手機公司Essential,並於2017年發布Essential Phone,2020年2月Essential宣布停止運營。
而正在孕育的Essential Phone 2、Essential Phone3全都無疾而終。
大部分數據來自網路
③ Android 開發中常用到的設計模式有哪些
設計模式總共是23種,常用的有下面幾種 :
1 單例模式,application 就是單例 可以存儲一些數據例如記錄activity的啟動數量 ;
2 觀察者模式: button的onClickListener ,監聽button的響應;
3 適配器模式 :例如recyclerView 的adapter ;
4 命令模式: 例如開源庫eventBus ,把數據封裝好 發送出去,然後接收; 等等等等,很多