開(kāi)發(fā)者評(píng)判Android 3.0 SDK的優(yōu)點(diǎn)與不足
原創(chuàng)【51CTO譯文】數(shù)周前,開(kāi)發(fā)人員收到了Android平臺(tái)的下一個(gè)版本蜂巢(Honeycomb,Android 3.0)的預(yù)覽版,大約1個(gè)月后,Android 3.0 SDK發(fā)布了最終版,緊接著就出現(xiàn)了***個(gè)Android 3.0設(shè)備:摩托羅拉Xoom平板電腦。我們已經(jīng)花了一段時(shí)間了解新的SDK、工具和設(shè)備,下面是這個(gè)平臺(tái)更新和變化的***印象,我們會(huì)涉及到用戶和開(kāi)發(fā)人員的內(nèi)容,但始終從開(kāi)發(fā)人員的角度來(lái)評(píng)論。
Android 3.0讓我們興奮的特性和API
Android 3.0提供了各種新的特性和API,我們特別興奮的是,它增加了受支持的應(yīng)用程序類(lèi)型。
Android Fragment
Fragment API使開(kāi)發(fā)人員更容易動(dòng)態(tài)創(chuàng)建用戶界面,更有效地利用屏幕,雖然最初主要是想將其作為平板電腦API,F(xiàn)ragment API可用于所有用戶界面,簡(jiǎn)化設(shè)計(jì),在不同方向和屏幕大小之間共享更多的代碼和布局,使其成為面向不同設(shè)備類(lèi)型必需的API。
Android Loader
開(kāi)發(fā)人員經(jīng)常處理的一個(gè)問(wèn)題是在一個(gè)Activity內(nèi)下載并顯示數(shù)據(jù),然后當(dāng)配置變化時(shí)管理這些數(shù)據(jù)的采集過(guò)程,蜂巢引入了Loader的概念來(lái)解決這個(gè)問(wèn)題,通過(guò)異步方式處理數(shù)據(jù)的提取,以及自動(dòng)重新連接到數(shù)據(jù),避免了重復(fù)查詢,Loader API改善了數(shù)據(jù)在屏幕上顯示的性能。
Android活動(dòng)欄
谷歌在去年的Google I/O 2010大會(huì)上引入了活動(dòng)欄(Action Bar)的概念,多個(gè)***的Android應(yīng)用程序包含了活動(dòng)欄的概念,提供了這種新的用戶界面的示范,現(xiàn)在,活動(dòng)欄的概念已經(jīng)內(nèi)置到平臺(tái)中,并添加了多個(gè)新特性,包括下拉菜單,即時(shí)訪問(wèn)選項(xiàng)菜單項(xiàng),標(biāo)簽管理等,旨在為應(yīng)用程序營(yíng)造更多的一致性和更簡(jiǎn)單的導(dǎo)航功能。(拓展閱讀:在Google I/O 2011大會(huì)上谷歌將重點(diǎn)講解Android 3.0)
RenderScript
RenderScript是一個(gè)承諾提供用C語(yǔ)言編碼,可在CPU或GPU上執(zhí)行的系統(tǒng),兼容多種CPU和GPU類(lèi)型,它使我想起OpenCL和CUDA,在高性能計(jì)算環(huán)境中,GPU的加速效果往往比CPU更明顯,雖然GPU常用于圖像和游戲編程,但它的計(jì)算能力也可在其它領(lǐng)域大放異彩。
Android 3.0工具更新
伴隨Android 3.0的發(fā)布,許多工具也進(jìn)行了更新,圖形布局設(shè)計(jì)器(Graphical Layout)再次做了大幅改進(jìn),現(xiàn)在它能更精確地顯示在多種Android設(shè)備,多種屏幕和多個(gè)SDK版本上的布局預(yù)覽效果,不用重新編輯XML就可實(shí)現(xiàn)精確的Widget拖放,當(dāng)然,它仍然不***,我們發(fā)現(xiàn)仍然需要調(diào)整XML以更好地控制用戶界面。
模擬器引入了快照的功能,快照允許模擬器保存某個(gè)時(shí)刻的狀態(tài),以便隨后重新載入,節(jié)省啟動(dòng)時(shí)間。
保持向后兼容的靜態(tài)庫(kù)
也許你現(xiàn)在在思考一個(gè)問(wèn)題:這些更新的確很有誘惑力,但現(xiàn)有設(shè)備能運(yùn)行蜂巢嗎?是的,不用擔(dān)心這個(gè)問(wèn)題!Android團(tuán)隊(duì)已經(jīng)發(fā)布了一個(gè)靜態(tài)庫(kù),包含了***的蜂巢特性,從Android 1.6到Android 2.3.3都可以使用它們,這個(gè)庫(kù)中最主要的兩個(gè)特性包含在Fragment API和Loader API中,就我個(gè)人而言,我希望Action Bar從一開(kāi)始就包含進(jìn)去。
蜂巢的一些遺憾
盡管蜂巢已經(jīng)很酷了,但它也不是***無(wú)瑕的,這個(gè)版本中有些改變不是我們希望看到的,我一直在想谷歌為什么要這么做。
Android 3.0 SDK模擬器性能
Android模擬器性能一直以來(lái)都備受詬病,其中最讓人不爽的就是模擬器的分辨率又提高了,在Android 3.0 SDK中內(nèi)置的模擬器分辨率上升到了1280x800,導(dǎo)致的結(jié)果是,即使我們開(kāi)發(fā)用計(jì)算機(jī)速度很快,在模擬器中運(yùn)行應(yīng)用程序時(shí)也只能勉強(qiáng)看到程序的樣子,但這也需要一定的耐性的,更別說(shuō)交互式體驗(yàn)了。我們是開(kāi)發(fā)人員,我們沒(méi)有耐性這樣等一個(gè)工具慢慢執(zhí)行,迄今為止,我們大多數(shù)時(shí)候都是直接在Android設(shè)備上調(diào)試應(yīng)用程序的。Android團(tuán)隊(duì)已經(jīng)意識(shí)到這個(gè)問(wèn)題,并表示正努力解決這個(gè)問(wèn)題。我們希望他們盡快解決模擬器的性能問(wèn)題。
被拋棄的專(zhuān)用按鈕
多年以來(lái),開(kāi)發(fā)人員和用戶都習(xí)慣了Android設(shè)備上的4個(gè)主要專(zhuān)用按鈕:后退,上下文菜單,搜索和主頁(yè),現(xiàn)在這些專(zhuān)用按鈕消失了,后退和主頁(yè)被屏幕上的虛擬按鈕取代,上下文菜單被活動(dòng)欄菜單取代,但在應(yīng)用程序底部顯示了上下文菜單,搜索按鈕也不見(jiàn)了,搜索現(xiàn)在被安排到活動(dòng)欄中去了,從用戶界面設(shè)計(jì)角度來(lái)講,給開(kāi)發(fā)人員和用戶帶來(lái)的變化太大了。
但從長(zhǎng)遠(yuǎn)來(lái)看,這些變化仍然是積極的,按鈕現(xiàn)在位于同一個(gè)位置,不用再考慮設(shè)備和屏幕分辨率的差異,這些變化迫使開(kāi)發(fā)人員和用戶重新培養(yǎng)自己的習(xí)慣,開(kāi)發(fā)人員必須同時(shí)兼顧所有舊設(shè)備(有這些專(zhuān)用按鈕)和新設(shè)備,需要很長(zhǎng)一段時(shí)間過(guò)渡。
Android 3.0失蹤的特性和應(yīng)用程序
盡管Android開(kāi)發(fā)團(tuán)隊(duì)在博客上有承諾,但我們從來(lái)不期望***的向前兼容,不過(guò)這次還是讓我們有點(diǎn)失望,一些特性不見(jiàn)了,例如,Android Market發(fā)生了變化,不再提供應(yīng)用程序的評(píng)論,開(kāi)發(fā)人員不能獲得用戶的反饋,這真的是不可理喻。
部分平臺(tái)級(jí)用戶特性也發(fā)生了變化,如用戶不能創(chuàng)建文件夾來(lái)組織應(yīng)用程序,不管是從用戶還是從開(kāi)發(fā)人員的角度來(lái)看,這都是不可接受的。
Android成長(zhǎng)的煩惱
即使谷歌自己的應(yīng)用程序也受到了蜂巢升級(jí)的影響,例如,Google Voice不能工作,升級(jí)到蜂巢的設(shè)備,在Android Market中根本看不到Google Voice,有些極客嘗試獨(dú)立安裝,發(fā)現(xiàn)程序一運(yùn)行就會(huì)崩潰,如果谷歌自己的程序不做修改都不能工作,那說(shuō)自己可以100%向前兼容不是掌自己的嘴嗎?普通開(kāi)發(fā)人員還有底氣說(shuō)自己的程序一定可以向前兼容嗎?
平臺(tái)的不穩(wěn)定對(duì)用戶或開(kāi)發(fā)人員來(lái)說(shuō)不是一件好事,而媒體是最喜歡報(bào)道負(fù)面消息的,我們不禁要問(wèn):“蜂巢(和Xoom)急著進(jìn)入市場(chǎng)是為了搶得競(jìng)爭(zhēng)先機(jī)嗎?(你應(yīng)該懂我在說(shuō)什么)”
小結(jié)
總的說(shuō)來(lái),蜂巢帶來(lái)了許多令人興奮的新特性,在許多方面改善了Android平臺(tái),這些改進(jìn)也帶來(lái)了一些變化,開(kāi)發(fā)人員和用戶的習(xí)慣需要一段時(shí)間調(diào)整和適應(yīng),不是每個(gè)人都喜歡或欣賞這些變化,但從長(zhǎng)遠(yuǎn)來(lái)看,這些變化有助于Android未來(lái)的成功,有助于繼續(xù)蠶食市場(chǎng)份額,迫使其它競(jìng)爭(zhēng)平臺(tái)提高注意力,只有競(jìng)爭(zhēng)才能推動(dòng)技術(shù)進(jìn)步,最終受益的還是廣大的用戶。
原文出處
原文名:Android 3.0 Honeycomb SDK: The Good, the Bad and the Missing
作者:Shane Conder
【51CTO譯稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載,合作媒體轉(zhuǎn)載請(qǐng)注明原文出處、作者及51CTO譯者!】
【編輯推薦】