編輯:關於android開發
不知不覺,安卓已經成為了世界上最流行的移動智能系統,就市場占有率來看,安卓甚至要高於引領了智能機和平板電腦革命的iOS。安卓的紅火深遠地影響了IT行業,全球最大的社交網絡Facebook甚至倡議員工棄用iOS改換安卓手機以更深入地了解用戶體驗
但是,流行總伴隨著流言,安卓席卷世界的同時也讓一些關於安卓的誤解深深地植根在了人們的腦海中。很多人每天都在用安卓,或者經常能夠接觸到安卓設備,閱讀和安卓相關的文章,但是這些並不能意味著你就了解安卓的真相。下面是一些在人群中流行已久的有關安卓的誤解,我們一起來看看。
誤解一:安卓是iOS的後輩
都說Google家的安卓Google家的安卓,但安卓最早還真不是Google搞出來的。雖然Google已經將安卓作為自家服務在移動市場布局的重要旗子,但是安卓最初並非是Google麾下的大將。早在Google於2008年發布安卓之前,安卓已經誕生。
在2003年10月,有“安卓之父”之稱的安迪·魯賓(Andy Rubin)創建了安卓科技公司,致力於為用戶研發更聰明的移動設備。2005年,Google收購了安卓公司,而魯迪也成為了Linux內核移動操作系統團隊的領導人——這個Linux內核的移動操作系統就是安卓。
安卓之父Andy Rubin先生
雖然有人說,iOS項目的開始並不比安卓公司的成立晚,但是這並沒有什麼依據。從公布的時間上來看,安卓的歷史的確要長於iOS。不過,iOS第一版發布於2007年,要早於Google發布安卓的2008年,這就讓很多人認為安卓不過是iOS公布後,Google一年間趕工做出來的摹仿品。
雖然安卓學習了iOS的很多招式,但安卓真的不是iOS的後輩
的確,安卓在iOS發布後借鑒了iOS很多元素,但這並不意味著安卓就是跟著iOS尾巴走的小朋友。安卓是Google多年前就在移動市場埋下的伏筆,絕非是Google一時興起造出來的iOS跟風狗。
2誤解二:安卓比WP等收費系統成本低
誤解二:安卓0成本,比WP等收費系統便宜
安卓的開源路人皆知,只要遵循GPL和Apache 2.0開源協議,誰都能夠免費使用安卓的源代碼進行開發。可以說,安卓的確是一個免費的移動操作系統。
使用安卓真的不要錢嗎?
然而,這並不意味著免費的安卓比收費的WP來得成本更低。安卓的開源計劃AOPS(Android Open Source Project)所開放的源代碼遠不足以讓安卓在市面上的移動設備上跑起來——你以為給手機裝系統和給電腦裝系統是一個概念麼。如果移動設備廠商想要推出安卓設備,就必須自己開發或者向相關的硬件廠商購買能讓硬件運行於安卓系統的底層驅動/BSP,這個經費可不便宜。想想如果NV和AMD它們都要你買驅動才讓你跑Windows,估計Windows PC也不會是現在這個價了。
讓安卓在硬件上跑起來一點都不便宜
此外,安卓硬件廠商還需要為一些額外的、安卓不具備的功能購買授權費,比如說你想要支持Office文件就要購買相關授權,想要支持iBeats音效要自己掏銀子,想要通殺各種多媒體一大筆錢是少不了的了。比如說,不少生產安卓機的廠商如三星和HTC,每部安卓機都需要向微軟繳納10美元的專利費。當一部運行正常、功能豐富的安卓設備來到你手中的時候,它的成本已經包含了大量的研發費用和授權費。綜合起來一算,微軟提供全套服務包括軟硬件解決方案的收費WP系統可能還來得更便宜——WP的授權費也就15美元。
WP每台機器授權費15美元一切全包,算起來可能還真比安卓便宜
當然,也不是說安卓系統的成本就一定很昂貴,國內很多山寨廠壓根就不給你交什麼專利費。而實力不足,負擔不起太高的研發費用的話,還可以購買一整套成熟的安卓硬件解決方案——比如說高通就為大家提供了包括包含ARM核心的SOC芯片和基帶芯片等硬件的全套解決方案,只要乖乖付錢給高通,就能省去很多研發成本。由於高通的存在,安卓得以四處開花,高通在業界裡被譽為安卓MTK並不是沒有道理的。
3誤解三:安卓卡頓嚴重
誤解三:安卓卡頓嚴重
的確,很多安卓機無論是系統本身還是運行其他App,都會卡頓嚴重。然而,這並非是安卓系統的問題,將卡頓這個屎盆子扣安卓一臉,未免也太過於不公平。
安卓真的不如iOS流暢?
在系統皆保持在最新、硬件同等的情況下,安卓未必不如iOS流暢。而舊版iOS設備如iPhone3GS和iPhone4更新到最新版的iOS後,卡頓程度未必就比配置近似的安卓設備少。說到底,安卓之所以給人留下卡頓嚴重的印象的主要原因有以下幾點:
1、安卓推出之初完成度不高,當時硬件水平也很低下,那時候安卓機真心卡頓嚴重。雖然多年過去了,安卓已非吳下阿蒙,移動設備性能也呈爆炸性增長,現在主流以上的安卓機已經完全具備告別卡頓的條件了——可惜卡頓這個印象已經深刻在人們腦海裡了,哪有這麼容易擺脫;
2、安卓設備良莠不齊,不少廠商開發能力低下優化極差,並且讓安卓運行於性能低下的硬件平台上。說實在,流暢性都是硬件堆起來的,試問哪一代iPhone綜合性能比同期的安卓旗艦差?將中低端的安卓機和最新一代iPhone放在一起,自然很容易得出安卓卡頓的結論,偏偏市面上最多的就是中低端的安卓機,卡頓是硬件的錯而不是安卓本身的原因;
市面上流行的多是低端安卓機,性能低下怎能不卡
3、用戶使用不當。安卓4.0以後的版本加入了強制GPU渲染的選項,打開後可以大幅增加很多圖形界面的流暢程度。此外,如果一心追求流暢性的話,還可以手動限制後台數量、設置不保留活動,令安卓減負到類似iOS的運行環境中。如此一來,就算安卓的流暢度比不上iOS,但也絕對談不上卡頓嚴重。
打開GPU強制渲染可以增加流暢度
總的來說,歷經了Google的努力和硬件的發展,安卓已經說不上卡頓了。安卓在流暢性方面已經今非昔比,我們不應該以過去的眼光看待安卓。
4誤解四:安卓基於JAVA
誤解四:安卓基於JAVA
每每提到安卓,總會有人提到以下這幾個觀點:“安卓是用JAVA寫的”;“安卓跑在JAVA虛擬機上怎麼可能快”;“安卓軟件只不過是JAVA,實際上安卓軟件和山寨機的JAVA軟件差不多”。不少人對這些言論深信不疑,而這些觀點的流行更是讓安卓背上“基於JAVA的低效率系統”這個不白之冤。http://hovertree.com/menu/java/
實際上,這些觀點有失偏頗。首先安卓基於Linux Kernel,而Linux本身就是用C語言撰寫的。安卓的一些第三方庫基於C++,在中間層和用戶界面部分才利用了一些JAVA語言,安卓基於JAVA編寫這種說法並不准確。
此外,雖然安卓的軟件可以使用JAVA軟件編寫,但是和非智能機所支持的JVM擴展區別很大。安卓使用Dalvik虛擬機運行JAVA,Dalvik虛擬機基於寄存器,速度遠非JVM這種基於棧的方案可以媲美——寄存器是為了解決中央處理器指令吞吐性能不足而設計的,這本來就是為速度而生的東西。將安卓的Dalvik機制等同於JVM,未免也過小瞧Google了。
Dalvik虛擬機速度遠勝於JVM
此外,安卓軟件還有速度更快的方案——直接使用C語言或者C++語言開發。開發安卓軟件有兩種方式,一就是大家都熟悉的所謂的“用JAVA開發”,在安卓SDK(安卓軟件開發包)中使用JAVA編寫安卓應用;另一種是通過安卓NDK(安卓原生開發包)使用C/C++編寫安卓應用,不必跑Dalvik虛擬機,效率更高。
開發者可以在NDK用C/C 編寫安卓軟件
實際上,目前不少安卓軟件都已經改用NDK和C/C++語言開發,一些測試軟件如CF-Bench也將安卓機器的性能分為SDK性能和NDK性能。在CF-Bench中,我們可以看到安卓系統基於NDK的跑分是SDK的三倍以上。很多朋友一廂情願地認為安卓基於JAVA、安卓軟件都是低效的JAVA,實在是一個大大的誤解。
5誤解五:很多安卓機被閹割了Google服務
誤解五:安卓不帶Google服務是因為被閹割過
現在很多安卓機都沒完整的Google服務,這讓安卓機的競爭力大降——要知道在網絡正常的情況下,Google服務被眾多資深網民、極客乃至黑客認為是互聯網最有價值的東西之一。為了重新使用各種Google服務,國行安卓機的用戶不得不十分折騰地刷上GMS Google服務框架,安裝Google App。
Google服務也許是互聯網上最有價值的東西
很多人都認為,由於種種特殊原因,安卓機在上市的時候被迫閹割了Google服務。但是事實上這個還真不能怪其他人,安卓系統中的Google服務本來就不在安卓的開源計劃AOSP中,廠商如果只按照安卓開源的代碼進行開發,本來就是沒有Google服務的。而且雖然Google App不要錢,但其他廠商不經過Google同意是不能隨便使用Google的應用程序的。由於Google的業務重心已經不在中國大陸,所以在中國大陸上市的安卓機不帶有Google服務是再正常不過的了。
安卓的開源計劃AOSP並不包括Google服務
當然,並不是說國行安卓機就一定沒有Google服務。如果廠商有誠意的話,還是能夠得到Google同意,在國行安卓機上附帶Google服務的。但是有這個閒心的廠商不多,幸好安卓開放的特性能夠讓用戶手動安裝上Google服務,也算是個解決方案吧。
所以說,很多安卓機沒有Google服務並不是因為被閹割過,而且安卓源代碼本來就不包括Google服務。Google服務對於安卓機是一項增值服務,而非必須。
後話
距離Google首次發布安卓系統不知不覺已經過去四年了,在這四年中,安卓實在變化良多,安卓4.2和安卓1.6第一眼看上去完全就是兩個不同的系統。而iOS的變化相對較少,從2007年到現在,鎖屏還是那個鎖屏,主界面還是那個主界面,經典得到了傳承。
安卓的高速發展和創新伴隨著系統的劇變,人們自然也難以認清楚這個每半年都變身一次的家伙。去掉有色眼鏡和誤解,呈現在你眼前的會是一個更加真實的安卓。
推薦:http://www.cnblogs.com/roucheng/p/javaduoxiancheng.html
Android導入外部數據庫 當我們軟件中要使用大量數據,我們會選擇將這些數據存儲到一個數據庫中,然後通過數據庫的查詢修改操作來管理這些數據。大多數情況下我們都只在程序中
Android 查看自己的keystore的別名及相關信息,androidkeystore1.在DOS窗口下進入自己的keystore所在位置,輸入 &nb
andriod 資源文件之存取操作,andriod資源文件來自:http://blog.csdn.net/jianghuiquan/article/details/856
Android 熱修復原理及Gradle插件源碼解析(以Nuwa為例) 現在,熱修復的具體實現方案開源的也有很多,原理也大同小異,本篇文章以Nuwa為例,深入剖析。