1、前言
Android Studio 是第一個Google官方的 Android 開發環境。其他工具,例如 Eclipse,在 Android Studio 發布之前已經有了大規模的使用。為了幫助開發者轉向 Android Studio,谷歌已經寫出一套遷移指南。Google 同時也發布聲明稱,在接下來的幾個月里,他們會為 Android Studio 增加一些性能工具,Eclipse 里現有的 Android 工具會通過 Eclipse 基金會繼續支持下去。
同時為了簡化 Android 的開發力度,Google 決定將重點建設 Android Studio 工具。Google 會在今年年底停止支持其他集成開發環境,比如 Eclipse。
對於ArcGIS Runtime SDK for Android開發來說,從2015年1月15日,發布ArcGIS Runtime SDK for Android v10.2.5版本開始。默認支持android studio開發環境,示例代碼開發環境也基於Android Studio進行了重新的調整。Eclipse插件被棄用。並且不再提供的Eclipse IDE工具插件的形式,但是,它是可以繼續使用jar包引用方式通過Eclipse完成開發工作。所以我們針對目前主流的開發環境,對ArcGIS Android工程結構做一個簡單解析。
2、工程結構解析
在Android Studio中,提供了以下幾種項目結構類型用來顯示項目資源
- Project:——Project 視圖,按照Windows文件夾的樣子,顯示所有項目資源
- Packagers:—— 包管理視圖,按照包名的分類,顯示所有項目資源(圖片資源按文件夾的所屬關系顯示)
- Scratches:——暫時不知道是什么,歡迎補充
- Android:——Android 視圖(默認的顯示方式)
- Project Files:——Project文件視圖,這里僅顯示工程及模型的主要信息
- Problems:——問題視圖,編譯階段有問題的文件會顯示在此窗口
- Production:——成果視圖,這里僅顯示項目中的Moudle
- Tests:——測試視圖,AndroidStudio會把自動生成的工程測試類顯示在此窗口
2.1、Android結構類型
創建一個新的ArcGIS Runtime SDK for Android工程之后,展開工程,可以看到整個android工程目錄如下圖所示:
根據上圖,可以發現ArcGIS項目與普通的Android項目基本相同,下面來整體介紹一下ArcGIS Android的項目結構:
1) manifests文件夾
該文件夾下只有一個清單文件。AndroidManifest.xml是Android應用程序中最重要的文件之一。它是Android程序的全局配置文件,是每個 android程序中必須的文件。描述了package中的全局數據,包括package中暴露的組件 (activities, services, 等等),以及他們各自的實現類,同時定義了app的用戶權限信息,例如:能否訪問網絡,能否訪問GPS,能否訪問存儲等。
2) java文件夾
存放java源碼的目錄,目錄里的文件是根據package結構管理的。
com.gis_luq.hellowword 源代碼
目錄com.gis_luq.hellowword (androidTest)
單元測試目錄
3) res文件夾
存放應用程序所用到的資源文件,配置信息。
- drawable文件夾——放置應用程序圖標信息,一般分為mdpi、hdpi、xhdpi、xxhdpi。
- layout文件夾——放置應用程序UI布局組件。
- menu文件夾——放置UI菜單組件。
- values文件夾——dimens.xml(UI組件布局位置信息)、string.xml(文本信息)、styles.xml(樣式信息)
4) Gradle Scripts(Gradle構建腳本)
通過編譯自己的構建文件(build.gradle)來自定義構建流程。
- build.gradle(Project:HelloMap)——工程級別的構建腳本(ArcGIS Maven倉庫的位置一把設置在這里)
- build.gradle(Module:app)——組件級的構建腳本(ArcGIS Runtime的編譯版本,打包選項設置一般在這)
- proguard-rules.pro(ProGuard Rules for app)——混淆規則
- gradle.properties(Project Properties)——項目范圍Gradle設置(項目中包含的Moudle)
- settings.gradle(Project Settings)——定義項目包含哪些模塊
- local.properties(SDK Location)——SDK/NDK配置信息
2.2、 Project結構類型
按照Windows文件夾的樣子,顯示所有項目所有資源信息
1) Main Project(HelloMap)——頂級文件夾,項目根目錄
這將是整個項目工作區(僅局限於與項目相關的內容)。例:HelloMap是HelloWorld應用程序的名稱,文件夾下包括項目所有內容
2) .gradle
Gradle構建系統的相關設置信息。
3) .idea
Android Studio (AS)特定的項目元數據信息存儲文件. (類似於Eclipse 中的project.properties文件)
3) app
項目模塊信息
- build——app模塊build編譯輸出的目錄
- libs——app模塊的依賴庫
- src——app模塊的代碼文件
- build.gradle ——app模塊的gradle編譯文件
- app.iml ——app模塊的配置文件
- proguard-rules.pro ——app模塊proguard文件
4) build
整個工程的的編譯輸出目錄
5) gradle
gradle的wrapper包的存儲位置,及配置信息。
6) 其他
- build.gradle ——項目的gradle編譯文件
- settings.gradle ——定義項目包含哪些模塊
- gradlew—— 編譯腳本,可以在命令行執行打包
- local.properties—— SDK/NDK配置信息
- helloMap.iml ——項目的配置文件
7) External Libraries
項目依賴的Lib, 編譯時自動下載的。例如需要的android SDK支持,jdk,支持,ArcGIS Runtime SDK支持,都會顯示在這里。
3、參考資料
http://www.android-studio.org/index.php/2013-09-23-03-56-08/news/171-android-studio-cover-eclipse
http://www.cnblogs.com/gis-luq/p/4765993.html
http://www.mayflygeek.com/archives/145/?utm_source=tuicool