快速學習Android開發的技巧

由於項目須要,8月中旬開始決定作安卓的程序,因此立刻就開始學習安卓方面的開發知識,把最近的學習實踐經歷和你們分享分享。不要一開始就下載一大堆資料,視頻,而後就不知道作什麼了,要給本身定個目標,我要作什麼?我怎麼達到目標?java

我不懂java,可是懂C#和C++,因此我沒主張去單獨學習java語言,若是你是個最最初的新手,沒啥語言基礎,那你必須先看看java語言,不要很詳細看,由於學習Android中,須要不斷的去學習,推薦多看看e良師益友網裏的Android應用開發視頻教程。此外,你也是在學習java。android

1. 明確目標程序員

沒 有目標的學習,會感受到後面沒什麼成果,在1年前,我也打算學習android開發的,可是目的就是學習,到網上去下載不少學習的視頻,而後把開發環境搭 建起來,能把Helloworld運行起來,能打些log,Activity之間也能互相切換了,可是後面也就不了了之了,由於不知道學了要幹什麼。依葫 蘆畫瓢的作了幾個例子,由於裏面的問題都是已經解決的,因此也沒能深刻的系統學習。框架

此次由於產品的須要,要作Android版本,要作的東西一開始就已經設計好了,見安卓版本,剛開始也不知道里面有些什麼技術難度,可是要作的目標已經明確了,並且也沒有現成的,碰到問題就查資料,慢慢地解決,這樣有的放矢,學習的效果很是好。既有現成的技術可使用,又有些技術,須要查比較多的資料,這樣記憶就比較深入,所掌握的知識也比較系統。ide

接下來的一系列文章,我會把在開發中遇到的問題,給你們詳細講講,程序雖然小,可是五臟俱全,作Demo和作產品的要求徹底不是一個級別,若是Android大牛感受知識講的比較淺,那能夠繞道,畢竟我是從一個徹底的新手開始的。函數

 

2. 瞭解安卓開發中比較困難的地方學習

學習一個新平臺,就要知道此平臺開發要面臨的困難有哪些,不要作到最後,這些問題沒有考慮,那就比較糟糕了。在網上搜索了下,安卓開發困難總結如何:ui

1)安卓系統版本比較多,各版本之間的兼容性是個問題,此爲系統碎片。線程

2)安卓設備變幻無窮,設備難以統一,每一個產品都成爲獨立,分散的Android碎片。設計

3)分辨率五花八門。一個產品,可能須要多個界面排版,人工消耗比較大。

看到這張圖,有沒有頭疼的感受?

總結成一句話:Android的碎片化真是要來開發者的命。

 

3. 搭建開發環境

"巧婦難爲無米之炊",開發環境確定是第一件要作的事情,這類的文章已經不少了,我也很少說了,多說也就比較無聊了。感謝吳秦,也是博客園裏的一員,他寫的很詳細了,見這裏,e良師益友網。

 

4. 查看網友總結的一些經驗。

不是什麼都查看,開發中遇到什麼問題,就去查看什麼問題,這樣你查到的知識,立刻就能深刻的實踐,這樣知識就鞏固了。

1)首先固然要看Android的開發文檔,裏面其實大部分的知識都有了,還有就是SDK自帶的Samples。

2)博客園裏搜索「Android開發」,會出來一大把,不少網友都是很系統的講解了。

3)eoe android社區,裏面有不少網友上傳了現成的demo代碼,裏面不少都是模仿如今流行的產品的界面開發,非常不錯。

 

5. 掌握調試方法

我的一直認爲,調試技巧是開發中最重要的技能,若是調試技能比較差,不知道如何查找問題,那不會是個好的程序員,其技能也不會高到哪裏去。

Android作下來,感受調試這塊作的很不錯了,這要感謝Eclipse IDE作的比較不錯,可是Android的界面排版部分,真的不敢恭維,Eclipse時間用長了,佔用內存真是大。有哪位高手可否告訴我下,大家界面排版是用什麼的?

Android裏,若是程序出了問題,有些是一下跟蹤不到的,這時就要用到Log類了,Log類使用很簡單,就很少說了。

自 己一個頗有感觸的經驗,若是你真的打算作Android開發,那就買一個設備,這樣能大大提升開發效率,模擬器有時用起來真是麻煩,並且開發的設備不要很 好的,只要設備分辨率是主流的,傳感器的支持最好全點就夠了,國產的手機裏,華爲的還不錯,或者到淘寶上去買個二手的,投資不大。真的買了投資,可能也會 增長你學習Android的決心。

 

6. 程序框架

經 過10多年的經歷,認識到程序的框架對開發產品真的是起到舉足輕重的做用。一個好的產品,若是有個好的程序框架,那真是事半功倍,可能開始所作的工做會比 較多,很難看到使人激動的成果,可是相信我,絕對值得。一開始,我也是比較注重程序界面開發,很快就開發出界面來,並且着實比較激動,由於有東西出來了, 可是後面的事情,真是使人發狂,想從頭再來,太遲了,離計劃的時間比較近了,時間不容許,只有硬着頭皮往上打補丁,硬着交付第一個版本,第二個版本或者後 面的版本,早晚是要重來的。因此在後面帶領團隊開發的時候,在開發前,都是要討論程序框架,留出很大部分時間進行程序框架開發,及在開發中不斷的改進。

剛接觸Android,不知道用什麼程序框架,因此查了不少資料,一開始看到一個程序框架,感受很不錯,因此一開始就使用了下面這個程序框架。

 

開始這個框架用的蠻爽,簡單介紹一下,主UI線程若是要作一個比較長時間的任務,建立一個任務,發送到任務隊列中去,後臺的Service不斷的從任務隊列 中去取任務,而後交給線程處理,線程處理完後,經過消息(Message)發送到Handler裏處理,而後Handler的handleMessage 函數裏回調到UI主線程中去。

此框架的缺點是比較麻煩。

1)首先這裏有個Observer模式,每一個Activity都要實現一個接口,而後註冊到後臺服務中去,這樣後臺服務才能把處理的結果回調到主線程中。

2) 每一個事件都要組成一個任務,發送到任務隊列。

3)後臺線程先要取任務,而後處理,而後經過消息切換到主線程,而後又回到到相應的Activity中,中間有個3次判斷當前是什麼任務。

4)不能並不是,任務只能一個接一個,雖然這個通常不會形成瓶頸。

由於應用比較簡單,因此後來感受只要使用線程和Handler,經過消息就能處理,而後就查資料,發現已經有比較多的文章描述了這種方法,只是沒提出這是一個框架,可是,我感受已經足夠了。下面就是主代碼,分佈在每一個Activity中:

private void TaskThread()

{

Thread taskThread = new Thread()

{

@Override public void run()

{

//作耗時的任務

Message msg = Message.obtain();

msg.what = 1;

uiCallback.sendMessage(msg);

}

};

taskThread .start();

}

 

private Handler uiCallback = new Handler()

{

@Override public void handleMessage(Message msg)

{

if(msg.what == 1)

{

//在主線程中處理結果

}

}

};

夠用就好,至少我如今用着很爽。

 

7. 程序國際化

互聯網讓地球成爲一個村,因此一開始也須要了解一下程序是如何作國際化版本的。不要一開始字符串滿天飛,整個程序中都存在hard code,這樣作,早晚是要吃虧的。

 

8.產品升級機制

一個方便的產品升級機制,對產品的成長很重要,android是一個開放平臺,在這點上比iOS作的好的多,產品升級很方便。

 

此文章的目的就是對想學Android開發的人一個指引,由於我也就是這麼走過來的,加上本身在軟件開發上的一些經驗,讓新手少走彎路。有計劃,有目標的學習,這是最好的方法。想要了解學習更多知識,請多關注e良師益友網

相關文章
相關標籤/搜索