程序員:Android開(kāi)發(fā)經(jīng)驗(yàn)分享
在移動(dòng)平臺(tái)上,到目前為止,用戶依然沒(méi)有固定的操作習(xí)慣,而軟件的開(kāi)發(fā)人員要做的事情,就是把用戶往一個(gè)簡(jiǎn)單、明快的操作體驗(yàn)上引導(dǎo),使他們更快的學(xué)會(huì)使用軟件,并且讓他們習(xí)慣、擅長(zhǎng)某一種或幾種操作。從某種意義上來(lái)說(shuō),蘋(píng)果的設(shè)計(jì)人員手冊(cè)已經(jīng)很好的解決了問(wèn)題,iPad已經(jīng)做到了中老年人也可以輕松上手,甚至連貓都會(huì)玩。但是至少目前為止,還沒(méi)有見(jiàn)到適用于Android的設(shè)計(jì)手冊(cè),開(kāi)發(fā)人員或是軟件廠商也都各按自己的理解去進(jìn)行軟件的設(shè)計(jì),用戶也被迫在使用不同的軟件時(shí),適應(yīng)不同的風(fēng)格。
本文引用地址:http://butianyuan.cn/article/114158.htm在未來(lái)為期不短的一段時(shí)間內(nèi),Android上應(yīng)用程序的用戶體驗(yàn)將成為一個(gè)主要的研究點(diǎn),特別是游戲類應(yīng)用。由于Android上的某些限制,開(kāi)發(fā)人員較難實(shí)現(xiàn)像PSP游戲那樣的華麗效果,因此只能夠在游戲本身的游戲性上下足工夫。當(dāng)然了,等Android手機(jī)的性能再次大幅提升,電池容量再大幅提升后,可能會(huì)出現(xiàn)可以匹敵PSP游戲的華麗游戲,只是目前不應(yīng)當(dāng)過(guò)分考慮這些。
在我以前的一些文章也曾提到過(guò),為移動(dòng)平臺(tái)做開(kāi)發(fā),應(yīng)該盡可能的考慮程序的執(zhí)行效率而不是架構(gòu),因?yàn)橐苿?dòng)平臺(tái)本身通常不會(huì)有多好的配置,在有限的配置下實(shí)現(xiàn)性能最佳化是非常重要的。從另一種角度上說(shuō),iPhone 能夠用較低的配置來(lái)實(shí)現(xiàn)整機(jī)流暢運(yùn)作,也是得益于較為嚴(yán)格地針對(duì)性優(yōu)化,把硬件平臺(tái)的性能完全發(fā)揮出來(lái),這樣做得到的結(jié)果是,iPhone的整體性能,看起來(lái)反而比一些更高配置的手機(jī)要好一些。
最后,再簡(jiǎn)單地說(shuō)一下Android的開(kāi)發(fā)與其他平臺(tái)的開(kāi)發(fā)有什么異同。我們知道不同的開(kāi)發(fā)方式將對(duì)最終的結(jié)果產(chǎn)生不同的影響。在以往的經(jīng)驗(yàn)中,各廠家的開(kāi)發(fā)工具,都在往可視化方向發(fā)展,比如說(shuō)微軟的 Visual Studio,一代比一代強(qiáng)大,可視化程度越來(lái)越高。而蘋(píng)果的Xcode也是一樣,它建議用戶完全使用可視化的方案來(lái)解決一個(gè)應(yīng)用。這些固然很好,但是帶來(lái)的問(wèn)題也不小。舉個(gè)簡(jiǎn)單的例子,有一個(gè) Windows Mobile 的應(yīng)用,上面有一個(gè) ListBox,而你正試圖為該 ListBox 添加一個(gè)圖標(biāo),并試圖按每一項(xiàng)的內(nèi)容限定來(lái)改變文字顏色。能做到嗎?當(dāng)然能,但是過(guò)程卻不簡(jiǎn)單,你必須經(jīng)歷復(fù)雜的自繪才能實(shí)現(xiàn)這一點(diǎn)。這也是常規(guī)的RAD開(kāi)發(fā)中普遍遇到的問(wèn)題,即開(kāi)發(fā)人員不能方便地控制到應(yīng)用的每一個(gè)細(xì)節(jié)。開(kāi)發(fā)框架對(duì)API的封裝在某種程度上提高了開(kāi)發(fā)的效率,但是另一種程度上,它屏蔽了太多的細(xì)節(jié),而這些細(xì)節(jié)有可能就是開(kāi)發(fā)人員所需要的。
而Android雖然也擁有可視的開(kāi)發(fā)環(huán)境,但是它非常弱,第三方的RAD方案迄今為止也依然顯得虛弱無(wú)力,對(duì)于用慣了微軟等公司出品的高級(jí)RAD環(huán)境的人來(lái)說(shuō),可能會(huì)充滿了無(wú)奈,也可能充滿了鄙視,這種可視化算什么呢?如果僅僅從開(kāi)發(fā)人員的角度來(lái)看,有利也有弊,弊端很顯然是開(kāi)發(fā)效率不夠高,而事實(shí)上,由于Android采用Java語(yǔ)言來(lái)進(jìn)行開(kāi)發(fā),其開(kāi)發(fā)效率本身就不會(huì)太高。而利的部分,可能是會(huì)被很多高級(jí)工程師所喜愛(ài)的,因?yàn)樗菭奚_(kāi)發(fā)效率,來(lái)?yè)Q取最大的可定制性的一個(gè)典范。也許有一些剛開(kāi)始學(xué)習(xí)Android開(kāi)發(fā)的朋友會(huì)覺(jué)得制作界面有種種的不便,但是只要深入地學(xué)習(xí)下去,就會(huì)覺(jué)得Android的界面實(shí)現(xiàn)方式是非常領(lǐng)先的。同樣舉出上面ListBox的例子,在Android下,就可以通過(guò)一組短小精悍的代碼來(lái)自定義ListItem和相關(guān)Adapter以實(shí)現(xiàn)。
我想優(yōu)秀的開(kāi)發(fā)人員是應(yīng)該完全放棄RAD的,在目前的環(huán)境下,RAD幾乎沒(méi)有什么作為,反而會(huì)成為應(yīng)用分層的一個(gè)巨大的絆腳石。在RAD的環(huán)境下,要求一位開(kāi)發(fā)人員對(duì)軟件的每一個(gè)部分都面面俱到,這怎么可能呢?比如說(shuō)軟件界面就是應(yīng)該交由UI專員去設(shè)計(jì),數(shù)據(jù)庫(kù)部分也應(yīng)該交由相關(guān)的負(fù)責(zé)人去做,完全不可能由開(kāi)發(fā)人員從頭到尾一個(gè)人搞定。如果哪個(gè)老板真的雇用了一位超級(jí)開(kāi)發(fā)人員來(lái)包辦一切,那么除非那個(gè)人擁有100年的工作經(jīng)驗(yàn),不然的話項(xiàng)目做死就是活該。我想Android的開(kāi)發(fā)框架已經(jīng)很好地說(shuō)明了這個(gè)問(wèn)題,程序資源(包括圖片、字符串、其他的外部數(shù)據(jù)等)和代碼完全分離,各部分人員各司其職,完成整個(gè)項(xiàng)目,每個(gè)部分的人員都不會(huì)有太大的壓力。并且,由于Android采用XML對(duì)界面進(jìn)行描述,使得對(duì)界面的更換也變得容易,設(shè)計(jì)師可以設(shè)計(jì)出多套界面,不論是用于UI方案評(píng)估或是在實(shí)際應(yīng)用中更換界面風(fēng)格都很方便。這也是其他移動(dòng)平臺(tái)的開(kāi)發(fā)所不具備的。
最后,我想說(shuō)的是,我非常想要一本類似于《Android設(shè)計(jì)手冊(cè)》的參考書(shū),我相信很多的開(kāi)發(fā)人員也非常想要。只是短期內(nèi),我們依然只能自己來(lái)研究,推測(cè)用戶可能的行為,并為此可能性做好打算。Android必定越來(lái)越成熟,而開(kāi)發(fā)者們,你們做好思想準(zhǔn)備了嗎?
c++相關(guān)文章:c++教程
評(píng)論