平常用的是iOS設(shè)備,每次把玩安卓測試機(jī)都會(huì)有些不習(xí)慣。對(duì)于一些小廠來講,由于資源有限,一般安卓和i設(shè)計(jì)稿都通用一個(gè)設(shè)計(jì)稿。雖然現(xiàn)在ios和安卓在設(shè)計(jì)方面越來越趨同,但還是有些差異化的地方,不然在開發(fā)的過程中,搞不清楚兩者的差異化會(huì)鬧出很多笑話。這里只是簡要的寫出iOS和Android交互方面的一些差異,只作一個(gè)引子。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供宿豫網(wǎng)站建設(shè)、宿豫做網(wǎng)站、宿豫網(wǎng)站設(shè)計(jì)、宿豫網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、宿豫企業(yè)網(wǎng)站模板建站服務(wù),10余年宿豫做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
1.標(biāo)題的位置
Andriod的導(dǎo)航欄標(biāo)題一般在左邊,iOS的導(dǎo)航欄標(biāo)題一般居中顯示。這只是一個(gè)小差異,一些大廠應(yīng)該會(huì)做出規(guī)定,導(dǎo)航欄的標(biāo)題統(tǒng)一居中顯示。
2.手勢操作差異
對(duì)于某個(gè)單一的item,安卓是長按進(jìn)行“刪除”及其他操作,而iOS是左滑刪除或者其他操作。這個(gè)交互屬于比較常見的方式了,不遵守這個(gè)設(shè)計(jì)差別的話,用戶用起來也會(huì)比較別扭。
3.搜索框差異
Andriod搜索框后面一般帶有“搜索”兩個(gè)字,左邊有一個(gè)“返回”箭頭;iOS搜索框后面一般沒有搜索按鈕,他的搜索按鈕一般在鍵盤上,搜索框后面有一個(gè)“取消”按鈕。為什么要這么做?其實(shí)也是iOS和Android的系統(tǒng)決定的。安卓的鍵盤上雖然有一個(gè)“箭頭”的標(biāo)識(shí)可用作搜索,但是由于標(biāo)識(shí)不夠明顯,所以搜索框后面要加一個(gè)“搜索”按鈕。同時(shí),由于iOS鍵盤上就有“搜索”按鈕,所以不用這么做。當(dāng)然,現(xiàn)在也有一些大廠搜索框也做成一致,越趨向于iOS。
4.消息通知
Andriod的消息通知的推送只需在本應(yīng)用內(nèi)進(jìn)行開關(guān)操作,不涉及到系統(tǒng)層面的開關(guān);而iOS則需要在系統(tǒng)層面去控制系統(tǒng)的開關(guān)。iOS的消息推送都是需要去iOS的設(shè)置-通知-XX應(yīng)用里面去進(jìn)行設(shè)置。
5.地址選擇器
對(duì)于地址選擇,iOS一般使用系統(tǒng)交互的滾筒控件,但是部分Android APP也用這個(gè)交互,則是不對(duì)的。對(duì)于Android交互而言,一般是用列表選擇代替滾筒的設(shè)計(jì)。
6.小結(jié)
以上的交互差異是比較常見的差異了,當(dāng)然現(xiàn)在做的比較好的是安卓和iOS的交互都日益趨向統(tǒng)一了,至少從現(xiàn)在來講,差異還是存在的。這就需要我們?cè)谠O(shè)計(jì)的過程中分清這些差異,并做到合理而具有變通的設(shè)計(jì)。
1. 廣播交互
提到Activity與Service的交互,可能狠多人首先想到的就是BroadCast——廣播。在Android中,廣播是系統(tǒng)提供的一種很好的交互方式。比如:在電池電量過低,開機(jī)完成等情況下,系統(tǒng)都會(huì)發(fā)出相應(yīng)的系統(tǒng)廣播,我們的應(yīng)用程序只需要注冊(cè)相應(yīng)的廣播接收器,就可以接收到這些系統(tǒng)的廣播。同時(shí),我們也可以定義自己的廣播,這樣在不同的Activity、Service以及應(yīng)用程序之間,就可以通過廣播來實(shí)現(xiàn)交互。我們通過模擬應(yīng)用程序后臺(tái)下載的情況來分析Service與Activity的交互方式。
2. 共享文件交互
這里提到的共享文件指的是Activity和Service使用同一個(gè)文件來達(dá)到傳遞數(shù)據(jù)的目的。我們使用SharedPreferences來實(shí)現(xiàn)共享,當(dāng)然也可以使用其它IO方法實(shí)現(xiàn),通過這種方式實(shí)現(xiàn)交互時(shí)需要注意,對(duì)于文件的讀寫的時(shí)候,同一時(shí)間只能一方讀一方寫,不能兩方同時(shí)寫。
3. Messenger交互(信使交互)
Messenger翻譯過來指的是信使,它引用了一個(gè)Handler對(duì)象,別人能夠向它發(fā)送消息(使用mMessenger.send(Message msg)方法)。該類允許跨進(jìn)程間基于Message通信,在服務(wù)端使用Handler創(chuàng)建一個(gè) Messenger,客戶端只要獲得這個(gè)服務(wù)端的Messenger對(duì)象就可以與服務(wù)端通信了。也就是說我們可以把Messenger當(dāng)做Client端與Server端的傳話筒,這樣就可以溝通交流了。
4. 自定義接口交互
何謂自定義接口呢,其實(shí)就是我們自己通過接口的實(shí)現(xiàn)來達(dá)到Activity與Service交互的目的,我們通過在Activity和Service之間架設(shè)一座橋梁,從而達(dá)到數(shù)據(jù)交互的目的,而這種實(shí)現(xiàn)方式和AIDL非常類似(后文會(huì)說到)。
5. AIDL交互
什么是AIDL?
AIDL是Android Interface Definition Language的首字母縮寫, 也就是Android接口定義語言。提及AIDL就不得不說下Android的服務(wù),Android 支持兩種服務(wù)類型的服務(wù)即本地服務(wù)和遠(yuǎn)程服務(wù)。
iOS和Android兩個(gè)不同的平臺(tái),肯定是有很多區(qū)別的,下面就從交互的角度,談?wù)剠^(qū)別。
以前就讀過IOS和Android的規(guī)范,但是覺得沒啥大用處,因?yàn)楝F(xiàn)在APP為了保持一致性,通常在IOS和Android上的設(shè)計(jì)是一樣的,而且一些小公司只設(shè)計(jì)IOS的交互原型,因?yàn)橹灰狪OS上能用,安卓上肯定沒問題,前段時(shí)間,和一個(gè)人聊,問我它倆的區(qū)別,當(dāng)時(shí)一臉懵逼,不知從何說起。畢竟是兩個(gè)不同的平臺(tái),肯定是有很多區(qū)別的,下面就從交互的角度,談?wù)剠^(qū)別。
一、全局導(dǎo)航
IOS:通常放在底部,方便用戶點(diǎn)擊
Android:通常放在上面,下面有物理按鍵,防止誤操作。
解析:因?yàn)锳ndroid比IOS多了物理按鍵,為了防止誤操作,所以只能將全局導(dǎo)航放在上面,但是隨著屏幕越來越大,上面是手指無法觸及的區(qū)域,所以切換起來相對(duì)成本較高。
二、二級(jí)導(dǎo)航
IOS:通常放返回、上一級(jí)標(biāo)題、標(biāo)題(居中),操作通常只有一個(gè)
Android:通常返回控件、logo、下拉菜單、重要操作、更多操作
解析:IOS顯示了上一級(jí)的名稱,讓用戶點(diǎn)擊返回后,心里有預(yù)期,Android放了APP的logo,增加了品牌性,但是就使用來講,用戶不知道點(diǎn)擊會(huì)回到哪,下拉菜單和更多操作都需要點(diǎn)擊才能顯示,增加了操作步驟。
三、工具欄
IOS:通常放在最下面,方便操作
Android:放在導(dǎo)航欄里,將重要操作放在外面,其他放在更多里。
解析:IOS將操作都放在底部,區(qū)域更大,操作更方便。Android將操作放在了頂部,顯得很擁擠,并且還收起了一部分,需要用戶查找,但是卻節(jié)省了空間,讓內(nèi)容顯示區(qū)更大。
四、提示框
IOS:出現(xiàn)在屏幕中間,可以帶圖標(biāo),可以不帶,可以是靜態(tài)的,也可以是動(dòng)態(tài)的。
Android:不可以帶圖標(biāo),不能是動(dòng)態(tài)的,最多只可以帶一個(gè)操作按鈕,最多只能出現(xiàn)一個(gè)提示,不能和低端的懸浮按鈕重合。
解析:IOS的設(shè)計(jì)理念是盡量不打擾用戶,只要用戶能看見變化,輕易不會(huì)出現(xiàn)提示,只有一些用戶無法感知時(shí),才會(huì)出現(xiàn)提示框,所以可以是動(dòng)態(tài)的,像調(diào)節(jié)音量。Android的提示要比IOS重一些,因?yàn)樗梢詭б粋€(gè)按鈕。
五、警示框
IOS:標(biāo)題和按鈕是必須的,可以有內(nèi)容和輸入
Android:主要有四種:用途、內(nèi)容、事件、表現(xiàn)。
1、用途包含了標(biāo)題,內(nèi)容和事件。
六、手勢定義
IOS的手勢規(guī)定有8種,如下:
解析:IOS只有8種手勢,Android有14種,但是很多都不常用,個(gè)人感覺IOS的8種已經(jīng)完全夠用了,定義那么多種,用戶的學(xué)習(xí)成本就會(huì)提高,而且Android的有些手勢并沒有定義可以做什么,所以給出這么多手勢也沒有用。
結(jié)語
本文對(duì)IOS和Android的規(guī)范進(jìn)行了對(duì)比,Android的規(guī)范那是相當(dāng)詳細(xì),但是IOS的只給出了設(shè)計(jì)原則,所以,一些是我自己總結(jié)的,可能對(duì)比的還不夠全面,歡迎大家一起討論。
android客戶端和服務(wù)器端是基于IntentService的,具體如下:
后臺(tái)使用簡單的servlet,支持GET或POST。這個(gè)servlet最終返回給前臺(tái)一個(gè)字符串flag,值是true或false,表示登錄是否成功。
然后在安卓的ADT上創(chuàng)建一個(gè)安卓項(xiàng)目,建立兩個(gè)Activity,分別作為登錄界面和登錄成功界面。
HTTP的訪問公共類,用于處理GET和POST請(qǐng)求。
IntentService服務(wù),用于在后臺(tái)以隊(duì)列方式處理耗時(shí)操作。
在AndroidManifest.xml中注冊(cè)IntentService。注意uses-permission節(jié)點(diǎn),為程序開啟訪問網(wǎng)絡(luò)的權(quán)限。
登陸界面處理,注意按鈕監(jiān)聽事件中,使用Intent將要傳遞的值傳給service。接收廣播類中,同樣使用Intent將要傳遞的值傳給下一個(gè)Activity。在onCreate()中,動(dòng)態(tài)注冊(cè)接收廣播類的實(shí)例receiver。在接收廣播類中,不要使用完畢后忘記注銷接收器,否則會(huì)報(bào)一個(gè)Are you missing a call to unregisterReceiver()? 的異常。
IOS與安卓的區(qū)別:
1、兩者運(yùn)行機(jī)制不同:IOS采用的是沙盒運(yùn)行機(jī)制,安卓采用的是虛擬機(jī)運(yùn)行機(jī)制。
2、兩者后臺(tái)制度不同:IOS中任何第三方程序都不能在后臺(tái)運(yùn)行;安卓中任何程序都能在后臺(tái)運(yùn)行,直到?jīng)]有內(nèi)存才會(huì)關(guān)閉。
3、IOS中用于UI指令權(quán)限最高,安卓中 數(shù)據(jù)處理 指令權(quán)限最高
iOS只有一個(gè)物理鍵,android有三個(gè)物理鍵
2 iOS和android的底層交互設(shè)計(jì)不同
1、返回的入口不一致,android基本上是硬件返回,iphone則是屏幕軟鍵返回。但這點(diǎn)很可能隨著Android4.0的出現(xiàn)而改變;
2、長按為android的一個(gè)基本的標(biāo)配操作,但iOS應(yīng)盡量避免;這點(diǎn)造成了很多操作上的不一樣,例如刪除操作,iOS為滑動(dòng),android為長按
3、Android有menu鍵,點(diǎn)擊后調(diào)出menu菜單,iOS沒有;
4、tab的處理上也不一致,因?yàn)閕Phone沒有menu菜單,更多的操作很可能放在最后一個(gè)tab里,叫“more”;
5、應(yīng)用的通知處理也不一致,iOS為圖標(biāo)右上角的小紅圈,Android為statuesbar中的滾動(dòng)顯示;
6、iPhone有子tab,android好像還沒有看到有,除非是第三方應(yīng)用自己添加的控件。
2.操作欄
a )安卓操作或tab均放上方,以免與虛擬鍵盤沖突,而非ios的下方,但許多安卓應(yīng)用也按ios的來設(shè)計(jì),因此這個(gè)點(diǎn)的設(shè)計(jì)更改可以酌情考量; iPhone 5c, 任何時(shí)候從屏幕下方可以拉出“控制中心”,Android 是從上方拉出了
只說一點(diǎn),滑動(dòng)屏幕的感受,iOS是最順暢最自然的。在商場里體驗(yàn)過很多android,滑動(dòng)的感受總有那么點(diǎn)怪怪的,或者說有點(diǎn)生硬,低配置的還有卡頓等現(xiàn)象。
OS 用導(dǎo)航欄左上角的返回鈕,android 用戶習(xí)慣按全局 back 鍵。
Android 見啥都想長按;iOS用戶則非常不習(xí)慣,只會(huì)點(diǎn)來點(diǎn)去。
iOS上面捏合手勢是標(biāo)配;Android 上不是跑太快就卡的狠要么沒反應(yīng),總之各種難過少人用。
Android 下邊緣有軟鍵,交互元素要離遠(yuǎn)點(diǎn)
2.iOS 雙擊home鍵的界面完全更改,改成卡片式預(yù)覽。如果覺得撥動(dòng)app縮略圖行進(jìn)過慢可以撥動(dòng)下方的app圖標(biāo),會(huì)稍微快一點(diǎn)。向上推app縮略圖來關(guān)閉app。
Android,在主界面,按左鍵 ,可以預(yù)覽所以打開的應(yīng)用,向上推 可關(guān)閉app
在短信中,向左稍稍拉動(dòng)可以顯示每條短信的具體收發(fā)時(shí)間。