Android SDK上手指南1:應用程序結構

一直說要學java要學android開發,但是一直胡亂地忙活這忙活那,以前開始學了一點也中斷了。說是沒時間,都是藉口,回顧一下本身的生活感受缺乏點激情,沒有什麼奮鬥的動力,因此好多時間就浪費了。剛剛考下GRE,就着這愉快的心情,開始android開發的學習!fight!java

我學習使用的教程來自51CTO,通過本身閱讀、編輯、註釋之後貼來這裏。教程的原地址是android

 
-------------------------------------------------------------------------------------------------------------------------------------------
 

介紹編程

本教程將主要以探索與瞭解爲主要目的,但後續的系列文章則將進一步帶你們深刻學習如何建立用戶界面、響應用戶交互操做以及利用Java編排應用邏輯。咱們將專一於你們剛剛開始接觸Android開發時最常遇到的項目內容,但也會同時涉及一部分已經存在於應用結構當中的其它一些元素。在今天的文章中,咱們不會對這些額外元素進行深刻探討。總而言之,瞭解關於Android應用的基礎建立知識,這就是咱們今天要完成的教學任務。app

1. 源編輯器

第一步工具

打開Eclipse並在Package Explorer當中查找咱們已經建立完成的項目。在「src」文件夾裏,你們應該會看到設置項目所命名的項目包。包中應該包含咱們的Activity類文件,這也是要在編輯器中打開的內容。源文件夾保存着咱們在開發Android應用程序時所要用到的所有Java文件。佈局

每當咱們建立一個項目時,都會建立一個用於容納各Java類文件的包。一款應用程序可能擁有不止一個包,並且每一個包當中也可能容納着多個類文件。這些類文件中的處理代碼可以將咱們的應用呈現給用戶、響應用戶的交互操做並執行任何的必要處理。從實質上看,類文件是在根據面向對象概念模型劃分與應用程序相關的代碼學習

咱們將在後續文章中進一步討論關於Java的概念以及對應實踐。在今天的教程內,你們只需理解一個Java應用會將各種處理任務拆分紅必定數量的對象。每一個對象都由一個類聲明來定義,這在應用程序中一般是一個獨立的文件,不過也能夠被嵌套在其它類文件當中。一個對象基本上就是一大段代碼,其中承載着與應用程序相關的某項功能的一部分。類文件中的代碼可以引用應用程序中的其它類或者應用程序中的其它包。spa

在你們着手進行應用程序開發時,首先須要向源文件夾中的包中添加Java類。一個向用戶提供用戶界面的典型Android應用將擁有至少一個Activity文件,應用中的不一樣屏幕顯示內容還要用到更多Activity類。其它一些類型的應用,例如工具程序或者服務,則採用不一樣的結構。你們最好首先關注Activity UI這種類型的應用程序,並在熟練掌握以後再接觸其它應用類型。設計

第二步

如今查看新應用中的Activity類文件。咱們會在本系列教程的後續文章中進一步探討Activity代碼,所以目前你們不用太過關注細節。今天咱們主要面向應用中的主Activity,它會在應用啓動後同時開始生效。你們的應用也可能會啓動其它一些用於用戶交互的Activity。在咱們建立本身的項目時,Eclipse會對應用進行設置並將主Activity做爲主類——它在項目清單當中也將被做爲主Activity進行顯示,咱們稍後會看到。

在主Activity類當中,你們會看到onCreate方法,其中包含的代碼將在Activity被建立——也就是應用程序啓動時開始執行。在該方法中,你們會看到如下代碼行:

setContentView(R.layout.activity_main);

在咱們啓動項目以後,這一行的內容用於指定咱們所建立的佈局文件,告訴Android將其做爲內容視圖。這意味着不管佈局文件中包含什麼樣的內容,都將在該Activity顯示在屏幕上時呈現給用戶。

咱們將在稍後進一步探討相關話題,目前暫時須要將注意力集中在「R.layout.activity_main」語法上。這就是咱們的Java代碼引用應用程序資源的方式。咱們將利用相似的語法經過資源的ID值對其進行引用,例如圖片及數據值等資源也能夠經過這種方式實現引用。其中的「R」表明應用資源,後面的部分則用於指定保存在「res/layout」目錄下的條目類型——在這裏就是佈局。這些資源最終要根據其名稱進行識別——對於示例中的佈局,使用的就是文件名。由此推斷,咱們要使用的語法就成了「R.type.name」。在咱們開始編程以後,各位就會開始使用該語法。

在本系列的後續文章中,咱們將向Activity類文件中添加代碼以實現用戶交互。如今打開應用中的「res」文件夾,你們會在其中找到多個子文件夾。這些文件夾是由Eclipse與ADT在咱們啓用新Android項目後默認建立而成的,不過咱們可能還須要爲不一樣類型的資源添加其它一些目錄。

2. 佈局資源res/layout

正如咱們已經看到,項目建立後所生成的佈局文件會保存在「res/layout」文件夾中。若是某款應用擁有多個Activity屏幕,那麼通常會爲每一個屏幕保留一個獨立的佈局文件。你們可能還會將佈局文件用於個別UI條目。當你們爲Activity建立類文件時,須要如上所述利用setContentView進行佈局設置。除此以外,你們也能夠經過Java代碼進行佈局設置——這算是種備選方案。在咱們的示例中,佈局設置是在應用執行時動態生成的。不過利用XML的優點在於,咱們能夠在界面設計工做中直觀感覺佈局方案的視覺效果。

在應用程序的主佈局文件當中(如今應該已經用編輯器打開了),你們會看到XML結構。若是各位以前沒有接觸過XML也沒必要擔憂,咱們會在後續文章中進一步討論這些基礎知識。就目前來講,你們只需瞭解:XML是一種標記語言,相似於HTML——若是以前接觸過Web開發的話。XML文件利用樹狀結構做爲數據模型。一般來講,一個佈局文件擁有一個根佈局元素,並將其做爲特定佈局類型模型——其中所包含的用於UI條目的子元素則包括按鈕、圖片及文本等。

3. 可繪製資源drawable

你們在資源目錄下應該會看到多個在名稱中包含「drawable」字樣的文件夾,這些文件夾用於保存應用程序所使用的圖片文件。這些圖片文件能夠是咱們在Eclipse以外所準備的數字圖片文件,格式包括PNG或者JPEG等。或者,你們也能夠經過XML代碼來描述形狀、顏色以及外觀,從而定義特定可繪製資源一旦咱們在drawable文件夾中建立了文件,就能夠在應用佈局文件或者Java代碼中進行引用。這樣一來,以前準備好的視覺元素就能用於應用UI了。

資源目錄中會保留針對每一種密度桶(density)的drawable文件夾。這些密度桶是各種運行Android系統的設備在像素密度方面的通用型分類依據。具體類別分爲低ld、中md、高hd、超高xhd與超超高xxhd密度四種。只需從對應類型中做出選擇,咱們就能夠在密度桶的幫助下輕鬆簡化多屏幕密度的支持過程。這意味着當咱們在項目中包含圖片文件時,能夠將其放置在不一樣密度的文件夾當中,並經過裁剪提供知足各類密度方案的版本。

4. 數據資源values

在「res」目錄中,咱們會看到一些標題中帶有「values」字樣的文件夾。這些文件夾用於容納你們但願在應用程序中所使用的數據值。這些值能夠包含文本字符串以及數字包含XML文件的值文件夾會列出其中的一項或者多項值。每份列表都包含一個名稱以及內容中的值。應用中的其它文件,例如Java類或者佈局文件,可以經過這些名稱爲引用這些值。在典型用例中,咱們可以須要經過這些保存在文本字符串的值在UI元素當中顯示內容——例如按鈕。

應用程序中的不一樣值文件容許你們針對特定屏幕尺寸及API級別對值進行修改。若是一樣的值足以應對多個設備,則能夠被直接保存在「Values」文件夾內。

5. 清單文件AndroidManifest.xml

在查看應用程序中的主文件夾時,你們必定會發現項目的清單文件。經過雙擊便可利用編輯器將其打開。接下來,咱們會看到一個顯示其內容的圖形界面。點擊編輯器窗口底部的「AndroidManifest.xml」標籤來查看其XML代碼。這個文件將應用程序的各個方面定義成統一總體。Eclipse與ADT會在咱們建立應用的同時,在清單中建立特定元素,具體建立方式取決於你們在項目建立過程當中的設置。你們能夠手動向清單中添加其它元素,例如添加其它Activity。

咱們將運行其中的一部分主元素,旨在理解清單的做用,不過還有其它多種元素能夠被包含其中。在清單中所列舉的新應用項目元素當中,咱們將看到uses-sdk元素,咱們利用它表示最小及目標API級別。Application元素中包含指向啓動機制與應用程序名稱的屬性。在application元素中還存在着一個activity元素,會在應用程序開始運行時經過intent-filter元素做爲主Activity啓動。當咱們嚮應用中添加新的Activity時,則會爲每一個相關元素添加新的activity元素。

你們可能還須要向清單中添加其它元素,其中包括uses-permission元素,用於羅列應用所要求的權限——用戶會在安裝應用以前觀看到該列表。權限中包含多種操做條目,例如經過互聯網獲取數據、寫入存儲或者訪問設備上的其它功能——如相機。清單還會列舉應用程序所能支持的設備類型以及其它一些應用程序組件(例如後臺服務)。

6. 其它文件

講到這裏,咱們已經談到了你們須要瞭解的Android應用程序項目結構中的各大主要方面。隨着對Android開發的學習,你們將在從此常常與這些內容打交道。經過Eclipse,咱們還會看到項目中包含的其它一些文件及目錄,不過就目前來講基本均可以直接忽略。

正如在前面看到的,你們能夠利用「R.」語法實現資源引用。Eclipse以及管理系統的ADT都會引用應用中來自Java的資源。當你們在項目中對這些資源進行添加或者編輯時,Eclipse會將對應內容寫入「R.java」文件,從而幫助咱們利用「R.」進行資源引用。當你們開始處理本身的Java文件,會在引用時看到Eclipse彈出的提示信息——這種機制能簡化對應用資源的管理工做。「R.java」文件被保存在「gen」文件夾中。請注意:千萬不要嘗試直接編輯這個文件,它會在咱們編輯項目資源時自動生成。系統會經過爲應用中的每項資源分配唯一整數ID的形式管理這一過程。

提示:當你們開始嘗試Android應用程序開發時,可能會在使用R時遇到問題。若是Eclipse顯示任何與R相關的錯誤信息,特別是「R沒法被解析爲一個變量」,則須要檢查類文件的起始內容,看看其中是否存在「R」的導入語句,例如「import android.R;」。若是找到了對應內容,特別是在已經將代碼複製並粘貼到文件中後,請刪除這一導入語句。若是遇到其它與R相關的提示,請確保資源文件當中不存在錯誤。若是問題仍然存在,嘗試利用「Project」,「Clean」清理項目。當一切努力皆告失敗時,試着從新啓動Eclipse。

總結

在今天的文章中,咱們瞭解了關於Android項目結構的基礎知識。你們能夠再花點時間隨意查看項目中的其它文件及文件夾,藉此瞭解項目的總體結構。在接下來的後續教程中,咱們將在應用中建立用戶界面元素並處理用戶交互操做。咱們還會探討關於Java編程的基本特性,藉此進一步提高本身對Android開發項目的理解。

原文連接: http://mobile.tutsplus.com/tutorials/android/android-sdk-app-structure/

相關文章
相關標籤/搜索