1、常用布局的對比
創(chuàng)新互聯(lián)建站專注于連江網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供連江營銷型網站建設,連江網站制作、連江網頁設計、連江網站官網定制、微信小程序定制開發(fā)服務,打造連江網絡公司原創(chuàng)品牌,更為您提供連江網站排名全網營銷落地服務。
使用下來其他組件大致還算方便,但是相對布局而言使用便利程度上Android原生完勝,ConstraintLayout內部的所有子View可以設置互相之間的位置依賴關系。
而Flutter的Stack組件內部的Children只能通過外層包裹 Align后 固定位置,比如 Alignment.topLeft、Alignment.bottomRight 等。遇到復雜的堆疊布局需要通過外層包裹 Positioned 組件后設置固定的 top 和 left 距離以達到效果,內部子組件之間無法設置位置關聯(lián)關系。
2、一些常用屬性設置上的差異:
Margin外邊距
Android:直接在布局文件對View設置android:layout_marginStart、android:layout_marginTop
Flutter:需嵌套 Container 組件并在內部設置具體的 margin 值
Padding內邊距
Android:TextView、ImageView、各種Layout都可以直接在屬性上設置android:paddingStart
Flutter:需嵌套 Padding 組件并在內部設置具體的值
組件的可見性
Android:每個view都可以通過setVisibility來設置可見、隱藏或者隱藏但占位
Flutter:沒有單獨設置組件是否顯示的api,只能通過 bool 值控制是否添加該組件
事件監(jiān)聽
Android:常規(guī)的setOnClickListener和setOnLongClickListener設置單擊和長按事件
Flutter:在需要添加事件監(jiān)聽的組件外層嵌套 InkWell 或 GestureDetector 并設置 onTap 等
3、生命周期
Android:
Activity和Fragment各自有完整的生命周期鏈路onCreate、onStart、onResume、onPause、onDestroy等
Flutter:
萬物皆組件,組件繼承 WidgetsBindingObserver 并重寫 didChangeAppLifecycleState 函數進行監(jiān)聽
退回桌面依次執(zhí)行inactive 》= paused,此時界面不可見用戶不可操作,從桌面重新進入app執(zhí)行resumed,狀態(tài)較少如需在某些條件下觸發(fā)特定操作可能要找別的方案,比如發(fā)通知之類的
對比現(xiàn)在主流圖片框架的優(yōu)勢和缺點,在實際項目中如何選擇適合自己的框架;
Glide、Fresco、Picasso、ImageLoader
共同優(yōu)點:
以上名詞介紹
在分析他們的差異、優(yōu)缺點之前,我們先了解圖片緩存通用的概念:
以上概念在不同框架之間可能不同,比如Displayer在ImageLoader中叫做ImageAware,在Picasso和Glide中叫做Target。
以上為Glide的總體設計圖。
整個庫分為RequestManager(請求管理器)、Engine(數據獲取引擎)、Fetcher(數據獲取器)、MemoryCache(內存緩存)、DiskLRUCache(本地緩存)、Transformation(圖片處理)、Encoder(編碼處理)、Registry(圖片類型以及解析器配置)、Target(目標)等模塊。
簡單流程: Glider收到加載及顯示資源任務,創(chuàng)建Request并將它交給RequestManager,Request啟動Engine去數據源獲取資源,得到資源后通過Transformation處理后交給Target.
Glide依賴DiskLRUCache、GifDecoder等開源庫去完成本地緩存和Gif圖片解密工作;
為Bitmap 維護一個BitmapPool對象池, 對象池的主要目的是通過減少大對象的分配以重用來提高性能!
缺點 :
①圖片質量低:因為機制不同,速度快,但是圖片的質量降低了RGB565;
②多尺寸緩存導致內存和磁盤占用多:根據ImageView大小來緩存,可能會導致一張圖片可能根據展示情況來緩存不同尺寸的幾份;
擴展理解參考:
以上為Picasso的總體設計圖。
整個庫分為Dispatcher、RequestHandler以及Downloader、PicassoDrawable等模塊。
簡單流程: Picasso收到加載顯示圖片任務后,創(chuàng)建Request并將它交給Dispatcher,Dispatcher分發(fā)任務到具體RequestHandler,任務通過MemoryCache及Handler(數據獲取接口)獲取圖片,圖片獲取成功后通過PicassoDrawable顯示到Target中;
上面Data的File system部分,Picasso沒有自定義本地緩存的接口,默認使用http的本地緩存,API19以上使用okhttp,一下使用UrlConnection,所以如果需要自定義本地緩存就需要自定義Downloader;
缺點 :加載速度沒有其他框架快;
特點 :只緩存一個全尺寸的圖片,根據需求的大小在壓縮轉換;
以上為Fresco的總體設計圖
整個庫分為UI:DraweeView(View控件)、Drawable(圖片數據)、DraweeController(圖片控制器)、DraweeHiierarchy(圖片體系);Core:DataSource(數據源)、ImagePipeline(圖像管道)、Producer(生產者)、ProducerFacotry(生產工廠)、Subcriber(訂閱)、Supplier(供應者)、Consumer(消費者);IO/Data:MemoryCache(內存緩存)、Network、DiskCache(磁盤緩存)、Recourse(本地資源)
簡單流程: 從上面的結構可以看出,fresco主要采用了工廠+建造者的模式實現(xiàn)功能,邏輯劃分比較清楚;Fresco框架整體是一個MVC模式,DrawableView---View用來顯示頂層視圖、DrawableController---Control控制加載圖片的配置 事件的分發(fā)、DrawableHierarchy---Model 用于存儲和描述圖片信息,同時也封裝了一些圖片的顯示和視圖層級的方法;ImagePipeline模塊負責從網絡、本地文件系統(tǒng)、本地資源加載圖片
缺點:
①框架大,影響Apk體積;
②一定的學習成本,使用比較繁瑣,需要使用內部提供的ImageView控件,使用起來比較復雜;
微信小程序近期可謂是動作頻出,僅最近新增的能力就有:
種種跡象表明,微信對小程序的期望值是很大,所以在它推出的幾個月效果沒到達預期的情況下,之前的很多『克制』也就逐漸變成『放肆』了 —— 不過不管小程序以后的發(fā)展到底怎樣,對我們開發(fā)者來發(fā),多了解一些總是沒有壞處的。
他山之石,可以攻玉。
對于是技術人來說,多了解一些不同的技術、不同的開發(fā)模式、不同的架構思想,提高技術『廣度』,對于自己的成長是十分必要的。
所以,本文就是從一個 Android 開發(fā)者的角度,從項目工程方便切入,來分析一下『微信小程序』跟『Android App』開發(fā)上的一些異同。
『微信小程序』開發(fā)是一個相對較新的技術,希望通過本文,能讓你對它多一些了解。
因為內容是從Android開發(fā)的角度來談的,所以我假設你已經對 Android 開發(fā)比較熟悉了。并且對微信小程序的開發(fā)也比較感興趣,如果要是再能有些 javascript、css 的基礎的話那就更好了!
Android 開發(fā)我們已經比較熟悉——
作為對比,進行微信小程序開發(fā)所用的語言是這些——
wxml (WeiXin Markup Language) 基本約等于是 xml。微信之所以沒有直接使用 xml ,可能是為了以后擴展方便一些(野心很大)。
同理, wxss (WeiXin Style Sheets) 基本約等于是 css。也是微信擴展了一些功能,比如統(tǒng)一的尺寸單位 rpx 。
對于 Android 來說,對于頁面的描述基本上在 xml 中定義的,比如:
這是一個簡單的典型的示例,這個文件就是描述了兩部分內容:
some.wxss:
很明顯可以看出:wxml 是負責了 頁面結構 的展示;而 wxss 則負責了對 頁面樣式 的定義。
這種把結構和樣式分離的做法,其實是延續(xù)了網頁開發(fā)中的習慣(html + css)。
這樣做的好處起碼有兩個:
——看起來還是挺簡單的結構:
這三個文件用以描述小程序 app 相關的內容,他們的命名是固定這樣的,位置也固定是在根目錄下。
app.js 基本相當于 Android 中的 Application 類,文件中主要是有一個 App() 函數,來進行小程序的初始化操作。
app.json 的作用跟 Android 中的 AndroidMainifest.xml 文件很相似 —— 都是靜態(tài)化的配置文件。
app.wxss 定義全局的樣式 —— 其定義的樣式會作用于每個頁面。比如在 app.wxss 中加入:
就可以給所有的 text 控件添加 5px 的 padding 。
當然,頁面本身的 xxPage.wxss 可以定義局部樣式來覆蓋全局樣式。
根目錄下的 utils 文件夾中有一個 util.js 文件,這個故名思意,是類似于 Java 中的一些工具類的存在。
utils 文件夾其實是一個非必須的結構,而它之所以出現(xiàn)在官方的 HelloWorld 工程中,是作為一個代表,表明了開發(fā)者在這里是可以自定義新的文件夾和結構的。微信小程序作為一個使用 js 來開發(fā)的平臺,是可以使用許多第三方的 js 庫的,對于這些第三方庫,以及其他的圖片資源等,都可以放到自定義的文件夾中。
pages 文件夾下包含兩個子目錄:index 和 logs ,兩個目錄的結構都是基本一樣的,都是包含四個相同主名稱的文件: xx.js、xx.wxml、xx.json、xx.wxss 這幾個文件。
這樣的一個典型結構表明它是一個小程序的頁面,四個文件的作用分別是:
在視圖的動態(tài)顯示上,微信小程序使用了 數據綁定(data-binding) 的方式。
如果你之前使用過 AngularJS 或者 Vue.js 等這些流行的 js 框架,那么你肯定對 數據綁定 并不陌生。它是一種把一個控件的屬性綁定到某個數據對象(view-model)的屬性的方法,這樣在改變數據對象屬性的時候,所對應的控件屬性也就會相應變化 —— 在開發(fā)中,這種方式會使得對 View 層的顯示控制變得十分簡單、自然。
基于此,軟件工程的流行架構方式也在之前的 MVC 、 MVP 之外,又多了一個 —— MVVM(Model-View-ViewModel) 。
數據綁定 這種方式現(xiàn)在是如此的流行,以致于 Android 官方都出了一個 [Data Binding Library] ( ) 來支持數據綁定,但是由于成熟度等原因,目前還并沒有成為主流,Android 中的主流視圖顯示方式,還是通過開發(fā)者手動給每個控件 set 數據。
—— 單從這一點上看,微信小程序的開發(fā)模式是比原生 Andorid 要『先進』一些的~ ????
小程序雖然是和前端 H5 頁面一樣是用 js 來開發(fā),但是由于它最終運行的平臺不再是瀏覽器,而是和 App 的表現(xiàn)幾無二致,所以頁面的生命周期也是和 App 差不多的。
一個小程序頁面的典型生命周期如下:
對比一下 Android 的 Activity 生命周期 :
微信小程序的頁面生命周期稍微簡單一些,但主要的思想跟 Activity 生命周期基本是一致的。
小程序的官方 IDE 是微信自己出品 微信Web開發(fā)者工具 ,它內置了一個小程序的運行環(huán)境,本質上是基于 Chrome 內核的一個瀏覽器框架,算是一個模擬器了。
——它雖然跟 Android 的各種高大上的模擬器相比起來略顯簡陋,但是基本該有的功能也基本都有(斷點、Log、網絡監(jiān)控等),而且由于是基于瀏覽器內核的頁面 DOM 解析,所以運行的速度也是像瀏覽器打開網頁一樣流暢,不會像 Android 模擬器那樣對系統(tǒng)資源要求很高。
另外,在綁定了開發(fā)者賬號之后,也可以用手機進行真機調試來調試小程序,所以也能在上線前用不同的機器來進行充分的兼容性測試。
總體來說,小程序作為一個新的形態(tài),從開發(fā)的角度,它可以算作是一個【Native開發(fā)】和【H5開發(fā)】的結合,它吸收了原生開發(fā)和 H5 開發(fā)的優(yōu)點。對于前端開發(fā)人員和原生開發(fā)人員來說,都可以在微信小程序中找到許多熟悉的東西。再細節(jié)的許多點這里就不在贅述了,大家如果有興趣,可以自己上手去體驗一下。
綜上,自然也就有兩種人特別適合去做小程序的開發(fā)——H5的前端開發(fā)人員,以及之前的 Android/iOS 原生 App 開發(fā)者。
微信小程序的開發(fā)總體來說是很簡單的。
—— 對于前端開發(fā)者來說,了解一下原生 App 的一些相關思想即可,這些工作其實只要讀一遍小程序的開發(fā)者指南基本就差不多了。
—— 而對于原生開發(fā)者來說,只要稍微補一下 js 的相關知識(html/css),也基本就差不多可以上手去做了。如果你之前恰好已經有過一些 js 的使用經驗,那就不用多說了,花半個小時看一下小程序的文檔,直接上!
關于作者 :
本文按時間順序,試著梳理Android和iOS誕生以來的各重要版本以及其特點,看看這兩個系統(tǒng)各自的發(fā)展速度和重點。
劃時代的iOS第一代發(fā)布,可以說最核心的智能手機應用在這個版本已經有了,包括地圖、瀏覽器、itunes、全屏幕觸摸操作,這也可以理解當第一代iphone出現(xiàn)時帶給所有人的震撼。
2.0最重大的改變是開放了AppStore,可以開發(fā)和使用第三方應用了,這幾乎是整個移動互聯(lián)網生態(tài)的基石。
iOS2.0之后2個月,Android橫空出世,全球第一臺Android設備是HTC Dream。Android在1.0時基本也把完整的智能手機體驗帶給了廣大用戶,當然也包括了AndroidMarket。
各功能的優(yōu)化,包括支持了早該有的文本剪切、復制、黏貼等功能
主要添加了對iPad的支持
顯著的變化是支持了多任務,盡管并不同桌面系統(tǒng)中真正的多任務處理,但這是蘋果理解的在移動設備上用戶所需要的多任務。隨著多任務支持,雙擊home鍵的效用由原來的截屏操作,變?yōu)轱@示最近運行的應用。
這是一個相當成熟的系統(tǒng),導致一個很長的時間內國產機一直保持在這個系統(tǒng)版本上。
專為Android平板設計的操作系統(tǒng),但卻是個短命的版本,因為他不兼容phone
重點功能是增加了siri,雖然當時很驚艷,但現(xiàn)在基本是個雞肋功能。
無明顯亮點,槽點是把之前一直使用的GoogleMap換成了蘋果自己的Map
各種功能的優(yōu)化,雖然沒有明顯的亮點,但穩(wěn)定性較高,很長一段時間國內Android系統(tǒng)的主流版本,甚至到4年后的今天,仍然占有了約5%的市場
加強了開放,給與開發(fā)者更多的框架接口,比如支持小插件,通知可自定義更多操作,支持第三方鍵盤,開放指紋識別等。
還是一些新特性,如iPhone 6s/6s plus支持3D-Touch等
-TensorFlow Lite
TensorFlow Lite是谷歌機器學習工具TensorFlow的精簡版,新工具可幫助低功耗設備跟上當今高強度任務處理,利用新的神經網絡API幫助底層芯片加速數據處理。
可以看出,從一開始兩個平臺的高歌猛進,版本頻發(fā)(特別是Android系統(tǒng),當初的版本真的是滿天飛,記得還有個中移動定制的android版本),到現(xiàn)在基本上是一年一個版本。兩個系統(tǒng)都從野蠻成長階段過度到了平穩(wěn)發(fā)展的階段。
同時兩個平臺也顯示出了高度的同質化,從拍照、音樂、App市場、地圖之類的基本功能,到語音助手(siri、now)、支付的高階功能,再到現(xiàn)如今的AI、AR等,兩個系統(tǒng)雖然你追我趕,但基本還是保持了步調的一致。隨著Android系統(tǒng)性能的不斷優(yōu)化,如今的Android高端機至少在系統(tǒng)層面已經不差iOS了。
可以預見,未來2個系統(tǒng)也注定會越來越像,無論是功能還是性能,甚至隨著三星、華為、oppovivo、小米等廠商的發(fā)力,Android系統(tǒng)在某些細節(jié)層面肯定會超過iOS。細節(jié)+性價比,也許是用戶從iOS轉向Android的理由之一,而用戶維持iOS的理由則是已經習慣了iOS的生態(tài),怕做出改變。
無論如何,這兩個系統(tǒng)恐怕還得長期共存,他們互相恐怕是無法打敗對方的,更有可能的是一起被新出現(xiàn)的更高層次的系統(tǒng)打敗,毫無還手之力的那種。
其實,文章的觀點并沒有錯,但事實上iOS同樣有Android目前無法企及優(yōu)勢,例如本文中所列舉的九大方面:(本文只討論iOS與Android系統(tǒng)級,并不涉及手機外觀、工業(yè)設計和其他部分)
一、流暢性碾壓性優(yōu)勢
由于Android系統(tǒng)采用了虛擬機的運行機制,這就需要消耗更多的系統(tǒng)資源了運行App,即便升級到Android 4.X,甚至Android 5.X,系統(tǒng)流暢性還是不如iOS。iOS無論是桌面滑動、App的內部操作,屏幕與指尖都似乎帶有“粘性”一般,這就使得手指觸控到哪里,屏幕就會馬上指向哪里,而Android呢?看似已經媲美了iOS的流暢,但只是媲美,多數還是不及iOS流暢,即便Android的觸控延遲只有0.1秒其實就已經分出勝負了。
這里的流暢并不是指手機應用的打開速度、關機速度。流暢指的是運行速度、觸控速度,因為這才是最直觀的影響用戶體驗部分。
二、iOS系統(tǒng)的軟件App多優(yōu)先升級
并不是軟件升級快就代表好用,但至少軟件升級可能會為我們帶來額外的功能體驗,拿最近的微信舉例,蘋果iOS系統(tǒng)優(yōu)先升級并推出了朋友圈的“小視頻”功能,而Android系統(tǒng)則多等了幾個星期的時間。絕大多數主流的應用軟件都以iOS系統(tǒng)開發(fā)升級為優(yōu)先級,只有少數未通過蘋果審核上架、或特殊應用才會在Android先放出。
說到軟件App方面為何iOS系統(tǒng)升級快,這得益于蘋果有一套獨特的與開發(fā)者分享收入的計劃,有了利益關系,這能夠讓開發(fā)者更加有動力、更積極的開發(fā)和升級應用。而谷歌雖然也為Android開發(fā)了專屬的應用商店,但在國內的環(huán)境下國人使用的并不多,況且升級速度并不快,體驗嘗鮮還要遙遙無期的等待。
三、iOS游戲不要數據包,Android玩大型游戲很麻煩
iOS的游戲直接通過官方App Store或在越獄后通過各種第三方助手安裝即可,這期間除了部分老舊設備可能出現(xiàn)不兼容的游戲外,其它均完美被支持,沒有游戲數據包一說。而Android玩家,如果要下載一個大型的游戲,必須要通過安裝游戲主程序+額外下載幾百MB不等的數據包才行,如果是主流的高通CPU還好,但凡碰到非主流的CPU的話,那游戲數據包可能就遙遙無期了,開發(fā)者心情好的話會為CPU做適配,否則就只有無限等待或移植的命運。
*注:Android系統(tǒng)的大型游戲,需要在安裝游戲之后再下載數據包,數據包會針對手機的處理器以及GPU專門優(yōu)化,如果選擇了沒有經過優(yōu)化的數據包,可能出現(xiàn)無法運行或者貼圖錯誤等情況。
iOS系統(tǒng)則是在下載游戲的時候一同下載數據包,不存在單獨下載的情況。所以相同的一款游戲,Android系統(tǒng)可能只有幾十M的大小,而iOS則達到了1G以上,這就是因為Android沒有數據包而iOS包含了數據包。
再者,iOS目前的分辨率只有5種左右,而Andorid則大大小小的包含了近10種左右,再由于盜版或開發(fā)者利益關系原因,開發(fā)者更傾向于對iOS優(yōu)先適配。同時,游戲的質量(包括畫面精美程度、觸控流暢性等等)整體也要高于Andorid系統(tǒng)?;蛟S有同學說Android打開游戲的速度要快于iOS。但玩游戲是比打開的速度嗎?
四、小偷即使偷走也不會泄露隱私
自從iOS7系統(tǒng)之后,蘋果增加了安全保護機制,即如果進行二次刷機或強行開啟手機的鎖屏密碼,必須要輸入原有的Apple ID的密碼進行解鎖才行。我們不能防止手機被偷,也不指望被偷后能夠找回(雖然可以定位,但是否可以找回完全憑自己本事。),但至少可以保證我們手機內的資料或隱私不被居心不良者竊取。小偷拿走手機后最多當配件廉價的賣掉。
Android系統(tǒng)雖然同樣有密碼保護機制,但相比蘋果而言就要遜色一些,稍微懂點的人只要進入Recovery后,就能刷機或清理數據,手機的密碼形同虛設了。雖然有少部分手機做到了二次加密,但大多數的Android系統(tǒng)在這方面還是比較脆弱。
注:Recovery模式指的是一種可以對安卓機內部的數據或系統(tǒng)進行修改的模式,也叫工程模式(類似于windowspe)。在這個模式下我們可以刷入新的安卓系統(tǒng),或者對已有的系統(tǒng)進行備份或升級,也可以在此恢復出廠設置。
五、更省電、功耗控制好
系統(tǒng)機制的不同導致了Android會占用更多的資源來支撐系統(tǒng)運行,官方宣稱的3000毫安時電池實際使用也不過一天的時間,而iOS系統(tǒng)的iPhone雖然看似電池容量不高,但得益于精心優(yōu)化,它在待機耗電大約只有Android系統(tǒng)的30%左右,使用耗電更是只有25%-75%。
iOS系統(tǒng)采用獨立喚醒技術,以及為處理器量身定制的芯片,在待機時更省電,使用時的耗電詳情呈“線性”趨勢。雖然有部分Android手機續(xù)航強,但多為高容量的電池,并且使用長時間后,由于系統(tǒng)或電池的原因,更是會出現(xiàn)“跳電”的現(xiàn)象。
六、沒有強迫癥根本不用清后臺
“不清理后臺會很費電”、“不清理后臺會很卡”......反正也不知道什么時候起,手機清理后臺就成了必須要做的了,至于原因就為了亮點,不卡、省電。不過這只對Android系統(tǒng)有效,iOS系統(tǒng)完全沒有清理后臺的操作,同樣耗電、流暢性也不會被影響。
懷疑筆者說的不對?自己試試看就知道了。至于有些同學說兩大系統(tǒng)真假后臺的問題,這個就仁者見仁了,沒有人敢說Andorid的后臺機制最好,也沒有人保證iOS的后臺機制更適合。
七、iOS更穩(wěn)定不易死機
許多問題我們雖然不想承認,但卻是客觀存在的事實,下至低端入門、上至旗艦頂配,Android系統(tǒng)在長時間使用后,都會或多或少出現(xiàn)些不穩(wěn)定現(xiàn)象,比如最不能忍的死機現(xiàn)象,可換電池的手機還好,扣個電池就恢復了,但不可拆卸的電池手機就只能等待重啟或長按關機鍵恢復了。
iOS也會死機,但相比較之下出現(xiàn)死機的幾率要少很多。
八、綜合實力最好的影像系統(tǒng)
目前搭載iOS系統(tǒng)的設備最高規(guī)格的攝像頭為800萬像素,但即便是這樣,憑借iOS系統(tǒng)的精心優(yōu)化,它仍是目前智能手機中綜合體驗最好的手機之一(包括對焦速度、成像速度、成片速度、成片率、多場景拍照等綜合而定)。而搭載Android系統(tǒng)目前已經達到了2070萬像素級別,感光原件甚至更好,但拍照的綜合體驗來看,iOS的優(yōu)勢依舊明顯。
最新的iPhone6 Plus搭載了光學防抖特性,并且采用了先進的相位對焦技術,拍照體驗更是有明顯的'提高。iOS在視頻拍攝方面也同樣具有優(yōu)勢,尤其對視頻拍攝時的防抖處理的十分到位,再搭配iMovie等專屬視頻處理軟件,讓它比Andriod更具有優(yōu)勢。
九、雙核戰(zhàn)8核
由于iOS高度整合、優(yōu)化、封閉性,讓它無論是在各方面的表現(xiàn)十分優(yōu)異,其中最值得欣慰的一點目前的iOS系統(tǒng)有著自己的一套生態(tài)體系,即便是使用雙核處理器,配合定制的GPU處理單元,在綜合表現(xiàn)來看同樣不輸Android,要知道現(xiàn)在8核處理器已經不足為奇。
總結:
雖然本文列舉了9項iOS相比Android的優(yōu)勢,但同時也并不否認iOS還存在許多可以學習改進的地方。而對于許多功能性的東西,本文也同樣沒有將越獄的范疇考慮在內,如越獄后iOS能實現(xiàn)比現(xiàn)在更多更好的功能體驗。
其實,爭了幾年了,都說自己的系統(tǒng)好用,但事實上兩大系統(tǒng)各有優(yōu)劣勢,談不上哪個系統(tǒng)最好。iOS系統(tǒng)優(yōu)勢慢慢的被追趕,Android的多樣性逐漸被整合,這一切都是時間的問題而已,好與不好這都是相對的。對于我們普通使用者來說,哪個系統(tǒng)最好不重要,適合自己最重要。但至少從目前來看,iOS系統(tǒng)的系統(tǒng)級體驗,還是需要Android來積極學習的。
iOS與Android系統(tǒng)介紹
其實,文章的觀點并沒有錯,但事實上iOS同樣有Android目前無法企及優(yōu)勢,例如本文中所列舉的九大方面:(本文只討論iOS與Android系統(tǒng)級,并不涉及手機外觀、工業(yè)設計和其他部分)
一、流暢性碾壓性優(yōu)勢
由于Android系統(tǒng)采用了虛擬機的運行機制,這就需要消耗更多的系統(tǒng)資源了運行App,即便升級到Android 4.X,甚至Android 5.X,系統(tǒng)流暢性還是不如iOS。iOS無論是桌面滑動、App的內部操作,屏幕與指尖都似乎帶有“粘性”一般,這就使得手指觸控到哪里,屏幕就會馬上指向哪里,而Android呢?看似已經媲美了iOS的流暢,但只是媲美,多數還是不及iOS流暢,即便Android的觸控延遲只有0.1秒其實就已經分出勝負了。
這里的流暢并不是指手機應用的打開速度、關機速度。流暢指的是運行速度、觸控速度,因為這才是最直觀的影響用戶體驗部分。
二、iOS系統(tǒng)的軟件App多優(yōu)先升級
并不是軟件升級快就代表好用,但至少軟件升級可能會為我們帶來額外的功能體驗,拿最近的微信舉例,蘋果iOS系統(tǒng)優(yōu)先升級并推出了朋友圈的“小視頻”功能,而Android系統(tǒng)則多等了幾個星期的時間。絕大多數主流的應用軟件都以iOS系統(tǒng)開發(fā)升級為優(yōu)先級,只有少數未通過蘋果審核上架、或特殊應用才會在Android先放出。
說到軟件App方面為何iOS系統(tǒng)升級快,這得益于蘋果有一套獨特的與開發(fā)者分享收入的計劃,有了利益關系,這能夠讓開發(fā)者更加有動力、更積極的開發(fā)和升級應用。而谷歌雖然也為Android開發(fā)了專屬的應用商店,但在國內的環(huán)境下國人使用的并不多,況且升級速度并不快,體驗嘗鮮還要遙遙無期的等待。
三、iOS游戲不要數據包,Android玩大型游戲很麻煩
iOS的游戲直接通過官方App Store或在越獄后通過各種第三方助手安裝即可,這期間除了部分老舊設備可能出現(xiàn)不兼容的游戲外,其它均完美被支持,沒有游戲數據包一說。而Android玩家,如果要下載一個大型的游戲,必須要通過安裝游戲主程序+額外下載幾百MB不等的數據包才行,如果是主流的高通CPU還好,但凡碰到非主流的CPU的話,那游戲數據包可能就遙遙無期了,開發(fā)者心情好的話會為CPU做適配,否則就只有無限等待或移植的命運。
*注:Android系統(tǒng)的大型游戲,需要在安裝游戲之后再下載數據包,數據包會針對手機的處理器以及GPU專門優(yōu)化,如果選擇了沒有經過優(yōu)化的數據包,可能出現(xiàn)無法運行或者貼圖錯誤等情況。
iOS系統(tǒng)則是在下載游戲的時候一同下載數據包,不存在單獨下載的情況。所以相同的一款游戲,Android系統(tǒng)可能只有幾十M的大小,而iOS則達到了1G以上,這就是因為Android沒有數據包而iOS包含了數據包。
再者,iOS目前的分辨率只有5種左右,而Andorid則大大小小的包含了近10種左右,再由于盜版或開發(fā)者利益關系原因,開發(fā)者更傾向于對iOS優(yōu)先適配。同時,游戲的質量(包括畫面精美程度、觸控流暢性等等)整體也要高于Andorid系統(tǒng)?;蛟S有同學說Android打開游戲的速度要快于iOS。但玩游戲是比打開的速度嗎?