ArcGIS Runtime SDK for Android 10.2.5版本在年前发布,其中一个重大的变化是:新版本使用了新的开发环境,在10.2.5版本中Esri使用了官方提供的新的Android开发工具Android Studio,跟上时代的步伐,而且ArcGIS
Runtime SDK for Android在Bintray平台上创建了Esri自己的Maven仓库。在Bintary平台上可以快速方便的发布我们自己的软件版本,最值得欣喜的是,Esri的Android项目现在通过高大上的Gradle进行构建,通过Android Studio我们之间创建Gradle项目,下面我们来看看如何搭建新的ArcGIS Runtime SDK forAndroid开发环境。
1 IDE获取
Google官方对于Android的开发建议使用Android Studio工具,该工具有哪些优势在这里就不在进行阐述了,感兴趣的可以去百度或Google搜索一下,除了Android Studio我们当然还可以使用Intellij IDEA这个开发工具,不过Intellij
IDEA是收费的工具,下面列出这两个工具的下载地址:
- Android Studio
下载地址:http://developer.android.com/sdk/index.html
- Intellij IDEl
Intellij IDEA
下载地址:http://www.jetbrains.com/idea/download/
1 IDE安装
安装步骤很常规,双击AndroidStudio的安装程序,采用默认的安装目录,点击下一步直至完成。安装过程截图如下:
点击finish完成安装
选择第一项,进行配置:
1 Gradle配置
Gradle是近来比较流行的一个系统构建工具,你可以通过编译自己的构建文件(build.gradle)来自定义构建流程。一个Gradle项目的构建文件是在项目的根目录下,您可以在项目的根目录下找到构建文件(build.grade)。在开发ArcGIS
for Android的Gradle项目时需要配置两部分的依赖管理内容:
1) 配置project的ArcGISRepository(Esri ArcGIS maven)仓库位置
2) 配置appmodule 的ArcGIS Runtime SDK for Android依赖。
1.1 ArcGIS Repository配置
打开根目录下的构建配置文件build.gradle文件,添加仓库配置,如下:
allprojects {
repositories {
jcenter()
// Add the following arcgis repository
maven {
url‘http://dl.bintray.com/esri/arcgis‘
}
}
}
是不是很简单,这样你所需的ArcGIS的jar包就会自动下载到本地的仓库里了,下次再建项目时需要引用ArcGIS 的jar时,他会去你本地直接查找相关jar引入到你的项目里,是不是很方便。
1.2 App Module配置
App Module中的build.gradle文件适合用来放特殊的指令和任务。一个ArcGIS Android app需要ArcGIS Android API library工程AAR bundle。一旦在project级别的build.gradle文件中配置好了ArcGIS的仓库,则可以再这个文件中声明ArcGIS
Android的依赖。
1.2.1 ArcGIS依赖配置
dependencies {
...
// Add the ArcGIS Android 10.2.5 API
compile ‘com.esri.arcgis.android:arcgis-android:10.2.5‘
}
引用arcgis的jar进行项目编译。
1.2.2 Packaging配置
在生成APK时我们可能不希望将一些文件打包到APK中,这时我们可通过下面的配置将所需文件排除APK文件中:
packagingOptions{
exclude ‘META-INF/LGPL2.1‘
exclude ‘META-INF/LICENSE‘
exclude ‘META-INF/NOTICE‘
}
1.2.3 Permissions和Features配置
对于绝大多数的ArcGIS Androidapps的应用几乎都需要网络的支持;也有一些应用可能会需要访问设备的sdcard,需要对该卡有读写的权限;除此对于GIS来说最常用的功能就是定位了所有,应用应该具备定位权限。ArcGIS Android
apps的MapView使用了OpenGL2.x,所以在配置文件中还需添加OpenGL的支持,因此应用的配置文件至少包含下面的配置信息:
<uses-permissionandroid:name="android.permission.INTERNET" />
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
OK到此环境配置结束,不用再到处拷贝jar是不是很欣喜。