程序員:Android開(kāi)發(fā)經(jīng)驗分享
從G1上市到現在,市面上已經(jīng)出現了至少30款Android手機。為什么至今依然有一些用戶(hù)在抱怨Android不好用,在相關(guān)的開(kāi)發(fā)中,什么才是真正值得關(guān)注的,開(kāi)發(fā)的核心是什么?為什么移動(dòng)應用需要格外關(guān)注用戶(hù)體驗?本文將對這些問(wèn)題盡可能的作出解答。
本文引用地址:http://dyxdggzs.com/article/114158.htmAndroid一詞的本義指“機器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux的開(kāi)源手機操作系統的名稱(chēng),該平臺由操作系統、中間件、用戶(hù)界面和應用程序組成,是首個(gè)真正為移動(dòng)終端打造的開(kāi)放并且完整的移動(dòng)平臺。2008年9月22日,美國運營(yíng)商T-Mobile USA在紐約正式發(fā)布第一款Google手機,即T-Mobile G1,從那個(gè)時(shí)候起,Android的時(shí)代就真正的來(lái)臨了。
從Android 1.0至今經(jīng)歷了多次的版本更新,其中重要的變更是1.5、2.0和2.2。而其他的版本更新相對而言并不是那么重要。另外,由于每次更新都會(huì )多少改動(dòng)包括 Dalvik 在內的底層模塊,同時(shí)牽扯到 SDK,導致了一些程序需要跟著(zhù) Android 版本進(jìn)行變動(dòng)。對于相對較為保守的開(kāi)發(fā)人員而言,快速的版本更新將給他們帶來(lái)越來(lái)越大的限制。在這種情況下,Android 開(kāi)源的意義就顯得不是那么大了。
無(wú)論如何,由于A(yíng)ndroid與Google服務(wù)的緊密捆綁,這款操作系統擁有了得天獨厚的優(yōu)勢。通過(guò)Google強有力的支持,很多事情在A(yíng)ndroid上都會(huì )變得很簡(jiǎn)單。另外需要特別提出的是,Android是一款基于互聯(lián)網(wǎng)的操作系統,在可以連接上互聯(lián)網(wǎng)的情況下,一款Android 手機可以發(fā)揮出比其他手機更多的能力。而在沒(méi)有網(wǎng)絡(luò )的情況下,Android手機并不比其他的手機出色,尤其是娛樂(lè )性相對于iPhone可以說(shuō)是遜色不少。
作為開(kāi)發(fā)人員,應當在學(xué)習并深入了解Android之后,在自己的軟件中,將Android的優(yōu)勢發(fā)揮出來(lái),同時(shí)通過(guò)一些手段去彌補Android 本身的缺陷或不足。下面來(lái)看一下Android擁有的特點(diǎn)吧:
- 與硬件交互非常方便,包括攝像頭、GPS 等,都可以簡(jiǎn)單的操作。
- 擁有自己的運行時(shí)和虛擬機,優(yōu)秀的內存管理能力。
- 提供豐富的界面控件供開(kāi)發(fā)者使用,允許可視化開(kāi)發(fā),并保證Android平臺下的應用程序界面一致。
- 提供輕量級的進(jìn)程間通信機制。
- 支持無(wú)界面的后臺服務(wù)類(lèi)應用程序。
- 支持高效、快速的數據存取方式。
在這些特性的支持下,試圖在A(yíng)ndroid下開(kāi)發(fā)一個(gè)應用不會(huì )太過(guò)困難。事實(shí)上,一個(gè)稍有 Java經(jīng)驗的開(kāi)發(fā)人員,都可以快速的上手進(jìn)行 Android的開(kāi)發(fā)。而開(kāi)發(fā)的核心,一直以來(lái)也是圍繞著(zhù)Android手機幾個(gè)大的特點(diǎn)來(lái)進(jìn)行的,其中就包括了觸摸屏、攝像頭、GPS模塊、互聯(lián)網(wǎng)功能、語(yǔ)音輸入、Google賬戶(hù)等。需要說(shuō)的是,如果一位 J2ME 工程師想轉行做Android,那么他將付出的代價(jià)比J2SE或J2EE工程師要大得多。畢竟Android所支持的是基本完整的J2SE的子集,反過(guò)來(lái)再看J2ME就會(huì )覺(jué)得它的功能太弱了。
除了Java外,還有許多語(yǔ)言支持Android 的開(kāi)發(fā),比較為人所熟知的有Scala,而作為 Android本身的底層語(yǔ)言,C/C++的作用也完全不可忽視。而目前的開(kāi)源社區內,已經(jīng)有一些牛人在嘗試讓更多的語(yǔ)言可以開(kāi)發(fā)Android應用。比較有代表性的可能是Koushik Dutta,他已經(jīng)解決了在Mono平臺下,讓Dalvik調用Mono 代碼的問(wèn)題?;蛟S在不久的將來(lái),.NET 下的所有語(yǔ)言,都有可能借助Mono跑在A(yíng)ndroid上,這是一件值得讓人期待的事情。
語(yǔ)言已不是問(wèn)題,那還有什么會(huì )成為問(wèn)題?也許很多人會(huì )說(shuō)“經(jīng)驗”。誠然,經(jīng)驗決定了一位開(kāi)發(fā)人員能否快速地、流暢地完成開(kāi)發(fā)工作,也決定了軟件的魯棒性,Bug的數量、等級和修正問(wèn)題的返工次數。不過(guò)我認為,這些都不重要,哪怕是一個(gè) Android 行業(yè)的新人,一邊查詢(xún)文檔一邊做開(kāi)發(fā),雖然效率會(huì )很低,但是一樣能把項目做完。在 Android 下,開(kāi)發(fā)技術(shù)幾乎是沒(méi)有瓶頸的。那么瓶頸在哪里呢?事實(shí)上,在用過(guò)很多軟件后,就會(huì )發(fā)現,有很多軟件并不好用。很多用戶(hù)不愿意用某個(gè)軟件,也并不是因為軟件沒(méi)有技術(shù)含量或是滿(mǎn)足不了需求,原因很簡(jiǎn)單,就是不好用。
c++相關(guān)文章:c++教程
評論