天天看點

.Net碼農學Android---系統架構和基本概念

至此,你應該已經完成以下前期準備事情:

1.安裝完JDK

2.安裝完SDK(并在Manager中進行相關版本的更新)

3.相關IDE(如eclipse)

4.安裝完ADT

5.安裝完AVD(如果你是真機模拟的話也可以不安裝)

前期環境搭建基本完成,并按照網上的教程可以運作出HelloWorld,確定可以流程走的通。

所謂會當淩絕頂,一覽衆山小。我學習新東西時總會從系統或全局的角度對它進行一個總覽,這樣才能從更高的角度去把握它,而且你對接下來的學習也會有一個系統的認知會讓之後的學習更有條理和針對性。

一.接下來就是要介紹一下Android的基本系統架構了

.Net碼農學Android---系統架構和基本概念

在最外的是負責直接和使用者互動的應用層,就是通常意義上我們看得見、可以下載下傳的應用,浏覽器、遊戲、音樂播放器等等。

緊接着是應用的架構層,在我們開發應用時會經常調用,比如ActivityManager,ViewSystem等等,會面會介紹。

再接這就到了運作機制的JVM層了,你可以看到它不但包含了一個Runtime,而且還有一些相關的類庫。

最低層是基于Linux的核心,包含了一些硬體的驅動,主要負責和硬體進行互動,比如你可以在你的應用中調用照相機,Wifi接口等都是很友善的。

二.工程組織和結構

接下來我們右鍵new一個AndroidApplication項目,如果找不到的話在new選項裡最下面的others中如下:

.Net碼農學Android---系統架構和基本概念

一路next,建好後如下:

.Net碼農學Android---系統架構和基本概念

三.來認識一下各個檔案夾都是幹什麼的

src:存放你的源碼,比如.java檔案,可以了解為vs中的類庫.cs檔案之類的。

.Net碼農學Android---系統架構和基本概念

GoogleApis:就是要到的一些SDK中谷歌的接口。

AndroidPrivateLibarares:安卓的一些類庫。

AndroidDependencies:安卓的一些依賴庫。

assets:存放你項目中的“大”資源檔案,比如圖檔、視訊、媒體等,所謂“大”隻因為在Android項目中還有一個資源檔案夾res主要存放一些字型、文字、顔色等的“小”資源。

bin:這個不用說了吧。

libs:類似vs中的dll引用。

res:主要存放一些字型、文字、顔色等的“小”資源。展開如下:

.Net碼農學Android---系統架構和基本概念

主要會用到layout和values,(其他的可能也會大量用到,隻不過自己也還在摸索中)

layout:用來存放布局檔案

values:用來存放文字,顔色等,kv值(這裡有一點需要注意,在Android開發中,為了保持項目的靈活性和避免寫死,它會建議你把要用到的kv值存到一個檔案裡,在用到的地方直接引用,這就是為什麼要有values檔案夾的原因了)。

AndroidManifest.xml:這個檔案很重要,是用來儲存整個程式的相關配置的一個清單,比如項目名,版本号、啟動activity、權限說明等。

三.認識完工程結構後,我們來了解幾個基本概念。

因為以前在學校學過java(雖然已經忘記的差不多了),是以自己還算有些基礎,對一些基本的文法和使用還是有些了解的,如果你對java一無所知,我建議你先花一兩個小時看看基本的文法,比如怎麼繼承,怎麼實作接口,相信我作為一名c#的程式員,你可能隻需要10分鐘就可以搞定了,因為你會發現它和c#是多麼驚人的相似!

好了,到這我們才真正開始!

作為一個對移動應用開發倍感神秘的初學者來說,我隻想知道,我應該怎麼開始,它到底是怎麼實作并顯示在手機上的。

我們打開layout檔案夾中的activity_main.xml,看到了吧,是不是似曾相識(控件+布局+代碼)

.Net碼農學Android---系統架構和基本概念

這個就是程式的啟動頁,類似于main方法 ,就是入口,當然你也可以自己設定其他的入口頁。

幾個概念:

1.Activity:這個是最常用到的一個概念,你可以把它了解為目前活動得螢幕,就是呈現在手機上的一個頁,聯想web頁。

這是Activity的生命周期

.Net碼農學Android---系統架構和基本概念

Activity的可視生命周期為OnStart()開始直到OnStop()結束(可能會看不見内容,但會保留相關資源)

Activity的前台生命周期為OnStart()開始直到OnStop()結束(在最前面和使用者進行互動)

2.包名:java中的“包名”類似我們c#中的命名空間,一個“包”就是一個dll引用檔案。不過我覺得eclipse中有一點做得很好,即你在用到一個方法或類時不用再頂部import它好像會自動的幫你完成,vs中好像還得手敲一下。

java中要確定包名唯一是以一般用公司域名的反寫來命名比如com.letchoice.HelloWorld。

三.幾個快捷鍵和相關設定

1.格式化代碼:ctrl+shift+F(有代碼潔癖同學首選)

2.在你格式化xml文檔的時候可能會有些問題,如下設定即可

.Net碼農學Android---系統架構和基本概念

3.對于用慣了vs的你來說,可能已經适應了vs的智能提示功能,在eclipse中這點可能做得沒有vs好,你隻有在輸入“.”之後才能出現提示,如果你想讓它像vs中一樣随時智能提示和補全代碼的話,你可以window—>preference打開設定面闆如下

.Net碼農學Android---系統架構和基本概念

将辨別的地方的”.”改成“abcdefghijklmnopqrstuvwxyz.”儲存就ok了。

4.Xml代碼提示和補全功能設定如下:

.Net碼農學Android---系統架構和基本概念

即将圖中辨別地方改成"<=:abcdefghigklmnopqrstuvwxyz@ "即可。

自己對于Android開發和java的使用還都處于摸索當中,難免出現疏漏和錯誤,還望大家多多批評指正,和你們共勉!