使用Android Studio構建Hello World工程

這是谷歌公司為安卓開發制造的編輯器,功能太強大了,太復雜了,乍一看去讓人眼花繚亂,我這人又喜歡簡潔的東西,一時間還真是頭大。
其實我也不知道為啥要接觸Android開發,因為我原本是一個iOS開發。大概是因為我缺錢吧,那就從頭開始吧,不過我學習的節奏和別人完全不同,我喜歡優哉游哉地學習,并且喜歡尋找自己不懂的點攻克,別人一般是看不懂的。
好現在進入正題。



這就是傳說中的Android Studio了
大體上它的工程目錄結構和XCode下的iOS工程目錄結構類似。



res下面的全是資源文件,像什么圖標,動畫都在這里面放著,沒錯就是那個叫drawable和mimmap的文件目錄。

這里面放的是預定義的常量,功能有點像宏,如下圖所示:

都是xml文件形式存在的,用標簽標記的存在。
這個layout目錄存的是什么呢?



從名字就可以知道它存儲的是布局,確切地來說是靜態布局。類比一下的話,就好像是iOS中的故事板和xib文件一樣。
好,到此為止,這就是res目錄的梗概。

搞過iOS的同學都知道新建的工程中都有這3個目錄,它們都是源碼文件。只不過第一個目錄下存的是真正的工程源碼文件,眾所周知Android是用Java開發的,所以里面存放的就都是.java的源文件。剩下的帶有test字樣的目錄都是測試框架,這個不用太關心,反正都是人工測的。

這個文件叫清單文件,是配置整個工程用的,類似于iOS工程中的plist文件一樣,沒啥好說的。

現在我要建立一個頁面,在安卓中頁面的學名叫做Activity,這個在iOS中被稱作controller,反正大同小異。
首先說一下思路吧。
Android需要一個Java源碼的文件,其實這個就是Activity,一般情況下為了方便你還需要一個xml的布局文件,就是在我剛才說的那個layout目錄下。接下來你需要把你寫的這個Activity注冊到工程中,說白了就是要讓工程知道有這個Activity。
好,現在首先建立一個布局用的xml文件,如下圖所示:




這個就是我建立的靜態布局文件,里面幾乎啥都沒有。
第一行<?xml version="1.0" encoding="utf-8"?>是xml的序言,就是告訴解析器按照1.0版本進行解析,并且它的編碼是utf-8的,對寫代碼來說沒啥用。
下面那個標簽是Android的相對布局控件,這個稍后再講。
那么到目前為止,Android頁面的靜態布局就已經構建OK了。
此處應該有掌聲。


這是我建立的Java源碼文件,但是從工程的角度講這是Activity。

沒錯這就是很樸素的Activity源碼啥都沒有。
像我這樣搞過iOS開發的人會本能地問為啥沒有生命周期呢,確實沒有。
但是能調出來,不需要你自己手寫!記住,是不需要你手寫的?。?!

你可以向上圖這樣通過菜單的方式也可以通過快捷鍵ctrl+O調出下面這個菜單

然后選擇你想要的生命周期方法,就會出現像下圖一樣的結果。

由于布局xml文件和Activity一開始是沒有任何關系的,所以你需要使用下面這個方法,把2者關聯到一起。
如下圖所示:

查詢一下Android的API可以知道,既然說到這里就順便說說如何用Android Studio查看Android的API吧。
其實Android Studio在查詢API這方面做得沒有XCode好,因為XCode有本地的官方文檔查起來不費勁,但是Android Studio只能查看網頁,我就不喜歡網頁。
不過還是給個地址吧https://developer.android.com/reference/classes.html。
下面看看這里面有什么,咱隨便找一個章節來看看。


這就是某一章節的組成結構了,這一點還是和iOS的API布局有點像的。
現在我們來看看Activity里面都有啥。

你要想看具體API部分就直接看summary部分,如下圖所示:

其他的部分都是講解這個類到底是個啥玩意。
再來看看與靜態布局xml有關的官方文檔吧,咱們看看LinearLayout吧。
你可以選擇搜索如下圖所示:

因為xml里面有很多xml標簽,你需要知道xml標簽和JavaAPI之間的對應關系。
如下圖所示在XML attributes部分有它們之間對應關系。

這樣你再見到xml標簽的時候就不會抓不著頭腦了。
不過這個是官方原版API不翻墻你連不上,所以你自己還要會翻墻哦。
好了,插入部分結束,剛剛說到把Activity的Java源碼和xml相關聯。
你需要在Android工程的清單文件AndroidManifest.xml中注冊你寫的這個Activity才行。
如下圖所示:

intent-filter里面的并不是每個Activity必須的,不過它是告訴編譯器這個Activity是作為第一個Activity存在的,就是應用一啟動出現的那個頁面。
寫好以后就ctrl+R運行吧,如下圖所示:

這個是選擇模擬器種類或者真機的對話框,粉簡單,就不解釋了。
安卓中的模擬器叫做emulator。
最簡單的畫面如下圖所示:

現在再從總體上看一下工程的目錄如下圖所示:

現在我要在頁面上添加一個按鈕。
我選擇靜態布局的xml來添加。
現在的這個是新的layout布局文件里面的代碼

我添加了如下代碼

意思是說我生成了個button,它的大小是根據內容確定的,它的標題叫做“這就是個按鈕”,它的背景顏色是黃色,它處于父視圖的中心。
現在讓我們運行一下看看效果。

現在我要實現點擊這個按鈕跳轉到另外一個Activity頁面,現在我重復先前的步驟生成同樣的靜態布局xml和Activity文件。

同樣我要在工程的清單文件AndroidManfest.xml中注冊這個Activity如下圖所示。

OK就是這樣的。
為了區別方便起見我把secondactivity的顏色設置為藍色如下所示:

現在我要為先前那個按鈕添加事件了,這個實在第一個Activity中的Java源碼中實現的,我直接上代碼了。
由于我已經在靜態布局文件里面創建了控件,所以我就不需要再在Java源碼文件中再次創建控件了,所以這個時候可以通過給該控件賦予一個唯一標識,這樣在Java中就可以直接通過該標識獲取該控件了,這個有點像iOS中給視圖加tag的做法。
如下圖所示:

在Java中獲取該控件如下圖所示:


紅色箭頭處是添加監聽的代碼,紅色方框處是監聽的實現,從iOS角度講就是action。
哦,還是看看secondactivity中的Java源碼吧,很簡單的,如下圖所示:

只有箭頭處是我手寫的代碼,主要是為了把xml布局文件和Java源碼綁定。
好,現在運行程序,請看。

現在點擊按鈕

然后再按一下模擬器上的返回鍵

就又回來了。
那么好了,這篇博客就到此結束了,算是進入Android開發的啟蒙吧。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容