基于Android平台的软件开发若干个关键技术研究

摘要:随着移动智能终端的飞速发展和广泛普及,移动GIS应用正迅速迅速成长,并且成为最有发展前景的热点之一。作为移动GIS应用的分支,基于Androi平台的软件开发得到了长足的发展。本编文章是《基于Andro平台的软件开发若干个关键技术研究》的笔记。

目录

  • 首先针对Android系统架构做了较为详尽的介绍
  • 然后分析了Android平台软件开发的具体流程
  • 最后深入探讨了Android平台开发中涉及的二次开发、数据存储、LBS服务等关键技术

关键字

移动GIS

Andriod

二次开发

LBS服务

数据存储

0、引言

移动式操作系统较传统的移动终端的优点:

  • 搭载开源应用平台
  • 具备高速计算能力
  • 实现多功能人机交互应用

1、Android系统架构

  • Android属于移动式操作系统,是一款开源的基于Linux内核的开放式、免费版的嵌入式开发平台。
  • 其系统架构可划分为4层结构:

操作系统层(Linux内核)

中间件层(各种库和运行环境)

应用程序框架层

应用程序层

  • Android系统架构的4层结构之间处于良好的隔离状态,这种结构可以保证软件开发人员专注于应用需求。

2、Android软件开发流程

2.1 Android 平台环境搭建

基于Android平台的应用程序开发主要以Java语言作为主体(使用***C/C++语言属于特定需求下的要求,如图像加密算法、视频音频播放器、3D地图渲染引擎***等),这与Android系统基于Linux内核开发关系很大。Android平台具有可移植性、开源性、开放性和灵活性强等特点。其开发环境所包含的开发工具和软件开发包种类繁多。主要组成部分有:

在搭建Android平台开发环境的过程中,还涉及PC操作系统环境变量的设置(比如在系统变量中添加JAVA_HOME值、CLASSPATH值和Path值;在用户变量中添加PATH值等)。搭建完之后,应用程序开发人员就可以进行基于Android平台的软件开发工作。

2.2Android启动流程

Android系统启动——>

Init进程启动

第一个进程,载入内存。初始化所有设备驱动程序和数据结构。完成进程引导;初始化脚本文件init.rc和init.xxx.rc。启动服务机制servicemanager、zygote)

Native服务启动

建立Android运行空间。建立Java Runtime;建立虚拟机。运行ZygoteInit.main()函数;登记xx端口,进入Zygote服务框架;建立Socket通讯,接受ActivityManagerService的请求、Fork应用程序等

System Server Android服务启动

fork进程SystemServer,建立服务循环框架;建立init2线程;建立New Service和AddService等服务

Home启动

使用xxx_systemReady()通知各个服务;回调ActivityManagerService_systemReady等函数。启动HomeActivity

——>加载应用程序

3、关键技术分析

基于Android平台进行移动GIS应用软件开发所用到的关键技术设计很多方面

3.1二次开发技术

移动GIS的二次开发平台主要有以下几类:ESRI公司提供的ArcGIS for iOS/Android/Windows Phone开发平台、PB MapInfor 公司提供的MapInfor MapX mobile系列、超图公司推出的SuperMap iMobile 开发平台等等,上述移动GIS二次开发平台都面向嵌入式操作系统Android应用。

其主要围绕来那个方面进行:

  • 面向底层组建式开发技术

主要依托JNI机制实现,通过JNI机制的作用,利用谷歌公司推出的Android NDK二次开发工具进行技术上的具体实现。

  • 面向应用层开发技术

是当前Android终端应用开发的主流,这是因其周期短、技术成熟等优势所决定的,这类技术开发主要依托于Framework开发框架进行。谷歌公司提供了开源的Android Framework 开发框架。借助于Java通用类库,并结合Android特有类库,技术人员便能基于Android平台进行面向功能需求的应用程序二次开发。

面对的主要问题

对应权限的获取

构建Android UI界面

资源文件的取得及使用

3.2 数据存储技术

Android平台的数据存储方式主要分为5种:

在上述5类数据存储技术中,内部存储涉及的3类技术主要应用Andriod终端客户端应用,主要体现于终端内置存储器和扩展存储卡中;外部存储涉及的二类技术主要应用于移动GIS的分布式存储和云端存储机制。

3.3 LBS服务技术

基于位置服务技术,即Location Based Service 技术,其技术原理是通过获取移动终端的位置信息,借助于无线通信网络,依托于具备海量空间数据的GIS平台,为移动终端提供基于位置的海量信息服务和应用。在Android终端上实现LBS服务所涉及到的关键技术有很多,在这里主要谈论一下几类 ,LBS服务部分关键技术如图所示:

结束语

移动GIS的快速发展为便携式智能终端的应用带来了前所未有的发展机遇,层出不穷的移动GIS应用为人们的日常生活带来了极大的便利,面向移动终端的应用开发将迎来一个爆炸式的发展阶段。

基于Android平台的移动终端应用程序的开发是一项复杂的工程,它涉及Android平台的体系架构分析、应用需求分析、关键技术实现等难题。

基于Andro平台的软件开发若干关键技术研究(笔记)相关推荐

  1. 基于Android平台im软件开发,基于Android平台IM软件多媒体数据传输保护

    Protection for Instant Messanger Media data Transmission Based-on Android WU Weina 1 吴维娜(1992- ),女,北 ...

  2. 【人脸识别】基于PCA和SVM的人脸识别关键技术研究与实现附matlab代码

    1 简介 人脸识别是计算机视觉和图像模式识别领域的一个重要技术.主成分分析(PCA)是人脸图像特征提取的一个重要算法.而支持向量机(SVM)有适合处理小样本问题,高维数及泛化性能强等多方面的优点.文章 ...

  3. 读《环境光遮蔽技术在图形图像中若干关键技术的研究》总结-其一

    末尾附文章引用 文章架构: 开篇先写Abstract,对本文章的研究内容进行了总结性概述: Abstract怎么写? 1.点名研究内容,研究意义,提出当下需要解决的问题. 2.讲本文章解决这些问题的思 ...

  4. 基于平台的软件开发(一)

    什么是平台? 任何软件的开发和运行,都需要基于某种平台 编程平台包括很多种类 – 计算机硬件 CPU:intel.AMD – 操作系统 Unix.Linux.Windows.Android.iOS – ...

  5. 基于组件的.NET软件开发(1)

    基于组件的.NET软件开发 前言 随着软件技术的飞速进步,现代的大型软件都广泛采用了基于软件组件的开发方式.以成熟的CBD(Component Based Design:基于组件的系统设计)理论为指导 ...

  6. 基于Mozilla平台的扩展开发(续)----XPCOM组件篇

    源代码下载:HelloWorld示例.rar 在<浅谈基于Mozilla ThunderBird的扩展开发>这篇入门文章中简单介绍了基于Mozllia平台进行扩展开发的基础知识,但仍然欠缺 ...

  7. 卡路里计算JAVA_pedometer 这是一个基于android平台的软件,用于计算你走路的步数,算出消耗的卡路里,以达到健 238万源代码下载...

    详细说明:这是一个基于android平台的软件,用于计算你走路的步数,算出消耗的卡路里,以达到健康的管理.-This is an android platform based software, us ...

  8. Symbian S60平台手机软件开发

    求教 小弟虚心求教,哪位给我讲讲Symbian S60平台手机软件开发的相关内容,最好能指导一下小弟. 我正在准备制作一个课题,有关手机软件开发的,正要补充相关知识. 走过路过的能推荐点东西的也谢谢了 ...

  9. 低代码/无代码平台在软件开发中的应用

    随着技术的不断发展,软件开发也在不断地进步.低代码/无代码平台已经成为软件开发的一个新的趋势.在这篇文章中,我们将深入探讨低代码/无代码平台在软件开发中的应用,包括它们的优势.如何选择合适的平台以及如 ...

最新文章

  1. php合并播放mp4文件_如何将百度的流畅版视频m3u8合并为正确的mp4文件?
  2. mujava 软件测试实验报告
  3. 【STM32】 keil软件介绍--工具栏
  4. MySQL(八)事务的隔离级别
  5. SQL Server添加Check约束
  6. android studio运行项目快捷键,Android Studio 快捷键大全
  7. 智能推送LeetCode中文站点题目思路解析
  8. 身份证号码归属地查询接口分享
  9. C++编程导出XVID编码的AVI视频
  10. ResHacker 3.5 汉化绿色版
  11. 工业应用加速推进,AR即将全面爆发
  12. 3种漂亮的登录表单页面css3+html5模板
  13. HTML5笔记Day_01注释;标签;特殊符号;块元素和行内元素
  14. 《推荐系统实践》读书笔记3
  15. 忧天的“杞人” worry wart
  16. AI机器人系统工作中是如何识别空号的
  17. 雷神的 h264 编码例子
  18. 2022.10.14 SAP PP 模块学习记录
  19. Spring5之IOC
  20. java基于springboot+vue的园区入驻停车管理系统

热门文章

  1. php 微信怎么清除缓存,前端清除缓存方法(微信缓存引起的bug)
  2. BASLER Pylon 抓取策略
  3. python实现去除图片纯色边框和给图片补边
  4. 【C++】手把手教你写出自己的Stack和Queue类
  5. MIUI10设置Android通知,Miui10状态栏美化修改工具
  6. LOFTER72D94FF8E0603DBE38066DB525285F1C
  7. 2013网工上半年错题集
  8. hihocoder 1246 王胖浩与环
  9. java 打印 日历 详细 注解_java 打印日历
  10. led手电筒烧灯珠_浅谈务优LED手电筒灯珠型号与区别技巧