Android菜鳥如何學習Android系統開發?

來源:互聯網
上載者:User

標籤:android   http   java   使用   os   資料   

如何做好Android學習前的準備?

  如果你已經確定了學習Android的目標,那麼,應該提前做好哪些工作、先打下哪些基礎呢?

  

 

  首先,你最好先熟悉一門程式設計語言,現在大學裡面和電腦相關的專業甚至理工類專業一般都會開設C語言課程,只是很多同學在大學期間並沒有好好學習,如果對它掌握的不太好或者很久沒用了,建議先從將其好好複習一下,將其基本的文法再好好回顧一下,最好能搭建一個環境來運行、調試它。如果沒有學過,不妨也提前學習一下,可以參考清華大學出版社出版的譚浩強老師的《C語言程式設計》,推薦這本書的原因,一是它已經經過了多年的考驗,應該說還是比較嚴謹的;其次就是大部分的高校所開設的C語言使用的教材都是用它作為教材,因此無論是購買還是借閱,都容易找到。另外,華清遠見網站上也有一些這方面的教學視頻,可以結合來看。

  其次,如果你後續有志於遊戲方面的開發,你最好具備一定的資料結構和演算法基礎知識。雖然現代的進階程式設計語言中,其類庫中已經幫我們實現了大部分的資料結構,一般情況下,我們直接使用即可。但如果你能對其原理有所瞭解,當你需要在這些資料結構和演算法中間的時候,你可以能更加的清楚到底應該選擇那個資料結構或者演算法。另外,在圖形影像處理上面,線性代數的作用也非常重要,如果能掌握一點這方面的基礎知識,無疑也會在後續的學習中如虎添翼。舉個例子,在Android中,有一個用於圖形變換的類Matrix,用起來稍有點難。其實它的理論基礎就是線性代數中的矩陣,如果你瞭解矩陣的基本演算法,這個類的使用可以說就易如反掌了。

  第三,因為Android應用的開發語言用的是Java語言,並且在Android中也用到了Java核心類庫的大量的類,因此,在學習Android開發之前,可以先把Java基本文法和Java SE的基礎類庫好好學習一下,例如:Java中的IO、網路、線程、List、Map、Tree等資料結構。現在的大學裡也有不少的院系開設了Java課程,教材和圖書也非常豐富,如果你所在的院系沒有開設,也可以從其他開設了這個專業的院系同學那裡借閱一下,並認真完成他們所布置的作業,爭取自己能動手編寫出一些簡單的Java應用。如果自己購買圖書,可以購買《Java核心技術,卷1(原書第8版)》這本圖書來學習。

  第四,因為在Android中,會用到資料庫來儲存資料,因此,也可以提前對資料庫知識做相關的儲備。在Android所使用的SQLite中,其文法是遵循標準的SQL-92文法的(當然和企業級資料庫如Oracle等比較,功能上要弱很多),有條件的話,最好也能安裝一個資料庫來進行實際的操作。從易用性和資料完備性來說,建議大家使用Microsoft SQL Server或者MySQL就可以了。它們都是我們學習資料庫的好平台。另外,如果曾經學習過資料庫原理或者關係代數,那麼,在學習資料庫的過程中,也可以再好好地複習一下這些基礎知識,對我們理解資料庫大有裨益。

Android開發學習方法

  最後,我們結合"3G Android系統開發"來談談Android開發的學習方法。

  Android是一個比較龐大的體系,從底層的Linux核心到上層的應用程式層,各部分的內容跨度也比較大。因此,一個好的學習方法對我們學習Android開發很重要。因此應採取了循序漸進、將大目標分解成多個小目標,逐步達成對Android開發從應用程式層到底層系統及驅動開發全面掌握的目的。

  例如,可以先從Android的應用開發開始,等到對應用掌握的比較熟悉了,開始慢慢閱讀一些Android 應用程式框架層的原始碼,然後再漸漸往下去瞭解Android的JNI、Libraries、Dalvik虛擬機器、HAL層、硬體驅動、Linux核心、ARM技術體系架構等,雖然近期Intel宣稱要讓Intel晶片支援Android系統,但在可預見的時期內,在行動裝置上,ARM的優勢應該還是不可撼動的。

  具體來說,可以先通過在開發板上構建一個自己的Android系統,瞭解Android系統的整體架構和啟動過程,由此先對Android有一個初步的瞭解;接下來,學習Android的應用開發,在這裡可以先學習Android的幾個主要組件、UI組件,先對Android應用開發有一個感性認識。在能夠熟練搭建使用者介面後,再逐漸來豐富應用的功能,例如:加上事件處理,使其能夠和使用者互動;加上資料存放區功能;加上連網功能等等。在學完應用後,在此基礎上來學習遊戲編程,先瞭解遊戲設計的基本思路,然後開始從小的遊戲、小的模組開始做起,到最後能完成一個類似於現在熱門的《捕魚達人》這樣的遊戲。在掌握了這些應用程式層級的內容後,可以去瞭解如何在Android應用中通過JNI去調用C/C++的介面,再往下學習Linux的核心和驅動開發如字元裝置驅動、Flash裝置驅動、網路裝置驅動等等;再在此基礎上,去學習Android驅動開發、HAL(硬體抽象層)開發、ARM體系架構和指令等等內容,這樣,Android開發的整個體系就都貫穿起來了。

  當然,因為時間有限,而底層部分的內容比較龐雜,因此,在真正去做這部分工作之前,我們只需要對其基本原理有所瞭解,做好相關知識的儲備,能夠根據老師的指導來完成相關的實驗。這樣在後續的工作中,就可以方便的往這方面發展,讓自己的事業更上一層樓。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.