androidios對比度
A. Android與iOS 概念對比
Kotlin的 Map 相當於 Swift 的Dictionary
Kotlin的 lambda表達式相當於 Swift的Block
Android 的Adapter相當於iOS的 DataSource
setOnClickListener相當於設置targetAction的delegate
(不準確) Activity相當於UIWindow,Fragment相當於ViewController
wrap_content 相當於ScalToFit
layoutXML 相當於 Xib->
res/values/strings.xml 相當於iOS的NSLocalStrings
Tabbar ViewController / Bottom Navigation
TextView 相當於 UILable
Button 相當於 UIButton
EditText 相當於 UITextField
ProgressBar 相當於 UIProgress (菊花圈)+ UIProgress (進度條)
AlertDialog 相當於UIAlertView
text/Plain text 相當於UITextField
hint 相當於 placeholder
maxLines 相當於numberOfLines
design 相當於 Attributs inspector,負責標題等屬性
blueprint 相當於 Size inspector,負責布局約束
Chain:相對布局 , 相當於 Item Relation Constraint
B. Android與iOS的區別
1、優先順序別不同:iOS最先響應屏幕
當我們使用iOS或者是Android手機時,第一步就是滑屏解鎖找到相應程序點擊進入。而這個時候往往是所有操控開始的第一步驟,iOS系統產品就表現出來了流暢的一面,但Android產品卻給人一種卡頓的現象,更別說後續深入玩游戲或者進行其它操控了。這是為什麼?
其實這與兩個系統的優先順序有關,iOS對屏幕反應的優先順序是最高的,它的響應順序依次為Touch--Media--Service--Core架構,換句話說當用戶只要觸摸接觸了屏幕之後,系統就會最優先去處理屏幕顯示也就是Touch這個層級,然後才是媒體(Media),服務(Service)以及Core架構。而Android系統的優先順序響應層級則是Application--Framework--Library--Kernal架構,和顯示相關的圖形圖像處理這一部分屬於Library,你可以看到到第三位才是它,當你觸摸屏幕之後Android系統首先會激活應用,框架然後才是屏幕最後是核心架構。
可以看到優先順序的不同導致了iOS產品以及Android手機在操控過程中的表現差異,當你滑動屏幕進行操控的時候,iOS系統會優先處理Touch層級,而Android系統則是第三個才響應Library層級,這是造成它們流暢度不同的因素之一。不過優先順序對系統流暢性有有影響不假,但並不是最絕對的,造成兩系統之間流暢性不一的現象還有其它因素。
2、硬體工作配置不同:iOS基於GPU加速
目前智能手機硬體裝備競賽當中,其實處理器等配置已經達到了一個瓶頸期,各大旗艦產品在硬體比拼當中基本上沒有太大的區別,而這時候GPU就成為了一個凸顯差異的重要因素。一些大型軟體像是3D游戲對GPU性能要求都會比較高,蘋果iPhone產品採用的Power VR SGX系列GPU在當下來說非常的主流,跑分測試數據證明了它並不會比一些旗艦級別的Android產品差勁。
而iOS系統對圖形的各種特效處理基本上正好都是基於GPU硬體進行加速的,它可以不用完全藉助CPU或者程序本身,而是通過GPU進行渲染以達到更流暢的操控表現。但是Android系統產品則並非如此,因為Android需要適應不同的手機硬體,需要滿足各種差異配置,所以很多圖形特效大多都要靠程序本身進行加速和渲染,並嚴重依賴CPU運算的操作自然會加大處理器的負荷,從而出現卡頓的問題。雖然Android 4.0以及4.1等更高版本中進行了改進將硬體加速設為默認開啟,但依舊無法做到所有特效全部都靠GPU進行加速。在很多Android手機裡面都自帶有;是否開啟GPU渲染;這個功能選項,不過開啟之後的改善也是微乎其微。
屏幕最先響應的優先順序關系,再加上iSO本身GPU加速程序的特性,使得大家在操控過程中感覺iOS手機擁有著不錯的流暢性。因為它本身的整個流程都是在為最大化的流暢做服務,不管是第一印象的滑動接觸屏幕,還是你進一步使用程序之後的更深層操作都是如此。而GPU加速這點特性,應該是它優於Android系統流暢性的又一個因素。
3、開發機制不同:安卓機制效率低
Android的編程語言是JAVA,而iOS的則為Objective-C,不過要是說Android系統之所以有些卡頓是因為JAVA開發語言的關系,或者是拿它和Objective-C對比肯定會有人提出質疑。Objective-C的優勢是效率高但比較;唯一;,而JAVA的優勢則是跨平台不過運行效率相對偏低,其實這兩個編程語言所帶來的機制不同,就已經造成了各自系統之間的流暢性差異化。
iOS的Objective-C,編譯器gcc,而這個gcc編譯出來的代碼又被蘋果專為iOS架構優化到了極致,運行過程中也不需要虛擬機在中間插手,執行效率自然很高--引自網路。這一段話應該是iOS系統本身運行程序的執行過程,而Android是通過JAVA虛擬機來執行,並且系統需要佔用大量內存來換取執行速度,再加上不定期的內存自動回收機制,從而直接導致了卡頓現象的出現。
Android的JAVA編程本身運行效率比Objective-C低一些,而且再加上內存自動回收的機制,所以造成了一些卡頓不流暢的現象出現。但根據技術人員講解,現代的JAVA虛擬機效率已經不再是最大的瓶頸,Android 4.0系統版本之後的卡頓現象明顯得到了改善,所以這也是有用戶並沒有發現自己新買的Android手機出現太多卡頓現象的.原因。看來編程語言和機制已經被Android進行了改善,這同樣也不是造成它與iOS流暢性偏差的唯一因素,不過影響卻是實實在在存在著。
4、系統設計不同:安卓APP無法統一
有了優先順序的關系,有了GPU加加速的影響,還有兩個系統各自編程以及機制的問題,似乎已經可以說明為什麼iOS相比Android更為流暢的原因。但最終還有一個問題是就是應用程序,很顯然用戶覺得卡頓都是在運行軟體的過程中產生,畢竟沒有安裝任何應用的初始出廠手機基本上都不存在不流暢或者延遲等現象,而且一款智能手機不安裝任何應用程序那也不符合用戶的購買初衷和使用行為。所以歸根結底,Android相比iOS的應用程序,到底出了什麼問題?
因為iOS產品的封閉性,所以所有的APP運行對象都比較單一,因為每個應用程序都是被運行在iPhone,iPad等iOS產品當中,它們有著很高的硬體利用效率。因為iOS系統的配件供應商只有那麼幾家,CPU也是一年換一次,這點不像Android終端年年變月月變,開發者很難遇見未來終端解析度會包含多少種,GPU驅動會包含哪些等等,所以相對來說Android應用開發成本較高且收益較慢。而iOS應用開發則因為軟硬體垂直整合而受益,這樣一來蘋果自然就保證了應用本身其與硬體產品之間的完美結合程度。
其實Android和iOS兩大系統APP開發情況的不同,也正是它們開發和不開放的特性所造成的。如果要是拿旗艦Android手機加上一個專為這款旗艦產品設計的游戲,來和蘋果iPhone 5運行對比的話,你真的不會遇到Android旗艦機出現卡頓延遲的問題,為什麼因為這款游戲針對這款手機設計,在軟硬等方面都達到了最大化的兼容和優化,自然就不會出現停滯的現象。
而Android系統程序要被安裝在各種符合要求的手機上面,開發者也不可能針對所有的機器型號進行開發,只能在比較主流的機器上進行測試並保證運行效果,所以他們為了兼顧整個產品線只能不得不降低游戲體驗以達到高中低產品可以共用的效果。最後那些占據了Android終端份額的大量大眾用戶們由於自己的手機不是旗艦產品而得不到流暢的使用體驗,自然而然就會產生Android產品不如iOS流暢的抱怨。
C. 淺談iOS與Android設計規范:6類交互設計規范對比
iOS和Android兩個不同的平台,肯定是有很多區別的,下面就從交互的角度,談談區別。
以前就讀過IOS和Android的規范,但是覺得沒啥大用處,因為現在APP為了保持一致性,通常在IOS和Android上的設計是一樣的,而且一些小公司只設計IOS的交互原型,因為只要IOS上能用,安卓上肯定沒問題,前段時間,和一個人聊,問我它倆的區別,當時一臉懵逼,不知從何說起。畢竟是兩個不同的平台,肯定是有很多區別的,下面就從交互的角度,談談區別。
一、全局導航
IOS:通常放在底部,方便用戶點擊
Android:通常放在上面,下面有物理按鍵,防止誤操作。
解析:因為Android比IOS多了物理按鍵,為了防止誤操作,所以只能將全局導航放在上面,但是隨著屏幕越來越大,上面是手指無法觸及的區域,所以切換起來相對成本較高。
二、二級導航
IOS:通常放返回、上一級標題、標題(居中),操作通常只有一個
Android:通常返回控制項、logo、下拉菜單、重要操作、更多操作
解析:IOS顯示了上一級的名稱,讓用戶點擊返回後,心裡有預期,Android放了APP的logo,增加了品牌性,但是就使用來講,用戶不知道點擊會回到哪,下拉菜單和更多操作都需要點擊才能顯示,增加了操作步驟。
三、工具欄
IOS:通常放在最下面,方便操作
Android:放在導航欄里,將重要操作放在外面,其他放在更多里。
解析:IOS將操作都放在底部,區域更大,操作更方便。Android將操作放在了頂部,顯得很擁擠,並且還收起了一部分,需要用戶查找,但是卻節省了空間,讓內容顯示區更大。
四、提示框
IOS:出現在屏幕中間,可以帶圖標,可以不帶,可以是靜態的,也可以是動態的。
Android:不可以帶圖標,不能是動態的,最多隻可以帶一個操作按鈕,最多隻能出現一個提示,不能和低端的懸浮按鈕重合。
解析:IOS的設計理念是盡量不打擾用戶,只要用戶能看見變化,輕易不會出現提示,只有一些用戶無法感知時,才會出現提示框,所以可以是動態的,像調節音量。Android的提示要比IOS重一些,因為它可以帶一個按鈕。
五、警示框
IOS:標題和按鈕是必須的,可以有內容和輸入
Android:主要有四種:用途、內容、事件、表現。
1、用途包含了標題,內容和事件。
六、手勢定義
IOS的手勢規定有8種,如下:
解析:IOS只有8種手勢,Android有14種,但是很多都不常用,個人感覺IOS的8種已經完全夠用了,定義那麼多種,用戶的學習成本就會提高,而且Android的有些手勢並沒有定義可以做什麼,所以給出這么多手勢也沒有用。
結語
本文對IOS和Android的規范進行了對比,Android的規范那是相當詳細,但是IOS的只給出了設計原則,所以,一些是我自己總結的,可能對比的還不夠全面,歡迎大家一起討論。
D. Android與iOS:應用程序用戶界面設計的差異和比較
移動領域的兩大風向標--Android和iOS,也是移動應用設計時最大的兩個競爭對手。Android與iOS在市場份額、受歡迎程度、使用人口統計方面數據不相上下,在這里,我們對比了Android和iOS之間的簡單設計差異,這將幫助我們弄清一個與另一個有何不同。
由於碎片化的原因,安卓系統的應用設計會有細微的差異。
我們先來了解一下Android與iOS UI應用設計在扁平化設計和材質設計方面的對比。
人機界面指南主要基於三個原則。清晰、尊重和深度。簡單來說,該方法支持極簡主義,使用簡潔的元素,注重排版和扁平化色彩。
簡而言之,Android Material Design被認為是Flat設計的升級版,帶有擬態性(一種流行的設計概念,即讓所代表的物品與現實世界中的對應物相似)。
用Google設計副總裁 MatíasDuarte 的話來說,它是–
有了這些基礎知識,讓我們從7個方面研究兩個平台之間的差異。
目錄
1. 導航
2. 按鈕
3. 圖標和屏幕解析度
4. 字體
5. 控制項
6. 卡片
7. 警報
對於iOS應用程序,總是在「後退」按鈕旁邊提示上一個選項卡的名稱。在中間,顯示當前選項卡的名稱,而在右上角則顯示「編輯」或「完成」(控制按鈕)。
說到Android的設計規則,應用程序通常在抽屜菜單或後退按鈕(可選)之後的左上角顯示標題。移至右上方,總是有一個操作項,例如搜索圖標(也可以是多個,例如「收藏夾」圖標),其後是溢出菜單。
在iOS中,主導航始終顯示在底部,功能菜單專門用於存儲一次性功能。而在Android中,通常會在功能菜單中看到主要導航,或者以搜索欄,浮動操作按鈕等形式在整個界面中存在。
ios界面指南中,沒有類似抽屜導航菜單的標准控制項。iOS的全局導航被放置在應用屏幕的底部,一般位於最末位的 "更多"標簽下找到二級導航。
Android中,二次導航是一個抽屜,一旦按下功能菜單圖標,就會從左到右打開,同時產生一個深色的遮罩層。
有四種方法可以在iOS應用中實現「後退」操作:
在某些情況下,Android應用程序中給出了類似後退的操作,您可以通過該操作進入前一個標簽。但是,最常見和最簡單的方法是使用導航欄中的後退按鈕(Android 10中現在是可選的)。
iOS和Android中的按鈕風格最主要的設計區別在於,iOS中的按鈕遵循扁平化的設計模式,不帶陰影、支持標題大小寫。Android遵循Material Design,帶陰影且字母大寫。
另一個比較重要的按鈕是Floating action button(FAB行動呼籲按鈕)。例如安卓系統中Gmail的compose按鈕,iOS系統中社交媒體應用的新建文章按鈕。
兩種系統都使用8dp的網格來構建屏幕結構,而最常見的邊框是16dp。
在開發移動應用程序時,以預定義的尺寸設計圖標是非常關鍵的。這里有一個表,描述了所有的測量。
這些表格一開始可能會讓人有點不知所措,但是如果你知道基本尺寸,並且能夠使用倍數進行檢查和導出,會發現這並不復雜。
多年來,蘋果一直是Helvetica Neue字體的粉絲,然而在2015年,蘋果開始使用San Francisco,它更節省空間,非常適合手機、台式機和iOS Watch使用。
Android系統,一直使用Roboto作為標准系統字體。在可預見的未來,谷歌也沒有計劃改變這一深受喜愛的元素。
控制項設計包含搜索、CTA按鈕、選擇控制項和標簽等元素。每一個都滿足了這樣或那樣的目的,讓我們來看看他們的位置。
搜索功能對於兩個平台來說都非常重要,蘋果最近還在iMessage中加入了 "搜索欄 "。
在蘋果中,搜索選項有兩種類型--突出和隱藏。通常情況下,搜索圖標會顯示在上邊的選項卡上,而有時需要從上到下拖動屏幕才能顯示搜索欄。此外,如果要取消搜索查詢,可以按 "取消",如果要清除,可以用 "X"。
在安卓系統中,沒有隱藏的搜索欄,你總能在上層標簽中找到一個。如果要取消搜索,只需點擊"←"圖標即可,如果要清除查詢,則和iOS中的一樣。
浮動的動作按鈕(FAB)在Android中充當主要行動按鈕,可以出現在頂部應用欄或一些組件的邊緣。而iOS應用中的主要行動按鈕總是出現在頁面的右上角。
不過也有一些例外,少數iOS會在底部工具欄顯示CTA,而Android則在上部工具欄顯示。
如果需要顯示一些選項,可以在iOS平台上使用選取器控制項,選取器一般出現在底部。
對於在Android平台上顯示很少的選項,通常使用一個出現在原地的下拉菜單,或者一個出現在中心的模態對話框,使用模態框時應用背景變暗。
據觀察,iOS系統並沒有一個視覺上類似於 "標簽"的控制項。它使用的是一個分段的按鈕。Android使用了"扁平化設計的tab"來實現同樣的效果。
卡片是圖片、文字、視頻的集合,還包括按鈕和評論。
在iOS中,卡片的特點是無陰影、全寬、無圓角。而在安卓系統中,卡片的設計有陰影、溝槽、圓角等功能。
安卓系統的提醒採用的是扁平化的按鈕樣式,具體尺寸可以在材質設計指南中找到。操作按鈕被放置在提醒的右下角。這些 "按鈕 "完全以文字為主(全大寫),讓用戶更容易理解。
至於iOS系統的提醒,則是用分割線隔開。它們基本採用句子或標題的形式,在獨立的區塊中呈現。它們被放置在彈出窗口的中心。
本文涵蓋了iOS和Android所有的初步差異,希望對你有所幫助,而設計一個iOS或Android的移動應用,總是有迭代的准則,所以,一定要保持信息的更新,及時調整自己的產品設計。
Q. 為什麼iOS和Android上的應用看起來不一樣?
品牌和意識形態的不同,已經波及到他們的操作系統的運作方式。兩個平台的UI設計已經成為品牌的符號化。
Q. 如何設計一個原生應用?
在設計原生應用時,必須始終遵守iOS UI應用設計指南和Material設計指南。這樣才能使應用與它所要針對的平台同步。另外,這些平台有不同的要求,所以你的應用必須滿足它們才能在應用商店上發布。
Q. iOS比Android更方便用戶使用嗎?
這個問題的答案是純主觀的。它是基於用戶的個人偏好。有些人可能會覺得iOS更實用,而有些人則在各方面都偏愛Android。
E. android應用和ios的區別是什麼
最大的區別是android應用是開源的,二者的區別如下:
1、兩者運行機制不同:IOS採用的是沙盒運行機制,安卓採用的是虛擬機運行機制。
2、兩者後台制度不同:IOS中任何第三方程序都不能在後台運行;安卓中任何程序都能在後台運行,直到沒有內存才會關閉。
3、IOS中用於UI指令許可權最高,安卓中數據處理指令許可權最高。
iphone沙盒機制解釋:應用程序位於文件系統的嚴格限制部分,程序不能直接訪問其他應用程序。以殺毒軟體中的沙盒技術解釋一下。「沙盒」技術是發現可疑行為後讓程序繼續運行,當發現的確是病毒時才會終止。「沙盒」技術的實踐運用流程是:讓疑似病毒文件的可疑行為在虛擬的「沙盒」里充分表演,「沙盒」會記下它的每一個動作;當疑似病毒充分暴露了其病毒屬性後,「沙盒」就會執行「回滾」機制:將病毒的痕跡和動作抹去,恢復系統到正常狀態。
安卓虛擬機機制解釋:android本身不是為觸摸屏打造的,所以所有的應用都是運行在一個虛擬的環境中,由底層傳輸數據到虛擬機中,再由虛擬機傳遞給用戶UI,任何程序都就可以輕松訪問其他程序文件。
F. Android、iOS歷史版本對比
本文按時間順序,試著梳理Android和iOS誕生以來的各重要版本以及其特點,看看這兩個系統各自的發展速度和重點。
劃時代的iOS第一代發布,可以說最核心的智能手機應用在這個版本已經有了,包括地圖、瀏覽器、itunes、全屏幕觸摸操作,這也可以理解當第一代iphone出現時帶給所有人的震撼。
2.0最重大的改變是開放了AppStore,可以開發和使用第三方應用了,這幾乎是整個移動互聯網生態的基石。
iOS2.0之後2個月,Android橫空出世,全球第一台Android設備是HTC Dream。Android在1.0時基本也把完整的智能手機體驗帶給了廣大用戶,當然也包括了AndroidMarket。
各功能的優化,包括支持了早該有的文本剪切、復制、黏貼等功能
主要添加了對iPad的支持
顯著的變化是支持了多任務,盡管並不同桌面系統中真正的多任務處理,但這是蘋果理解的在移動設備上用戶所需要的多任務。隨著多任務支持,雙擊home鍵的效用由原來的截屏操作,變為顯示最近運行的應用。
這是一個相當成熟的系統,導致一個很長的時間內國產機一直保持在這個系統版本上。
專為Android平板設計的操作系統,但卻是個短命的版本,因為他不兼容phone
重點功能是增加了siri,雖然當時很驚艷,但現在基本是個雞肋功能。
無明顯亮點,槽點是把之前一直使用的GoogleMap換成了蘋果自己的Map
各種功能的優化,雖然沒有明顯的亮點,但穩定性較高,很長一段時間國內Android系統的主流版本,甚至到4年後的今天,仍然佔有了約5%的市場
加強了開放,給與開發者更多的框架介面,比如支持小插件,通知可自定義更多操作,支持第三方鍵盤,開放指紋識別等。
還是一些新特性,如iPhone 6s/6s plus支持3D-Touch等
-TensorFlow Lite
TensorFlow Lite是谷歌機器學習工具TensorFlow的精簡版,新工具可幫助低功耗設備跟上當今高強度任務處理,利用新的神經網路API幫助底層晶元加速數據處理。
可以看出,從一開始兩個平台的高歌猛進,版本頻發(特別是Android系統,當初的版本真的是滿天飛,記得還有個中移動定製的android版本),到現在基本上是一年一個版本。兩個系統都從野蠻成長階段過度到了平穩發展的階段。
同時兩個平台也顯示出了高度的同質化,從拍照、音樂、App市場、地圖之類的基本功能,到語音助手(siri、now)、支付的高階功能,再到現如今的AI、AR等,兩個系統雖然你追我趕,但基本還是保持了步調的一致。隨著Android系統性能的不斷優化,如今的Android高端機至少在系統層面已經不差iOS了。
可以預見,未來2個系統也註定會越來越像,無論是功能還是性能,甚至隨著三星、華為、oppovivo、小米等廠商的發力,Android系統在某些細節層面肯定會超過iOS。細節+性價比,也許是用戶從iOS轉向Android的理由之一,而用戶維持iOS的理由則是已經習慣了iOS的生態,怕做出改變。
無論如何,這兩個系統恐怕還得長期共存,他們互相恐怕是無法打敗對方的,更有可能的是一起被新出現的更高層次的系統打敗,毫無還手之力的那種。