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

http://jileniao.net/androidstudio-1-windows.html

http://blog.csdn.net/meegomeego/article/details/38555943

《ArcGIS Runtime SDK for Android开发笔记》——(6)、基于Android Studio的ArcGIS Android工程结构解析的更多相关文章

  1. 《ArcGIS Runtime SDK for .Net开发笔记》--介绍与环境搭建

    一. ArcGIS Runtime SDK for .NET介绍 ArcGIS Runtime SDK for .net是一款针对windows平台的开发包.能够在开发出在windows phone, ...

  2. 《ArcGIS Runtime SDK for .NET开发笔记》--三维功能

    介绍 在ArcGIS Runtim SDK for .NET 10.2.6中,新添加了三维地图功能.在ArcGIS中,我们将三维地图称为Scene(场景),所以在Runtime SDK SDK for ...

  3. 《ArcGIS Runtime SDK for .NET开发笔记》 --Hello Word

    这里我们将创建第一个用于显示地图的APP. 1.新建一个WPF程序 首先我们打开Visual Studio,选择新建项目. 选择已安装——模板——Windows桌面——WPF应用程序  2.添加Run ...

  4. 《ArcGIS Runtime SDK for .NET开发笔记》--在线编辑

    介绍 ArcGIS可以发布具有编辑功能的Feature Service.利用Feature Service我们可以实现对数据的在线编辑. 数据制作参考: https://server.arcgis.c ...

  5. 《ArcGIS Runtime SDK for Android开发笔记》——(3)、ArcGIS Runtime SDK概述

    1.前言 ArcGIS Runtime SDK是一整套用于构建原生及跨平台的地图应用程序的开发包,包括移动设备的Android.iOS.Windows Phone,针对桌面的.Net.Java.OSX ...

  6. ArcGIS Runtime SDK for WPF已不更新,后续将被ArcGIS Runtime SDK for .NET取代

    ArcGIS Runtime SDK 10.2.5 for WPF is now available! by mbranscomb and Rex Hansen on January 27, 2015 ...

  7. 《ArcGIS Runtime SDK for Android开发笔记》——(11)、ArcGIS Runtime SDK常见空间数据加载

    ArcGIS Runtime SDK for Android 支持多种类型空间数据源.每一种都提供了相应的图层来直接加载,图层Layer是空间数据的载体,其主要继承关系及类型说明如下图所示: 转载请注 ...

  8. 《ArcGIS Runtime SDK for Android开发笔记》——(10)、ArcGIS Runtime SDK支持的空间数据类型

    1.前言 移动端的数据来源非常重要,它决定了移动端功能的实现.早期的ArcGIS Android API中,主要以接入在线的数据源为主,因此主要实现在线的地图浏览.查询和路径分析.地理处理等从操作:在 ...

  9. ArcGIS Runtime SDK for iOS开发地图图层-图形图层

    注:本文翻译自:https://developers.arcgis.com/ios/objective-c/guide/creating-a-graphics-layer.htm        创建图 ...

  10. ArcGIS Runtime SDK for WPF学习笔记(一)

    本节主要讲解如何安装ArcGIS Runtime SDK,以及移除注释与水印. 附上ArcGIS Runtime SDK for .NET的官方操作手册网址:https://developers.ar ...

随机推荐

  1. 梯度下降&随机梯度下降&批梯度下降

    梯度下降法 ​ 下面的h(x)是要拟合的函数,J(θ)损失函数,theta是参数,要迭代求解的值,theta求解出来了那最终要拟合的函数h(θ)就出来了.其中m是训练集的记录条数,j是参数的个数. 梯 ...

  2. Flume启动报错[ERROR - org.apache.flume.sink.hdfs. Hit max consecutive under-replication rotations (30); will not continue rolling files under this path due to under-replication解决办法(图文详解)

    前期博客 Flume自定义拦截器(Interceptors)或自带拦截器时的一些经验技巧总结(图文详解)   问题详情 -- ::, (SinkRunner-PollingRunner-Default ...

  3. Cocoapds pod install时报错 :The sandbox is not sync with the Podfile.lock

    解决方法简单:仅供其他小伙伴参考 删除项目工程本地文件夹中的xxx.workspace和Podfile.lock文件,然后重新pod install即可

  4. pytorch 检测图片中是否有人

    照搬pytorch官方代码,只是将数据集换成了INRIAPerson数据集中的train和test文件夹. 贴下代码和效果,代码是官方的,就不详细解释了. # License: BSD # Autho ...

  5. CSS3中的vh、vw及其应用场景

    需求:我们项目的需求是 一.vh   vw vw和vh是相对于视口(viewport)的宽度和高度.由于现在移动设备的屏幕尺寸之差别,如果仍然根据屏幕的物理分辨率来设计网页,效果很难统一,因此html ...

  6. hdu3746 KMP-next数组的应用

    Cyclic Nacklace Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  7. hutool http+天气预报

    中国天气接口:http://www.weather.com.cn/data/sk/地址.html,只显示当天. sojson接口:http://t.weather.sojson.com/api/wea ...

  8. FCN用卷积层代替FC层原因(转)

    分类任务 CNN对于常见的分类任务,基本是一个鲁棒且有效的方法.例如,做物体分类的话,入门级别的做法就是利用caffe提供的alexnet的模型,然后把输出的全连接层稍稍修改称为自己想要的类别数,然后 ...

  9. 转 mysql front安装与使用教程 mysql 工具

    mysql front安装与使用教程 由 kaikai0220 创建,Alma 最后一次修改 2018-04-25 mysql front一款小巧的管理Mysql的应用工具,那么这个工具该如何安装和使 ...

  10. JedisCluster 链接redis集群

    先贴代码: <!-- redis客户端 --><dependency>  <groupId>redis.clients</groupId>  <a ...