加密ArcGIS离线地图及其在Android上的实现(3)

Android程序中,获取地图数据只需要调用一个Java方法就可以:

result = jni.getEncryptTile(deviceId, location, bundleBase, level, row, col);

现在,即使反编译了Android程序中的dex文件,你也无法知道这句代码背后调用的动态链接库中实际的算法。

下面是加密ArcGIS离线地图在Android上的效果:

image

图 2 Android上显示加密离线地图的效果

附录:Android上进行JNI开发的步骤 准备开发环境

1. 下载安装Cygwin:,注意安装时需要选择Devel工具包以及vim(用以编辑环境变量)。

2. 下载Android NDK,我使用的是r5版本:,解压到本地磁盘。

新建一个Java类

在Android工程中新建一个Java类,注意”native”标记:

package com.esri.wuyf;

public class JNI {

public native byte[] getEncryptTile(String deviceId, String location, String bundleBase, int level, int row, int col);

}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/pxxyz.html