《ArcGIS Runtime SDK for Android开发笔记》——(5)、基于Android Studio构建ArcGIS Android开发环境(离线部署)
来源:互联网 发布:手机淘宝摇一摇在哪 编辑:程序博客网 时间:2024/05/21 18:45
1、前言
在上一篇的内容里我们介绍了基于Android Studio构建ArcGIS Runtime SDK for Android开发环境的基本流程,流程中我们采用的是基于Gradle的构建方式,在这种方式里主要通过设置maven仓库位置,设置编译选项、依赖版本在联网环境下下载对应SDK依赖包。
但是在网络情况不好的情况下这种方式就不行了,那怎么解决在离线环境或者内网环境实现开发流程呢?目前了解到的有两种方式:
1)配置内网环境maven仓库,预先缓存到内网环境下,然后离线调用。
2)采用直接拷贝引用方式,拷贝jar包、so库到对应第三方库支持位置,直接调用使用。
这两种方式各有各的优劣,看具体使用场景,在这里我们主要介绍第二种拷贝引用的方式。
转载请注明出处:http://www.cnblogs.com/gis-luq/p/4760377.html
2、离线部署流程
2.1、下载ArcGIS Runtime SDK for Android的SDK包
1) 登陆ArcGIS Runtime SDK for Android开发者资源中心。
2) 登陆后点击下载按钮、在下载页面下载对应SDK包
2.2、拷贝相关支持函数库到指定项目对应位置并添加引用
1)解压下载下来的zip包,SDK包中主要包含以下内容:
其中里面比较重要的有以下几项:1、doc —— 该版本SDK对应的API文档,官网一直都是最新的,需要查看旧版API或者指定版本API说明的的一般需要到这里查找2、lib-project —— aar格式的函数库,例如:arcgis-android-v10.2.6-2.aar3、libs —— jar和so格式的函数库,一般在项目中拷贝到项目文件夹下,引用即可,可实现离线部署4、samples——示例代码。官方所有示例代码都在这里,新版基于Android studio 开发环境其他说明:SDK包下载及说明也可以参考博文http://www.cnblogs.com/gis-luq/p/4735815.html
2)打开SDK包中lib文件夹,将jar包拷贝包对项目的lib文件夹下
将libs中的:arcgis-android-api.jar、arcgis-android-app-toolkit.jar、jackson-core-1.9.5.jar、jackson-mapper-1.9.5.jar、jcifs-1.3.17.jar这个5个jar包拷贝到新建Android项目HelloMap2中的../app/libs文件夹下
3)在项目的../java/main文件夹下创建jniLibs文件夹,并将armeabi、armeabi-v7a、x86三个文件夹拷贝到jniLibs文件夹下。
说明:其实这里关于如何在android studio配置java访问so库的方式有很好几种,在网上也有相关的说明博客,这里我是选了我认为相对最简单一种做了测试,并测试OK,所以用了这种方式。其他方式暂时没有测过
2.3、添加UI及代码信息
1)在布局文件activity_main.xml中添加mapview组件
<com.esri.android.map.MapView android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent"> </com.esri.android.map.MapView>
在这里我们注意到环境并没有识别到com.esri.android.map.MapView类,并提示异常。切换项目显示方式为project。
选中项目下app/libs/arcgis-android-api.jar右键设置Add As Library,添加之后“找不到com.esri.android.map.MapView类”的问题就没有了。
同时我们查看app下的build.gradle,发现增加了一条编译选项,这里我们用代码的方式直接加在这里也是可以的。
2)添加代码信息,实现MapView的UI和代码绑定,添加一个图层并显示出来
private MapView mapView = null;
this.mapView = (MapView)this.findViewById(R.id.map);//设置UI和代码绑定String strMapUrl="http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer";ArcGISTiledMapServiceLayer arcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer(strMapUrl);this.mapView.addLayer(arcGISTiledMapServiceLayer);
2.4、设置应用程序权限
对于绝大多数的ArcGIS Android apps的应用几乎都需要网络的支持;也有一些应用可能会需要访问设备的sdcard,需要对该卡有读写的权限;除此对于GIS来说最常用的功能就是定位,应用应该具备定位权限。 ArcGIS Android apps的MapView使用了OpenGL2.x,所以在android应用程序的配置文件AndroidManifest.xml中还需添加 OpenGL的支持,因此应用的配置文件至少包含下面的配置信息:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" />
2.5、编译运行应用程序
直接运行后我们还发现了这样的一个错误,提示需要忽略许可信息在打包选项中。
打开build.gradle(Module:app)设置排除相关信息
packagingOptions { exclude 'META-INF/LGPL2.1' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' }
重新运行编译,程序通过
同步博客:http://www.cnblogs.com/gis-luq作者:gis-luq 邮箱:luqiang.gis@foxmail.com
- 《ArcGIS Runtime SDK for Android开发笔记》——(5)、基于Android Studio构建ArcGIS Android开发环境(离线部署)
- 《ArcGIS Runtime SDK for Android开发笔记》——(4)、基于Android Studio构建ArcGIS Android开发环境
- 《ArcGIS Runtime SDK for Android开发笔记》——(6)、基于Android Studio的ArcGIS Android工程结构解析
- 《ArcGIS Runtime SDK for Android开发笔记》——(3)、ArcGIS Runtime SDK概述
- 《ArcGIS Runtime SDK for Android开发笔记》——(1)、Android Studio下载与安装
- 《ArcGIS Runtime SDK for Android开发笔记》——(10)、ArcGIS Runtime SDK支持的空间数据类型
- 《ArcGIS Runtime SDK for Android开发笔记》——(7)、示例代码arcgis-runtime-samples-android的使用
- 《ArcGIS Runtime SDK for Android开发笔记》——(2)、Android Studio基本配置与使用
- 《ArcGIS Runtime SDK for Android开发笔记》——翻译:ArcGIS Runtime SDK for Android 10.2.7发布
- ArcGIS Runtime SDK for Android 1.1 搭建开发环境说明
- 《ArcGIS Runtime SDK for Android开发笔记》——(8)、关于ArcGIS Android开发的未来(“Quartz”版Beta)
- ArcGIS Runtime for Android 开发环境配置
- 《ArcGIS Runtime SDK for Android开发笔记》——(9)、空间数据的容器-地图MapView
- 《ArcGIS Runtime SDK for Android开发笔记》——数据制作篇:紧凑型切片制作(Server缓存切片)
- ArcGIS Runtime SDK for Android教程——(一)介绍以及环境搭建
- 《ArcGIS Runtime SDK for Android开发笔记》——问题集:使用TextSymbol做标注显示乱码
- 《ArcGIS Runtime SDK for Android开发笔记》——数据制作篇:.geodatabase创建,创建时内容缺失问题总结
- Arcgis for Android开发环境
- 获取网络连接的实例
- 敏捷开发之Scrum扫盲篇
- 公司用的git版本控制系统,记录下几个常用的命令和步骤
- 内存分析工具 MAT 的使用
- 浙江大华股份有限公司笔试/面试总结
- 《ArcGIS Runtime SDK for Android开发笔记》——(5)、基于Android Studio构建ArcGIS Android开发环境(离线部署)
- 小坦克的FidderScript
- 禁用view的touch事件
- 项目管理软件
- 分布式服务框架 dubbo/dubbox 入门示例
- python 如何安装cffi
- Nignx ——1原理
- Java中的transient,volatile和strictfp关键字
- windows word2010 PPT