在移动互联网快速发展的时代,android开发可以说是当前的一个热门职业。那么在学习android开发过程中,我们有哪些相关问题需要了解呢?中培伟业《android APP开发架构应用实战》培训专家张老师在这里介绍了与该职业密切相关的10个问题,并对这些问题进行了详细解答,希望可以对大家的选择有所帮助。
何谓Android?
做什么事情首先就应该知道自己做的是什么,作为一个android开发者首先就应该知道什么是Android。张老师介绍,“android”一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。简单来说是个开源的手机操纵系统。
Android开发者的就业前景如何
张老师指出,Android是Google开发的基于Linux平台的开源移动操作系统。它包括操作系统、用户界面和应用程序----移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开发和完整的移动软件。
国外Android市场正在如日中天的扩展,据市场调研机构最近发布的一份报告称,今年第一季度基于Android操作系统的智能手机在美国智能手机总销量中所占比例达到28%,首度超过苹果iphone,苹果iphone约为21%,相信在不久的将来会有更多的用户选择Android系统的手机或是无线终端设备。
Android有哪些特点
张老师指出,任何技术都有其资深的特点,Android也不例外。张老师在这里介绍了Android的以下10个特点:
1)应用程序框架:支持组件的复用和更换
2)Dalvik 虚拟机:专门为移动设备进行过优化
3)集成的浏览器:基于开源的 WebKit 引擎 ,TV上会内置Chrome浏览器
4)优化的图形机制:自定义的2D图形库,基于OpenGL ES 1.0规范的3D图形实现(本项为硬件加速器可选)
5)SQLite:轻量级的数据库,支持结构化数据的存储
6)媒体支持:面向常见的音频、视频以及静态图形档案格式 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
7)GSM 技术 GSM:global system for mobile communications (依赖硬件支持)
8)Bluetooth, EDGE, 3G, and WiFi (依赖硬件支持)
9)Camera, GPS, compass, and accelerometer (依赖硬件支持)
10)Rich development environment:丰富的开发环境,包含一套硬件仿真器,一些用于程序调试、内存和性能剖析的工具,以及支持Eclipse集成开发环境的插件(ADT )。
学习android需要哪些基础
张老师介绍,学习Android一定要有Java基础,最差也要类似Java的其他面对像对象语言的基础。很多朋友从来没有搞过编程,听说Android能赚钱,就疯了一样冲过来要学习。这明显是不靠谱的,甚至有的朋友一个字母一个字母的按照我的例子去敲代码,然后非常努力的把代码背下来。像背英文单词一样的背代码,这其实是不可取的!不管怎样,你最少也要掌握Java语言的如下知识点才能够开始学Android:
a)Java基本数据类型及其特点
b)Java分支语句和循环语句的使用
c)类和对象的创建和使用方法
d)函数的使用
e)抽象类和接口
f)继承和实现
g)对象的多态性
h)包和访问权限
i)异常的处理
j)类集框架
k)eclipse的基本用法
Android上编程使用的开发语言
张老师指出,Android应用基于Java,支持SQL,由于底层是Linux所以底层支持C/C++。
目前有两种编程:
1)基于ADT的JAVA编程
2)基于NDK的C编程
Android开发需要的编程环境
张老师指出编程离不开以下环境:Ide 、Android SDK、JDK、Java
官方推荐用JDK+ECLIPSE+ADT+ADK(WINDOWS开发环境下。
何谓APK
APK是Android Package的缩写,即Android安装包(anapk)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。
apk文件和sis一样最终把android sdk编译的工程打包成一个安装程序文件格式为apk。 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
何谓SDK
张老师的回答是,SDK,Software Development Kit 的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。
什么是API
所谓,API(Application Programming Interface)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。
什么是TCP协议和UDP协议
张老师介绍,TCP/IP协议的名称中只有TCP这个协议名,但是在TCP/IP的传输层同时存在TCP和UDP两个协议。Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。
UDP协议是User Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。