2013年10月21日

[ Android 開發教學 ] Android App 是什麼 ?

Android App與Android Application Project


新版 Android SDK 下載安裝中文教學課程講義,歡迎延伸點閱!


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


我們編寫的 Android SDK 教學課程講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義Android 4.2 升級功能簡介Android 4.2 SDK & ADT Bundle 下載安裝教學2013年第1講: Android Application Project 之建立2013年最新 Android Studio 開發工具下載安裝教學最新 Android App 網路連線程式設計範例 (第一講) - Volley HTTP Library 入門教學Android App 與 Android Application Project 是什麼?Android 4.4 KitKat 與 Android 4.4 SDK 開發功能介紹Android SDK 下載安裝中文教學課程講義 ( 2013年11月新版,ADT Bundle )

您在閱讀此篇《Android App 與 Android Application Project 是什麼?》教學文章之前,我們建議您先點閱我們先前所撰寫的 《 Android Application Project 之建立 ( ADT ) 》 或 《 Android Studio 開發工具下載安裝教學 ( Android Studio ) 》 一文。

以下為本篇《 Android App 與 Android Application Project 是什麼?》教學講義的開始。


Android 手機應用程式 ( Android App ) 是什麼?




【孫傳雄研究室 撰文】Android 手機應用程式亦即大家常說的 Android App,它通常指的是可以在 Android 智慧型手機之中執行的應用程式軟體。

更進一步地說,App 是 Application 的英文簡寫,App 就是應用程式之意。

而所謂的應用程式通常是指:『為針對使用者的某種應用目的所撰寫的軟體。』 ( 參考文獻:維基百科 )

亦因如此,我們或許可以將 Android 手機應用程式定義為:『為針對 Android 智慧型手機使用者的一種或多種使用需求所撰寫之 Android 智慧型手機軟體。』

更聚焦地說,我們在此所述的 Android 手機應用程式係指利用 Android SDK 所直接原生的 API ( Application Programming Interface ) 為基礎而開發之原生 ( Native ) Android 手機應用程式。

為何開發者要以原生的方式開發 Android 手機應用程式呢?我們歸納以下九個可能的因素如下:

  • 原生的程式在原生的作業系統中有執行效能方面的先天優勢。
  • 更貼近 Android 智慧型手機的硬體功能與使用者介面風格
  • 使用者介面的客製化能力佳
  • 螢幕觸控功能之支援度高。
  • 離線執行之能力佳。
  • 無線連接其它硬體設備之能力佳 ( 如透過 NFC 、藍芽或者 Wi-Fi 等無線連接技術 ) 。
  • 整合 Google 地圖 API 功能之能力佳。
  • 與 Google 所提供的各項 Android 開發資源之融合度較高。
  • 經 Google 審核通過後, Android 手機應用程式可上架至 Google Play 軟體市集供使用者免費或付費下載。



Andorid 手機應用程式能在 Android 平板電腦中執行嗎?




Android 手機應用程式其實並不是只能在 Android 智慧型手機之中執行而已,它多半更可以直接在 Androoid 平板電腦或者其它有搭載 Android 作業系統的裝置設備當中執行。

同時,Android 手機應用程式也具備可以讓單一個 Android 手機應用程式能夠在不同種類的 Android 裝置設備之中,顯示各自適合的不同畫面形式之能力。



Android 手機應用程式開發專案 ( Android Application Project ) 是什麼?




當您要開發一個 Android 手機應用程式時,您必須建立一個 Android 手機應用程式開發專案 ( Android Project 或稱 Android Application Project ) 。
 
什麼是 Android 手機應用程式開發專案?
 
Android 手機應用程式開發專案是指:您在 Android 手機應用程式開發階段時,為便於存放管理您所撰寫的程式碼及其相關檔案而建立之專案檔案目錄。   
 
當您透過 Android 官方免費提供給 Android 手機應用程式開發者合法下載安裝的 Android 手機應用程式開發工具軟體 ( 即 Android Studio 或者 ADT ) 去建立 Android 手機應用程式開發專案時,Android Studio 或者 ADT 皆會自動幫您建構一個已可初步執行 “Hello World” 字樣畫面且供您可以繼續完成撰寫工作的 Android 手機應用程式開發專案。 ( 註:請注意! Android Studio 在撰文當下仍為非正式的早期預覽版本,若需使用正式版本,則建議採用 ADT 。 )
 
在您的 Android 手機應用程式開發專案撰寫工作完成後,此專案的大部份檔案會經過編譯 ( 註:也能保有不編譯的檔案 ) 、執行檔轉換、壓縮封裝、簽屬正式加密金鑰及發行最佳化等檔案建構過程,而正式成為可上架至 Google Play 軟體市集發行的 .apk 壓縮封裝檔案,以便手機用戶安裝至 Android 智慧型手機之中執行。

而且,若您的 .apk 壓縮封裝檔案不想要上架至Google Play 軟體市集發行的話,則 Google 也允許您的 .apk 壓縮封裝檔案可以自行安裝在您個人的 Android 智慧型手機之中。 ( 註:關於此部份的細節介紹,請您點閱 Android 官網之說明網頁連結網址。 )
 
Android Studio 與 ADT 皆具備所謂的檔案建構系統 ( Build System ) 以自動化方式去完成上述一連串的檔案建構過程之動作。
 
不過,Android Studio 與 ADT 內部所採用的檔案建構系統其實並不相同,Android Studio 採用的是 Gradle ,而 ADT 則採用 Ant
 
但是,無論您是使用 Android Studio 或者 ADT ,此一產生 .apk 壓縮封裝檔案的過程皆可以用設定精靈的方式完成。

另外,由於 Android Studio 與 ADT 皆是採用 Android SDK 所提供的 API ,因此,兩者的 Java 程式碼寫法同為一致,並不會因為檔案建構系統的不同而有所差異。



Android 手機應用程式開發專案的檔案目錄結構




Android 手機應用程式開發專案本身具有完整的檔案目錄結構。
 
此一 Android 手機應用程式開發專案的完整檔案目錄結構具有相當嚴謹之配置安排,同時,它也具有相當的彈性得以讓 Android 手機應用程式開發者揮灑許多開發的可能性。

因此,我們認為這個完整檔案目錄結構是 Android 手機應用程式開發的初學者應該優先理解之處。
 
雖然,Android Studio 與 ADT 所採用的檔案建構系統不同,然而,無論您是使用 Android Studio 或者 ADT ,Android 手機應用程式開發專案的檔案目錄結構皆會內含以下三大部份:

  • Java 程式碼 ( Java Codes ) 檔案目錄 :
Android 手機應用程式是採 Java 程式語言配合 Android SDK 所提供的 API 進行開發,所以,Android 手機應用程式開發專案的檔案目錄結構之首類為 Android 手機應用程式開發者所撰寫的 Java 程式碼之檔案目錄。

因為,Android 作業系統並非採用 Java 虛擬機器 ( Java Virtual Machine ) ,而是採用 Android 官方自行研發的 Dalvik 虛擬機器所以,當此 Java 程式碼檔案目錄下的 Java 程式碼檔案最終被 Java 編譯器 ( Java Complier ) 編譯.class 檔案後,會再經 Android SDK 中的 dex 工具轉換成 .dex 檔案 ( Dalvik Executable ) 。而 .dex 檔案才是真正能在 Android 作業系統的 Dalvik 虛擬機器中執行的檔案。

至於,您可能所知的 .apk 檔案,它其實只是整個 Android 手機應用程式開發專案的檔案建構完成後之壓縮封裝檔案。


在 Android Studio 的 Java 程式碼檔案目錄之名稱為 “java”,而 ADT 的 Java 程式碼檔案目錄之名稱為 “src” 。

  • 資源 ( Resource ) 檔案目錄:

    資源檔案目錄是指 Android 手機應用程式開發者提供給這個 Android 手機應用程式開發專案使用的非 Java 程式碼之材料檔案目錄。

    在資源檔案目錄下的檔案,它們多半最終會被 Android SDK 中的 aapt ( Android Asset Packaging Tool ) 工具軟體編譯成二進位檔案。

    無論是 Android Studio 或 ADT 的資源檔案目錄之名稱皆為 “res” 。

    還有,資源檔案目錄之下又細分了數項子目錄,無論是 Android Studio 或 ADT 的資源檔案目錄之各子目錄名稱也是皆為一致,我們將其列示如下。

    • drawable /

      此子目錄主要放置 Android 手機應用程式開發專案當中的圖形檔案 ( 如 PNG、JPEG或GIF ) 與其它圖形描述檔案。

    • layout /

      此子目錄主要放置 Android 手機應用程式開發專案當中的介面配置描述檔案。

    • value /

      此子目錄主要提供開發者建立一些 Android 手機應用程式開發專案當中常用字串型別的屬性資料檔案。其可包括字串 ( strings ) 、顏色代碼 ( colors ) 、字串陣列資料 ( arrays ) 等…。

    • color/

      此子目錄主要放置顏色狀態清單 ( Color State List ) 檔案。此種檔案是定義介面元件在不同狀態時的顏色變化清單。比如,某個按鈕沒被手機使用者按下是藍色、按鈕被手機使用者按下變為紅色。

    • menu/

      此子目錄主要放置選單 ( Menu ) 或操作列 ( Action Bar ) 描述檔案。

    • anim/

      此子目錄主要放置 Android 手機應用程式開發專案當中的動畫效果描述檔案。

    • raw/

      此子目錄主要放置不想要被 Android SDK 中的 aapt ( Android Asset Packaging Tool ) 工具軟體編譯的檔案。

      因為,在此子目錄下的檔案雖然也有 R.java 檔案的資源索引識別數字 ( resource ID ) ,但它並不會被編譯。 (  註:本文下方有關於 R.java 檔案之介紹 )

    • xml/

      此子目錄可放置其它上述子目錄未包含的 XML 格式檔案。
請注意!在預設的 Android 手機應用程式開發專案之中,它僅會列示有用到的檔案目錄。其餘部份,您可依您的需求自行新增子目錄與添加檔案。

另外,請您務必僅在 Android Studio 或 ADT 依步驟新增子目錄與添加檔案,而不要跳開 Android Studio 或 ADT 並直接至該專案檔案目錄之檔案總管中自行新增子目錄與添加檔案。
還有,資源檔案目錄之子目錄所存放的相關描述檔案或字串型別的屬性資料檔案,多半需依照 Android 自定的 XML 格式碼進行編寫。

不過,Android Studio 或者 ADT 皆提供有所見即所得 ( WYSIWYG ) 的使用者介面編輯器,提供開發者進行介面配置描述檔案之排版編輯工作。

  • 其它檔案目錄:
其它檔案目錄是指除了 Java 程式碼檔案目錄與資源檔案目錄之外的檔案目錄,我們認為 Android 手機應用程式開發的初學者在此有兩個檔案與兩個檔案目錄需要優先暸解:

    • AndroidManifest.xml 檔案:

      AndroidManifest.xml 檔案是存放著您的 Android 手機應用程式需要告知 Android 作業系統之重要基本資訊。 ( 如手機應用程式的 JAVA 套件名稱、內含的手機應用程式組件、使用權限的宣告等… )

      假若,您的 Android 手機應用程式並未在執行前告知 Android 作業系統關於它的重要基本資訊,則即使您的程式碼已完全無誤且完整,亦無法執行。

      由於,一個 Android 手機應用程式開發專案中一定不能沒有 AndroidManifest.xml 檔案,而且也一定僅能有一個 AndroidManifest.xml 檔案。

      因此,當您建立一個全新的 Android 手機應用程式開發專案後,Android Studio 或者 ADT 便會在您的專案之根目錄加上 AndroidManifest.xml 檔案。
      您可以為了開發的需求,修改  AndroidManifest.xml 檔案之細節內容。

      AndroidManifest.xml 檔案一樣是依照 Android 自定的 XML 格式碼進行編寫

    • R.java 檔案:

      由於,R.java 檔案名稱中的 R 字係指 Resource ( 資源 ) 之意。因此,由名稱您應該可以猜到 R.java 檔案可能跟資源檔案有關。

      沒錯!Rjava 檔案是做為資源檔案之參照存取機制。

      亦即當 Android 手機應用程式開發者在其開發專案中每增加一個資源類型的檔案時,則 Android Studio 或者 ADT 便會在 R.java 檔案當中自動加入一個專屬於該檔案的資源索引識別數字 ( resource ID ) ,以便您的 Java 程式碼可以去透過這個資源索引識別數字去參照存取該資源檔案。

      Rjava 檔案為一個 Java 程式碼檔案,它依資源檔案的類型設置了不同的子類別,在這些子類別之下再分別依實際狀況而宣告上述的資源索引識別數字 ( resource ID ) 之參數。

      請注意,R.java 檔案中的內容是由 Android SDK 中的 aapt ( Android Asset Packaging Tool ) 工具軟體所自動產生管理,因此,您不用也不能自行修改或刪除該檔案。

    • 素材 (Assets) 檔案目錄:

      素材檔案目錄與資源檔案目錄都是指 Android 手機應用程式開發者提供給這個 Android 手機應用程式開發專案使用的材料之檔案目錄,並且,存放在此的檔案一樣會被編譯

      但是,它不同的是:放置於該處的檔案,不會在 R.java 檔案之中產生資源索引識別數字 ( resource ID ) ,所以手機應用程式要存取此處檔案是以檔案目錄路徑作為識別。
      還有,相較於資源檔案目錄而言,在素材檔案目錄之下的子目錄與檔案皆可以任意的新增

      請注意!此素材檔案目錄並不存在於 Android Studio 的預設目錄中,需要自行新增建立;而 ADT 則具有此檔案目錄,不過預設是空的。

      一般而言,Android 手機應用程式開發者會比較少運用素材檔案目錄,通常會使用到素材檔案目錄者,多半是因為需要能夠在程式碼存取該素材檔案時可使用自定的檔案目錄路徑。

    • 函式庫 (Library) 檔案目錄:

      函式庫檔案目錄係指放置 Android SDK 主要函式庫之外的第三方函式庫之目錄,像是先前我們曾提過的 Volley HTTP Library 即為第三方函式庫的一種。

      不過,此處並不是可以直接在 Android Studio 或 ADT 中匯入第三方函式庫之檔案,而需要經過相關設定動作。



Android 手機應用程式開發專案的檔案目錄結構之實際畫面擷圖




在您於 Android StudioADT 建立 Android 手機應用程式開發專案 ( Android Application Project ) 之後,您會在您的 Android Studio 的專案 ( Project ) 子視窗或者在您的 ADT ( Android Development Tools ) 主畫面的 ”套件檢視”  ( Package Explorer ) 子視窗之中,看到一個以您所命名的專案名稱 ( Project Name ) 為首的完整檔案目錄結構。

至於,上述這些完整檔案目錄結構各自在 Android Studio 與 ADT 之實際位置,我們列示如下:



  • Android Studio


    下圖紫色箭頭指引處:素材 ( Assets ) 檔案的目錄位置 (註:預設無此目錄,需自行建立該目錄)。

    下圖綠色箭頭指引處:Java 程式碼 ( Java Codes ) 的目錄位置。

    下圖橘色箭頭指引處:資源 ( Resource ) 檔案的目錄位置。

    下圖藍色箭頭指引處:AndroidManifest.xml 的檔案位置。
Android 手機應用程式開發專案

下圖紅色箭頭指引處:R.java 的檔案位置。

下圖黑色箭頭指引處
:函式庫 ( Library ) 檔案的目錄位置。(註:預設無此目錄,需自行建立該目錄。此外,此處並不只是直接匯入第三方函式庫之檔案,還需要經過相關設定動作。)

Android 手機應用程式開發專案



  • ADT


    下圖綠色箭頭指引處:Java 程式碼 ( Java Codes ) 的目錄位置。

    下圖紫色箭頭指引處:素材 ( Assets ) 檔案的目錄位置。

    下圖橘色箭頭指引處:資源 ( Resource ) 檔案的目錄位置。

    下圖藍色箭頭指引處:AndroidManifest.xml 的檔案位置。

Android 手機應用程式開發專案

下圖紅色箭頭指引處:R.java 的檔案位置。

下圖黑色箭頭指引處
:函式庫 ( Library ) 檔案的目錄位置。 (註:此處並不只是直接匯入第三方函式庫之檔案,還需要經過相關設定動作。)

Android 手機應用程式開發專案



此篇網路教學講義就在此結束,感謝您的閱讀!

未來,敬請您等候此系列網路講義的下一篇文章之發表。

此篇講義的主要參考文獻來源Android Developers 官網

如果您對於Android手機應用程式開發有興趣,歡迎閱讀我們在網路上發表的Android手機應用程式開發教學系列講義。

我們編寫的 Android SDK 教學課程講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義Android 4.2 升級功能簡介Android 4.2 SDK & ADT Bundle 下載安裝教學2013年第1講: Android Application Project 之建立2013年最新 Android Studio 開發工具下載安裝教學最新 Android App 網路連線程式設計範例 (第一講) - Volley HTTP Library 入門教學Android App 與 Android Application Project 是什麼?Android 4.4 KitKat 與 Android 4.4 SDK 開發功能介紹Android SDK 下載安裝中文教學課程講義 ( 2013年11月新版,ADT Bundle )



喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結)謝謝!


著作權聲明


[Android 課程教學] Android App 與 Android Application Project 是什麼? 網路版本發表日:2013年10月21日

本講義之內文、排版等著作權或其他智慧財產權歸屬 孫傳雄 與 孫傳雄研究室 所有,非經書面同意禁止任何形式之翻印、全文轉貼或者授課使用行為。但例外允許在網際網路上引用此講義之網址連結。
本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。


版權所有 翻印必究