国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

Android開發經驗分享

發布時間:2010-11-4 10:46    發布者:李寬
關鍵詞: Android
從G1上市到現在,市面上已經出現了至少30款Android手機。為什么至今依然有一些用戶在抱怨Android不好用,在相關的開發中,什么才是真正值得關注的,開發的核心是什么?為什么移動應用需要格外關注用戶體驗?本文將對這些問題盡可能的作出解答。

Android一詞的本義指“機器人”,同時也是Google于2007年11月5日宣布的基于Linux的開源手機操作系統的名稱,該平臺由操作系統、中間件、用戶界面和應用程序組成,是首個真正為移動終端打造的開放并且完整的移動平臺。2008年9月22日,美國運營商T-Mobile USA 在紐約正式發布第一款Google手機,即T-Mobile G1,從那個時候起,Android的時代就真正的來臨了。

從Android 1.0至今經歷了多次的版本更新,其中重要的變更是1.5、2.0和2.2。而其他的版本更新相對而言并不是那么重要。另外,由于每次更新都會多少改動包括 Dalvik 在內的底層模塊,同時牽扯到 SDK,導致了一些程序需要跟著 Android 版本進行變動。對于相對較為保守的開發人員而言,快速的版本更新將給他們帶來越來越大的限制。在這種情況下,Android 開源的意義就顯得不是那么大了。

無論如何,由于Android與Google服務的緊密捆綁,這款操作系統擁有了得天獨厚的優勢。通過Google強有力的支持,很多事情在 Android上都會變得很簡單。另外需要特別提出的是,Android是一款基于互聯網的操作系統,在可以連接上互聯網的情況下,一款Android 手機可以發揮出比其他手機更多的能力。而在沒有網絡的情況下,Android手機并不比其他的手機出色,尤其是娛樂性相對于iPhone可以說是遜色不少。

作為開發人員,應當在學習并深入了解Android之后,在自己的軟件中,將Android的優勢發揮出來,同時通過一些手段去彌補Android 本身的缺陷或不足。下面來看一下Android擁有的特點吧:

    * 與硬件交互非常方便,包括攝像頭、GPS 等,都可以簡單的操作。
    * 擁有自己的運行時和虛擬機,優秀的內存管理能力。
    * 提供豐富的界面控件供開發者使用,允許可視化開發,并保證Android平臺下的應用程序界面一致。
    * 提供輕量級的進程間通信機制。
    * 支持無界面的后臺服務類應用程序。
    * 支持高效、快速的數據存取方式。

在這些特性的支持下,試圖在Android下開發一個應用不會太過困難。事實上,一個稍有 Java經驗的開發人員,都可以快速的上手進行 Android的開發。而開發的核心,一直以來也是圍繞著Android手機幾個大的特點來進行的,其中就包括了觸摸屏、攝像頭、GPS模塊、互聯網功能、語音輸入、Google賬戶等。需要說的是,如果一位 J2ME 工程師想轉行做Android,那么他將付出的代價比J2SE或J2EE工程師要大得多。畢竟Android所支持的是基本完整的J2SE的子集,反過來再看J2ME就會覺得它的功能太弱了。

除了Java外,還有許多語言支持Android 的開發,比較為人所熟知的有Scala,而作為 Android本身的底層語言,C/C++的作用也完全不可忽視。而目前的開源社區內,已經有一些牛人在嘗試讓更多的語言可以開發Android應用。比較有代表性的可能是Koushik Dutta,他已經解決了在Mono平臺下,讓Dalvik調用Mono 代碼的問題;蛟S在不久的將來,.NET 下的所有語言,都有可能借助Mono跑在Android上,這是一件值得讓人期待的事情。

語言已不是問題,那還有什么會成為問題?也許很多人會說“經驗”。誠然,經驗決定了一位開發人員能否快速地、流暢地完成開發工作,也決定了軟件的魯棒性,Bug的數量、等級和修正問題的返工次數。不過我認為,這些都不重要,哪怕是一個 Android 行業的新人,一邊查詢文檔一邊做開發,雖然效率會很低,但是一樣能把項目做完。在 Android 下,開發技術幾乎是沒有瓶頸的。那么瓶頸在哪里呢?事實上,在用過很多軟件后,就會發現,有很多軟件并不好用。很多用戶不愿意用某個軟件,也并不是因為軟件沒有技術含量或是滿足不了需求,原因很簡單,就是不好用。

用 戶體驗是凌駕于技術之上的,可以說,優秀的用戶體驗將可以起到事半功倍的效果,在一堆同類的軟件中,下載量最大的,一定是讓用戶用著感覺最舒服的,哪怕它 的功能并不比其他的產品出色,甚至略差一些。我見過很多開發人員,他們視技術為己任,一心只鉆研技術,認為技術出色的軟件,會受到用戶的好評,甚至在一個 手機游戲中,加入各種華麗炫目的3D效果。這些固然都不錯,但是真正的用戶卻不會喜愛它們。在移動應用中,簡潔明快才是用戶希望看到的。試想一下,當用戶在手機上玩一個RPG游戲,并被華麗的3D效果充斥了整個界面,那么他將完全無法著手進行下一個動作。誠然,華麗的畫面是很容易吸引人,但是在這種華麗的背后,卻會直接把用戶和開發者自己領入一條深淵,再也無法回頭,最終的結果就是,用戶完全舍棄該款游戲,開發者或運營商也完全賺不到錢。

在移動平臺開發的過程中,用戶體驗已經成為首要大事,只有聚焦在用戶的設計,才有可能被用戶所接受。下面來看一些典型的例子。



上圖是經典的Windows Mobile 6.1的界面,從Windows Mobile推 出的那天起,這個界面就一直被宣傳成內容充實,包含常用所有功能的入口,非常貼合用戶的實際需求。也許在當時,這樣的界面確實能滿足一定的需求,但是到了 現在,這樣的設計只能說是遠離用戶。每一項的高度都過小,因此需要使用筆來點擊,或是使用指甲。位于右下角的三個圖標,或許用指甲都很難點到,使用筆即多 占用用戶的一只手,體驗是直線下降的。在用戶希望連耳朵都解放的現在,多占用一只手是什么概念,這就意味著用戶乘車時沒有辦法握緊扶手,或者沒有辦法拎著 自己的包。另外,在手機操作時,擁有一只空閑著的手,就能有更多機會處理突發事件,占用用戶的兩只手實在是不應該的。可以說Windows Mobile 的用戶體驗是非常差勁的,幸好微軟在新的Windows Phone 7中,對界面做了巨大的改進,沒有再犯過去的錯誤。



再來看看Android是如何做的,這個界面看起來簡潔明了,和上面的Windows Mobile相比,可以說是毫不出彩,甚至在有些人的眼里,這個界面很丑陋。但它卻是相當好用的,圖標很大,圖標的間距也很大。這就決定了用戶可以使用指腹去進行點擊的操作,并且點擊的范圍可以比較大,降低了點錯的幾率。

雖 然屏幕點擊的方式一定程度上也和屏幕的材質有關,比如電阻屏只能用筆或指甲,而電容屏允許使用指腹,有一些還可以支持多點觸摸。對于普通用戶來說,使用指 腹比使用指甲顯得更為常見,原因很簡單,如果圖標很大,那么用戶會不自覺的使用指腹去點擊,而如果圖標很小,那么用戶會屈起手指然后用指甲去戳屏幕。這個 “屈起手指”的動作不能被大部分的用戶所接受。因此電容屏會漸漸流行,而電阻屏會漸漸被淘汰,這完全是根據用戶的體驗,優勝劣汰,是一件非常符合進化論的事。

用 戶體驗還不僅僅是界面上的那些事,作為手機來說,每一個特點都將成為用戶體驗可以挖掘的一部分。比如說是否有鍵盤、是否支持多點觸摸等。有鍵盤的手機與無 鍵盤的手機,用戶在執機時用的手勢必然不同,一個著重點在機身下半部分,即鍵盤上;而另一個著重點在整個屏幕上,換言之,手指可能在屏幕的任何一個位置活 動。針對設備的具體情況來對應用進行設計也是很有必要的,目前Google為Android設 計的按屏幕大小自動切換布局方式的框架非常有用,它改變了以往在程序的設計過程中,需要為每一種設備單獨編譯一個版本,或是僅對不同的屏幕做簡單拉伸的情 況。另外,在設計中,還需要考慮實際操作體驗,比如放大一張圖片,是使用放大按鈕,還是使用多點觸摸。這兩種做法都很常見,但是在一個有此需求的應用中, 卻不能單獨的使用某一種。比較好的做法是,在程序代碼中,判斷設備是否支持多點觸摸,若不支持,可以顯示一個放大按鈕,而對于支持的,則在應用第一次啟動 時,彈出一個Toast提示,告訴用戶可以多點觸摸從而放大圖片。

下面再說說應用界面布局的問題,來看下面兩個截圖。



這兩個應用同為Android下的游戲機模擬器,上面的圖是PS模擬器,可以看到虛擬按鍵的布局有些奇怪,特別是 L和R,一上一下非常不習慣。而右面的是GBA模擬器,可以看到它的按鍵中規中矩,用戶馬上就可以上手了。但是,從上手的角度來說,GBA模擬器的確簡單,但是從實用的角度來說,PS模擬器做得更好。為什么呢?原因很簡單,PS模擬器利用到了整個屏幕,而且虛擬按鍵的布局,防止了兩只手打架,也防止了屏幕下半部分由于手指的原因完全不可見的問題。通過一段時間的習慣,PS 模擬器就可以被玩得很溜。而再看GBA模擬器,只利用到了一半的屏幕不說,而且還是縱向的,雙手操作時,兩只手很容易打架,相互干擾,要玩一些動作性稍強的游戲幾乎不可能。雖然看起來直觀易懂,但是這樣的UI,是會被用戶所舍棄的。

在移動平臺上,到目前為止,用戶依然沒有固定的操作習慣,而軟件的開發人員要做的事情,就是把用戶往一個簡單、明快的操作體驗上引導,使他們更快的學會使用軟件,并且讓他們習慣、擅長某一種或幾種操作。從某種意義上來說,蘋果的設計人員手冊已經很好的解決了問題,iPad已經做到了中老年人也可以輕松上手,甚至連貓都會玩。但是至少目前為止,還沒有見到適用于Android的設計手冊,開發人員或是軟件廠商也都各按自己的理解去進行軟件的設計,用戶也被迫在使用不同的軟件時,適應不同的風格。

在未來為期不短的一段時間內,Android上應用程序的用戶體驗將成為一個主要的研究點,特別是游戲類應用。由于Android上的某些限制,開發人員較難實現像PSP游戲那樣的華麗效果,因此只能夠在游戲本身的游戲性上下足工夫。當然了,等Android手機的性能再次大幅提升,電池容量再大幅提升后,可能會出現可以匹敵PSP游戲的華麗游戲,只是目前不應當過分考慮這些。

在我以前的一些文章也曾提到過,為移動平臺做開發,應該盡可能的考慮程序的執行效率而不是架構,因為移動平臺本身通常不會有多好的配置,在有限的配置下實現性能最佳化是非常重要的。從另一種角度上說,iPhone 能夠用較低的配置來實現整機流暢運作,也是得益于較為嚴格地針對性優化,把硬件平臺的性能完全發揮出來,這樣做得到的結果是,iPhone的整體性能,看起來反而比一些更高配置的手機要好一些。

最后,再簡單地說一下Android的開發與其他平臺的開發有什么異同。我們知道不同的開發方式將對最終的結果產生不同的影響。在以往的經驗中,各廠家的開發工具,都在往可視化方向發展,比如說微軟的 Visual Studio,一代比一代強大,可視化程度越來越高。而蘋果的Xcode也是一樣,它建議用戶完全使用可視化的方案來解決一個應用。這些固然很好,但是帶來的問題也不小。舉個簡單的例子,有一個 Windows Mobile 的應用,上面有一個 ListBox,而你正試圖為該 ListBox 添加一個圖標,并試圖按每一項的內容限定來改變文字顏色。能做到嗎?當然能,但是過程卻不簡單,你必須經歷復雜的自繪才能實現這一點。這也是常規的RAD 開發中普遍遇到的問題,即開發人員不能方便地控制到應用的每一個細節。開發框架對API的封裝在某種程度上提高了開發的效率,但是另一種程度上,它屏蔽了太多的細節,而這些細節有可能就是開發人員所需要的。

而Android雖然也擁有可視的開發環境,但是它非常弱,第三方的RAD方案迄今為止也依然顯得虛弱無力,對于用慣了微軟等公司出品的高級RAD 環境的人來說,可能會充滿了無奈,也可能充滿了鄙視,這種可視化算什么呢?如果僅僅從開發人員的角度來看,有利也有弊,弊端很顯然是開發效率不夠高,而事實上,由于Android采用Java語言來進行開發,其開發效率本身就不會太高。而利的部分,可能是會被很多高級工程師所喜愛的,因為它是犧牲開發效率,來換取最大的可定制性的一個典范。也許有一些剛開始學習Android開發的朋友會覺得制作界面有種種的不便,但是只要深入地學習下去,就會覺得 Android的界面實現方式是非常領先的。同樣舉出上面ListBox的例子,在Android下,就可以通過一組短小精悍的代碼來自定義 ListItem和相關Adapter以實現。

我想優秀的開發人員是應該完全放棄RAD的,在目前的環境下,RAD幾乎沒有什么作為,反而會成為應用分層的一個巨大的絆腳石。在RAD的環境下,要求一位開發人員對軟件的每一個部分都面面俱到,這怎么可能呢?比如說軟件界面就是應該交由UI專員去設計,數據庫部分也應該交由相關的負責人去做,完全不可能由開發人員從頭到尾一個人搞定。如果哪個老板真的雇用了一位超級開發人員來包辦一切,那么除非那個人擁有100年的工作經驗,不然的話項目做死就是活該。我想Android的開發框架已經很好地說明了這個問題,程序資源(包括圖片、字符串、其他的外部數據等)和代碼完全分離,各部分人員各司其職,完成整個項目,每個部分的人員都不會有太大的壓力。并且,由于Android采用XML對界面進行描述,使得對界面的更換也變得容易,設計師可以設計出多套界面,不論是用于UI方案評估或是在實際應用中更換界面風格都很方便。這也是其他移動平臺的開發所不具備的。

最后,我想說的是,我非常想要一本類似于《Android設計手冊》的參考書,我相信很多的開發人員也非常想要。只是短期內,我們依然只能自己來研究,推測用戶可能的行為,并為此可能性做好打算。Android必定越來越成熟,而開發者們,你們做好思想準備了嗎?

本文首發于:程序員 9月刊
本文地址:http://www.qingdxww.cn/thread-36226-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美高清视频在线 | 国产麻豆91在线 | 青草园网站在线观看 | 日韩高清在线不卡 | 免费在线不卡视频 | 国产成人影院一区二区 | 亚洲不卡在线视频 | 九九久久国产精品免费热6 九九久久国产精品 | 亚洲一区二区三区四区在线 | 日韩久久一区二区三区 | 91传媒黄色app免费下载 | 99热免费在线观看 | 久久亚洲私人国产精品 | 国产97公开成人免费视频 | www.日本在线 | 成人亚洲国产综合精品91 | 日本我不卡 | 青青草原1769久久免费播放 | 色偷偷www8888 | 青青青国产在线观看 | 日本不卡三区 | 99久久国产综合精品1尤物 | aaa一级片| 午夜日韩| 欧美三级视频 | 国产11一12周岁女毛片 | 成人精品在线视频 | 久久精品这里只有精品 | 欧美日韩综合视频 | 免费国产黄网站在线观看 | 欧美精品无播放器在线观看 | 久久香蕉精品成人 | 夜夜综合网 | 四虎8848精品永久在线观看 | 欧美在线黄色 | free俄罗斯性hd | 成人午夜久久精品 | 天堂网资源www | 欧美日本另类 | 四虎免费永久观看 | 亚洲视频一区 |