一、Android 專案目錄結構
Android的專案,主要可分為3個部分:分別是 manifest、java 和 res,下面以本篇範例-Marriage Suggestion App-的專案目錄結構來做說明。
1. manifest
Android App 整體資訊的主要設定檔,內有一個預設名稱為 AndroidManifest.xml 的檔案。設定檔的內容使用XML格式,使用標籤(tag)來執行一些設定。
[用心去感覺] manifests 意思為「表明」
2. java
放置 Java 原始程式,子目錄名稱為 [Company Domain(inverse) + Application name],裡面有一個預設的 Activity 元件 MainActivity.java。
3. res
為 resource 的縮寫,專案所需的 UI 相關檔案,如 layout、圖像與文字。
- drawable : 圖像檔案資源,例如 png、jpg……圖形檔案
- layout : UI 的 layout
- values : UI 需用到的文字 (strings.xml)、顏色等一些常數資料
4. Gradle Scripts
Gradle 簡單說就是「專案自動化建構工具」。它的應用不僅在 Java 領域,也可和其他語言的開發環境搭配使用。
該目錄儲存與 Gradle 建置系統相關的設定檔,Gradle 是 Android Studio 採用的全新 App 建置系統。每一個 App 可以有多個模組,例如一個音樂播放 App,可以包含行動電話、平板電腦、穿戴式三個模組,每一個模組都可以被建置成一個獨立的 App。
在Gradle Scripts目錄有下列兩個主要的設定檔,它們都是Groovy格式的文字檔:
- build.gradle(Project:專案名稱):應用程式最頂端的Gradle設定檔。以前面建立的應用程式專案來說,名稱是「build.gradle(Project:HelloAndroid)」。
- build.gradle(Module:模組名稱):每一個模組的Gradle設定檔。以前面建立的應用程式專案來說,名稱是「build.gradle(Module:app)」。
二、Android 的 MVC 架構
為了實現 MVC(Model-View-Controller)架構,Android 將 APP 的開發分成三大部分:
- Model:業務邏輯 (business logic) 處理,比如資料庫、網絡、演算法操作,耗時的任務等都在model處理。
- View:處理顯示的部分,XML布局可以視為View,顯示Model的結果。
- Controller :在Android中,Activity處理用戶交互問題,因此可以認為Activity是控制器,例如,
- Activity讀取View的資料(eg. 讀取當前EditText控制器的資料)
- 控制用戶輸入(eg. EditText控制器資料的輸入)
- 向Model發送資料請求(eg. 發起網絡請求等)。
References
Android Tutorial 第一堂(3)開始設計 Android 應用程式
http://www.codedata.com.tw/mobile/android-tutorial-the-1st-class-3-app-project/
Android Studio 專案目錄、架構與結構 ( 寫得好好,還有範例碼 :D )
http://www.smalljacky.com/programming-language/android/android-studio-project-directory-structure/
androidbmi : 什麼是重構 (有重構範例,很值得一探究竟!)
https://code.google.com/p/androidbmi/wiki/BmiRefactor
知乎 - 你怎么看待在 Android 中应用MVC,是否有必要抽象出独立于 Activity 的 Controller ?
https://www.zhihu.com/question/19766132
Github - LuckyJayce/MVCHelper
https://github.com/LuckyJayce/MVCHelper
框架模式 MVC 在Android中的使用
http://blog.csdn.net/feiduclear_up/article/details/46363207
An Investigation into Flow and Mortar
https://www.bignerdranch.com/blog/an-investigation-into-flow-and-mortar/
前端之Android入门(3):MVC模式(上)
http://isux.tencent.com/learn-android-from-zero-session3.html
沒有留言:
張貼留言