<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Android開發(fā)經(jīng)驗分享

          Android開發(fā)經(jīng)驗分享

          作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

          從G1上市到現(xiàn)在,市面上已經(jīng)出現(xiàn)了至少30款A(yù)ndroid手機(jī)。為什么至今依然有一些用戶在抱怨Android不好用,在相關(guān)的開發(fā)中,什么才是真正值得關(guān)注的,開發(fā)的核心是什么?為什么移動應(yīng)用需要格外關(guān)注用戶體驗?本文將對這些問題盡可能的作出解答。

          本文引用地址:http://www.ex-cimer.com/article/201610/305897.htm

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

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

          無論如何,由于Android與Google服務(wù)的緊密捆綁,這款操作系統(tǒng)擁有了得天獨(dú)厚的優(yōu)勢。通過Google強(qiáng)有力的支持,很多事情在Android上都會變得很簡單。另外需要特別提出的是,Android是一款基于互聯(lián)網(wǎng)的操作系統(tǒng),在可以連接上互聯(lián)網(wǎng)的情況下,一款A(yù)ndroid手機(jī)可以發(fā)揮出比其他手機(jī)更多的能力。而在沒有網(wǎng)絡(luò)的情況下,Android手機(jī)并不比其他的手機(jī)出色,尤其是娛樂性相對于iPhone可以說是遜色不少。

          作為開發(fā)人員,應(yīng)當(dāng)在學(xué)習(xí)并深入了解Android之后,在自己的軟件中,將Android的優(yōu)勢發(fā)揮出來,同時通過一些手段去彌補(bǔ)Android 本身的缺陷或不足。下面來看一下Android擁有的特點(diǎn)吧:

          與硬件交互非常方便,包括攝像頭、GPS 等,都可以簡單的操作。

          擁有自己的運(yùn)行時和虛擬機(jī),優(yōu)秀的內(nèi)存管理能力。

          提供豐富的界面控件供開發(fā)者使用,允許可視化開發(fā),并保證Android平臺下的應(yīng)用程序界面一致。

          提供輕量級的進(jìn)程間通信機(jī)制。

          支持無界面的后臺服務(wù)類應(yīng)用程序。

          支持高效、快速的數(shù)據(jù)存取方式。

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

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

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

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

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

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


          上一頁 1 2 3 下一頁

          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();