张 勇
(黄冈职业技术学院)
Android网络编程浅析
张 勇
(黄冈职业技术学院)
Android的诞生具有其固有的时代背景,为手机操作系统带来了新的革命。本文从系统架构、开发环境与应用程序等方面对Android网络编程进行浅要分析,以期引领读者走入Android网络编程的大门。
Android,系统架构,开发环境,应用程序
1.1 Linux内核层
Android的开发以Linux2.6内核为基础,提供安全、内存管理、进程管理、驱动模型等核心系统服务。作为软硬件之间的抽象层,Linux内核层会对具体的硬件细节进行隐藏并提供统一服务于上级。
1.2 Android运行库与函数
Android中有一个核心库集合,能够提供多数在Java编程语言核心类库中可用的功能。此外,Android中还有C/C++库集合,其使用对象为系统中的各组件。通过Android应用程序框架,这些功能会显示给开发者。
1.3 应用框架层
开发人员可以对核心应用程序所使用的API进行完全使用,Android会向开发人员提供其所使用的API,使开发人员可以按照自己的创意进行特色应用程序的编制,例如,利用设备硬件优势设置闹钟等。应用框架层的体系结构强调对组件重用的简化,所有的应用程序都有组件全部功能的使用权,各应用程序只需对框架执行的安全限制予以执行即可。Android的此种机制使得开发人员能够将自己开发的程序对系统组件进行替换,有利于更强大功能的实现。
1.4 应用程序层
Android会集合核心应用程序,例如电子邮件客户端、SMS程序、浏览器、联系人、日历、地图等,这些程序都由Java语言编写,当然,更为丰富的应用程序的编写也是可以实现的。
Android的开发环境主要有三部分:(1)编译环境,Google公司为Android提供了专门的开发包SDK包,与Eclipse相互配合可以编译应用层包,然后选择在PC上进行Linux系统Ubuntu的安装;(2)代码环境,在Android官方中对Android全代码与Kernel代码予以获取;(3)验证环境,选择开发需要的软件包对手机中的相关软件包进行替换。
2.1 搭建Android代码环境
(1)安装Ubuntu上的相关下载工具。借助Ubuntu在Android官网进行代码的下载会用到一些Ubuntu系统默认中没有的命令工具,这要对其进行安装。
(2)安装repo。作为一种版本控制工具,repo可以在网上下载源码,用于开源网发布版本的更新。首先,需要在用户目录中创建bin目录,并将下载的git软件安装在此目录中,在环境变量中进行添加;其次,下载repo脚本,并将其权限修改为可执行。
(3)初始化repo。首先,创建一个目录对Android源码进行保存,将其修改为最大权限并进入该目录中;其次,对repo工具进行初始化,选择所需下载的分支。
(4)添加代码地址。
(5)下载并编译源码。执行下载命令,对全代码进行编译,这样所在目录中会生成一个out文件夹,然后对所有的库文件进行编译,可执行包都在内。单独编译包应在终端执行。
2.2 搭建kernel代码环境
(1)下载源码。Android源码中不包括kernel代码,但源码发布后会同时发布一个kernel的patch包,可直接下载。
(2)配置交叉编译工具。将交叉编译工具目录编译到PATH环境变量中,借助PC上的Linux系统与交叉编译工具生成可用于Android系统的执行文件。
(3)配置内核并编译。在编译之后,真正可执行的文件数为1,若对内核进行修改,需将整个内核做替换。
3.1 SOA
网络应用应包括客户端与服务端,此处的客户端即为Android,服务端的设计可以多样化,与项目需求相符的设计都可用于服务端的应用之上,若Android前端需要与后台服务端交换数据,就会涉及跨平台的问题。这时,可以利用SOA(面向服务)架构对不同平台之间的数据传输问题予以解决。
Webservice以SOAP协议为基础,它是一种通讯协议,用于分布式网络环境下的信息交换。其实现可以借助C#或Java,Webservice的创建除了编译的代码外,还会进行WSDL的创建,它是Webservice的灵魂,是一种XML格式的文件,对服务端的访问方式及使用协议细节进行描述。经由Webservice的交互方式有两种:(1)直接使用http协议方式,通过url对相应的接口予以使用;(2)Soap自身方式,利用soap协议在网络间传递数据。Webservice传递的数据可以是xml或json形式,但xml形式由于其格式整齐与有利于数据表现等优点应用较为广泛。目前用的较多的解析xml库是dom4j,通过在项目中对其进行加载,可以对xml展开便捷封装与解析工作。
在Android中使用soap协议及Webservice交互方式,本文建议使用ksoap2-Android库,原因在于其是一种开源项目,在Java对Webservice的使用中最常用到,稳定性最高。在使用过程中,需要实现3个重要对象:SoapObject、SoapSerializationEnvelope与 HttpTransport。 其 中,SoapObject是SOAP的对象,对Webservice的命名空间及所调用的方法名予以指定;SoapSerializationEnvelope序列化对象会绑定SOAP对象;HttpTransport应用于Internet访问/请求,Webservice服务中的数据可以利用call方法来获得。
3.2 Android前端开发
在Android版本逐渐更新的背景下,前端开发也变得越来越便捷,具体可以通过两种方法来完成。
(1)事先在drawable中进行背景选择器与shape等式样的编制,然后将这些式样添加至button、textview等控件中,赋予控件一定的特色。开发人员可以对其想象力进行充分发挥,改变xml设置多样化控件的形式。
(2)继承控件基类,重写控件方法,以对自定义控件予以真正的实现。ScrollView、View、ListView等都是可以被重写的控件。
本文对Android网络编程进行的系统架构、开发环境及应用程序等分析有利于读者了解基于网络开发手机APP的基本技术,这对其更深入地领会Android开发的知识与技术提供了一定的帮助。
[1]高麟斌.基于Android的网络应用程序发开研究[J].2015(11):119-122.
[2]李满玲.浅析Android开发环境的配置[J].商,2015(31):243.
A brief analysis on Android network programming
Zhang Yong
(Huanggang Polytechnic College)
The birth of Android has its own historical background, it has brought the mobile phone OS a new revolution. In order to lead readers toward the gate of Android network programming, the paper makes a brief analysis on it from system architecture, development environment and application.
Android, system architecture, development environment, application program