原文地址:

ArcGIS Runtime for Android开发教程V2.0(1)基本概念 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/arcgis_mobile/article/details/8113183

 

1、基本概念

1.1 Android简介

        2007年11月,Google推出移动操作系统Android,并宣称Android是首个为移动终端打造的真正开放和完整的移动操作系统。自此,基于Android的手机和平板电脑开始陆续出现,并迅速占领市场。

        Android基于Linux内核,开放源代码,由Linux内核、系统运行库、应用程序框架和应用程序组成,如下图所示。

  • Android核心系统服务基于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。内核作为一个抽象层,介于软件层和硬件层之间。
  • 系统运行库包括系统库和运行库。
    • 系统库包含一些C/C++库,能被Android系统中不同组件使用。它们通过Android应用程序框架为开发者提供服务。
    • 运行库由核心库和Dalvik虚拟机构成。核心库提供了Java编程语言核心库的大多数功能,每个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
  • 应用程序框架为应用程序开发者提供各种API,Android应用程序架构中的各种控件、服务都可以被复用。
  • 应用程序就是Android系统上提供各种功能,能与用户进行交互的软件了。Android系统提供了拨打电话、收发短信、联系人、桌面等基本应用程序。开发人员基于应用程序框架提供的API,就可以开发各式各样的应用程序了。

现在,基于Android系统的手机和平板电脑已经随处可见。兴许此刻,您就是在用Android平板电脑浏览ArcGIS_Mobile(http://blog.csdn.net/arcgis_mobile)博客,了解ArcGIS Runtime for Android开发有关的内容。互联网上关于Android的资源也非常丰富。此处不再继续展开关于Android的介绍,具体请参考Android开发者网站(http://developer.android.com)。

1.2 ArcGIS Runtime for Android简介

        ArcGIS Runtime SDKs for Smartphones and Tablets(http://www.esri.com/software/arcgis/smartphones/develop)是Esri为开发者提供的移动应用开发包,目前支持IOS、Android、Windows Phone三大主流移动操作系统。只要注册了Esri全球账号,就可以免费下载各个版本的开发包以及其它相关资料。ArcGISRuntime SDK for Android官方页面如下图所示。

在ArcGIS Runtime SDKfor Android官网,可以在线浏览帮助页面、下载开发包、查看开发包对系统的要求、如何安装开发包等等。另外,页面会列出新的博客和应用信息,为用户提供最新的技术资源。

        ArcGIS Runtime SDK for Android通过ArcGIS Server REST服务获取数据和服务资源。Esri发布了GeoServices REST Specification(http://www.esri.com/industries/landing-pages/geoservices/geoservices.html),这一标准规定了ArcGIS REST Service各种接口的访问参数及返回数据的结构,ArcGIS Runtime SDK forAndroid正是基于这一标准封装的。其实,ArcGIS基于REST接口的API,包括ArcGIS Runtime SDK for Android/IOS/Windows Phone,ArcGIS API for Flex/Silverlight/JavaScript,以及ArcGIS Runtime SDK for Java/.NET,都是基于这一标准进行封装的。尽管不同平台、不同语言的开发包有其自己的特性,但其对应服务端的编程模型是一致的。下图能很好的说明这一点。

除了ArcGIS Server,ArcGIS Runtime SDK for Android还可以通过Portal API轻松访问ArcGIS Online上的资源。有关Portal API,后面章节会详细介绍。

截止目前,ArcGIS Runtime SDKfor Android最新版本是2.0。与0.9版本比较,1.0以后的版本,SDK架构发生了很大的变化。主要变化在于核心功能改由C/C++编写,SDK层(Java)通过JNI的方式调用,以此提高效率。因此,需要支持OpenGLES2.0的GPU。之前已经有基于0.9版本的开发教程,但是已经不适用于1.0及以后的版本。这也是基于2.0版本,重新编写开发教程的原因。

ArcGIS Runtime for Android开发教程V2.0(1)基本概念的更多相关文章

  1. ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView

    原文地址: ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http:/ ...

  2. ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map

    原文地址: ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NE ...

  3. ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置

    原文地址: ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.c ...

  4. ArcGIS Runtime for Android开发教程V2.0(8)基础篇-----地图事件

    转自:http://blog.csdn.net/arcgis_mobile/article/details/8263283 ArcGIS Runtime sdk for Android为我们提供了丰富 ...

  5. 【10.2.3】ArcGIS Runtime for Android搭建开发环境过程中问题具体解释

    一.Visual Studio Ultimate2012安装过程问题 1.问题描写叙述 安装完毕后,您将看到一条消息,指示安装程序已完毕.但并非全部的功能具有已正确安装.以及下面警告消息: Micro ...

  6. ArcGIS Runtime for Android 使用异步GP服务绘制等值线

    关于基于Android上ArcGIS Server GP服务的调用,已经有前辈给出了很好的例子: http://blog.csdn.net/esrichinacd/article/details/92 ...

  7. 《ArcGIS Engine+C#实例开发教程》第三讲 MapControl与PageLayoutControl同步

    原文:<ArcGIS Engine+C#实例开发教程>第三讲 MapControl与PageLayoutControl同步 摘要:在ArcMap中,能够很方面地进行MapView和Layo ...

  8. (转)ArcGIS Runtime for Android 使用异步GP服务绘制等值线

    关于基于Android上ArcGIS Server GP服务的调用,已经有前辈给出了很好的例子: http://blog.csdn.net/esrichinacd/article/details/92 ...

  9. Android开发教程大全介绍

    Android是由谷歌在2007年推出的一个开放系统平台,主要针对移动设备市场,目前版本为Android 4.0.Android基于Linux,开发者可以使用Java或C/C++开发Android应用 ...

随机推荐

  1. LINQ中实现 In 与 Not In

    T-SQL的IN: Select ProductID, ProductName, CategoryID From dbo.Products , ) T-SQL的NOT IN: Select Produ ...

  2. 6.JAVA_SE复习(集合)

    集合 结构图: 总结: 1.集合中的元素都是对象(注意不是基本数据类型),基本数据类型要放入集合需要装箱. 2.set与list的主要区别在于set中不允许重复,而list(序列)中可以有重复对象. ...

  3. PHP 魔术方法 __sleep __wakeup(四)

    串行化serialize可以把变量包括对象,转化成连续bytes数据. 你可以将串行化后的变量存在一个文件里或在网络上传输. 然后再反串行化还原为原来的数据. 你在反串行化类的对象之前定义的类,PHP ...

  4. PHP中session的使用

    1.初始化(使用session前都要使用,一个页面用一个就可以了) session_start(); 2.保存 $_SESSION[$sessionName]=$value; (value可以是dou ...

  5. javascript实现URL不缓存的方法

    <script> document.write("<s"+"cript type='text/javascript' src='/js/test.js? ...

  6. 怎样在自己的网站上做自动生成当前url的二维码

    $todoString="www.maomii.com"; generateQRfromGoogle($todoString); /** * google api 最多4296个字 ...

  7. hdu 4679 Terrorist’s destroy 树形DP

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=4679 题意:给定一颗树,每条边有一个权值w,问切掉哪条边之后,分成的两颗树的较大的直径*切掉边的权值最小? ...

  8. PAT乙级真题1002. 写出这个数 (20)(解题)

    读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每 ...

  9. JQuery的鼠标滚动事件

    jQuery(window).height()代表了当前可见区域的大小,而jQuery(document).height()则代表了整个文档的高度,可视具体情况使用. 注意当浏览器窗口大小改变时(如最 ...

  10. 【NHibernate】HQL入门

    在NHibernate 中 HQL 可以帮我们转成最终依赖数据库的查询脚本: 语法也甚是强大,适配主流数据库, HQL不支持union,要想取多个表数据可以做两次单独查询. IQuery query ...