种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

android开发

(2020-01-11 17:50:14) 百科综合
android开发

android开发

android开发是指android平台上套用的製作,Android早期由“Android之父”之称的Andy Rubin创办,Google于2005年併购了成立仅22个月的高科技企业Android,展开了简讯、手机检索、定位等业务,基于Linux的通用平台进入了开发。

软体开发需要掌握的知识体系有:Unix/Linux平台技术、企业级资料库技术、Java 语言核心技术、软体工程和设计模式、Android套用开发基础、网际网路核心技术、Android系统级开发、JavaEE核心技术。

基本介绍

  • 中文名:android开发
  • 创办人:Andy Rubin
  • 基于:Linux
  • 业务:简讯、手机检索、定位等业务

开发教程

android开发视频教程-Java语言
在国内手机市场当中,Android作业系统占据了市场份额,是毋庸置疑的王者。为市场带来非常强劲的需求,在招聘类网站上,Android开发工程师无疑是可热的职位。而开发爱好者想进入,面临的第一个问题就是如何掌握Java语言。
Java程式语言在市面上流行的语言当中,属于语法简单的一种,但包含的面向对象思想博大精深,让人头痛。

简介

Google公司在2007年11月5日正式公布这个作业系统,2008年,Patrick Brady于Google I/O演讲“Anatomy & Physiology of an Android”,并提出的Android HAL架构图。HAL以*.so档的形式存在,可以把Android framework与Linux kernel隔开。
android开发

名称来源

Android一词最早出现于法国作家利尔亚当在1886年发表的科幻小说《未来夏娃》中。他将外表像人的机器起名为Android。
2010年2月3日,Linux核心开发者Greg Kroah-Hartman将Android的驱动程式从Linux核心“状态树”(“staging tree”)上除去,从此,Android与Linux核心开发分道扬镳。
Android介绍
Android 是Google开发的基于Linux平台的开源手机作业系统。它包括作业系统、用户界面和应用程式—— 行动电话工作所需的全部软体,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的 30 多家技术和无线套用的领军企业组成。通过与运营商、设备製造商、开发商和其他有关各方结成深层次的合作伙伴关係,我们希望藉助建立标準化、开放式的行动电话软体平台,在移动产业内形成一个开放式的生态系统。我们认为此举必将推进更好、更快的创新,为移动用户提供不可预知的套用和服务。
Android作为谷歌企业战略的重要组成部分,将进一步推进"随时随地为每个人提供信息"这一企业目标的实现。我们发现,全球为数众多的行动电话用户从未使用过任何基于Android的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至平台。出于这个目的,Android将补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全球各地的手机製造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。
开放手机联盟的成立和Android的推出是对现状的重大改变,在带来初步效益之前,还需要不小的耐心和高昂的投入。但是,我们认为全球移动用户从中能获得的潜在利益是值得付出这些努力的。如果你也是一个开发者,并对我们的想法感兴趣,就请再给我们一星期的时间,届时谷歌便能提供SDK了。如果你是一名移动用户,只需再等一段时间,我们的一些合作伙伴计画在 2008 年下半年推出基于Android平台的电话产品。如果你已经拥有一部你了解并喜爱的电话,确保你已经安装谷歌手机地图、Gmail以及其他一些专为你的手机开发的精彩套用。谷歌将继续努力,让这些服务变得更好,同时也将添加更有吸引力的特性、套用和服务。

发展历史

2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。
2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。
2007年11月5日,谷歌公司正式向外界展示了这款名为Android的作业系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机製造商、软体开发商、电信运营商以及晶片製造商共同组成,并与84家硬体製造商、软体开发商及电信营运商组成开放手持设备联盟(Open Handset Alliance)来共同研发改良Android系统,这一联盟将支持谷歌发布的手机作业系统以及套用软体,Google以Apache免费开源许可证的授权方式,发布了Android的原始码。
2008年,在GoogleI/O大会上,谷歌提出了Android HAL架构图,在同年8月18号,Android获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。
2009年4月,谷歌正式推出了Android 1.5这款手机,从Android 1.5版本开始,谷歌开始将Android的版本以甜品的名字命名,Android 1.5命名为Cupcake(纸杯蛋糕)。该系统与Android 1.0相比有了很大的改进。
2009年9月份,谷歌发布了Android 1.6的正式版,并且推出了搭载Android 1.6正式版的手机HTC Hero(G3),凭藉着出色的外观设计以及全新的Android 1.6作业系统,HTC Hero(G3)成为当时全球最受欢迎的手机。Android 1.6也有一个有趣的甜品名称,它被称为Donut(甜甜圈)。
2010年2月份,Linux核心开发者Greg Kroah-Hartman将Android的驱动程式从Linux核心“状态树”(“staging tree”)上除去,从此,Android与Linux开发主流将分道扬镳。在同年5月份,谷歌正式发布了Android 2.2作业系统。谷歌将Android 2.2作业系统命名为Froyo,翻译完名为冻优酪乳。
2010年10月份,谷歌宣布Android系统达到了第一个里程碑,即电子市场上获得官方数字认证的Android套用数量已经达到了10万个,Android系统的套用增长非常迅速。在2010年12月,谷歌正式发布了Android 2.3作业系统Gingerbread (姜饼)。
2011年1月,谷歌称每日的Android设备新用户数量达到了30万部,到2011年7月,这个数字增长到55万部,而Android系统设备的用户总数达到了1.35亿,Android系统已经成为智慧型手机领域占有量最高的系统。
2011年8月2日,Android手机已占据全球智慧型机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。
2011年9月份,Android系统的套用数目已经达到了48万,而在智慧型手机市场,Android系统的占有率已经达到了43%。继续在排在移动作业系统首位。在9月19号,谷歌将会发布全新的Android 4.0作业系统,这款系统被谷歌命名为Ice Cream Sandwich(冰激凌三明治)。
2012年1月6日,谷歌Android Market已有10万开发者推出超过40万活跃的套用,大多数的应用程式为免费。Android Market应用程式商店目录在新年首周周末突破40万基準,距离突破30万套用仅4个月。在2011年早些时候,Android Market从20万增加到30万套用也花了四个月。

系统架构

应用程式

Android以Java为程式语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程式叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到複数程式同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。
View等同于J2ME的Displayable,程式人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函式不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。

中介软体

作业系统与应用程式的沟通桥樑,并用分为两层:函式层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到萤幕上。Android使用工具链(Toolchain)为Google自製的Bionic Libc。
Android採用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。
Android的多媒体资料库採用SQLite资料库系统。资料库又分为共用资料库及私用资料库。用户可通过ContentResolver类(Column)取得共用资料库。
Android的中间层多以Java 实现,并且採用特殊的Dalvik虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变数皆存放于暂存器中,虚拟机的指令相对减少。
Dalvik虚拟机可以有多个实例(instance), 每个Android应用程式都用一个自属的Dalvik虚拟机来运行,让系统在运行程式时可达到最佳化。Dalvik虚拟机并非运行Java位元组码(Bytecode),而是运行一种称为.dex格式的档案。

硬体抽像层

Android 的 HAL(硬体抽像层)是能以封闭源码形式提供硬体驱动模组。HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程式实现的前提下进行发展。
HAL stub 是一种代理人(proxy)的概念,stub 是以 *.so 档的形式存在。Stub 向 HAL“提供”操作函式(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 这些操作函式。HAL 里包含了许多的 stub(代理人)。Runtime 只要说明“类型”,即 module ID,就可以取得操作函式。

程式语言

Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了达到商业套用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程式移到 userspace,使得Linux driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标準的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Managemeat),程式管理(Process Management),网路堆叠(Network Stack),驱动程式模型(Driver Model)等。下载Android源码之前,先要安装其构建工具Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。

知识体系

1、Unix/Linux平台技术:基本命令,Linux下的开发环境
2、企业级资料库技术:SQL语言、SQL语句调优、Oracle资料库技术
3、Java 语言核心技术:Java语言基础、Java面向对象编程、JDK核心API、Java集合框架、Java网路编 程、JavaI/O编程、Java多执行绪编程、Java异常机制、Java安全、JDBC、XML
4、软体工程和设计模式:软体工程概述、配置管理及SVN、UML、基本设计模式
5、Android套用开发基础:Android开发平台、Eclipse+ADT开发环境、AVD及感测模拟器调试、Android核心组件、Android常用组件、Android高级组件、档案及网路访问、SQLite资料库编程、后台服务编程
6、网际网路核心技术: HTML、CSS、JavaScript、JQuery、Ajax套用
7、Android高级套用开发:音频\视频\摄像头、网际网路套用、GPS和位置服务、Google Map、2D\3D绘製、感测器开发、游戏开发、电话及SMS服务、网路\Bluetooth\Wi-Fi等。
8、Android系统级开发:移植、驱动、NDK(C方向)。
9、JavaEE核心技术:Servlet核心技术、JSP核心技术、Struts、Spring、Hibernate框架。

学习内容

Android基础阶段:平台架构特性(JAVA/C) Market/应用程式组件 环境搭建与部署/打包与发布 AVD/DDMS/AAPT 调试与测试 相关资源访问/资源製作 Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及深层实现
Android进阶初级:组件Widget/ 选单Menu/ 布局Layout 详解 Xml解析(Pull/Dom/Sax)/JNI 解析SQL资料库原理, SQLite /SharedPreferences/File详解 多媒体Audio/Video/Camera 详解
Android进阶高级:蓝牙/WIFI SMS/MMS 套用实现 深层次解析GPS原理,实现LocationManager/LocationProvider 进行定位/跟蹤/查找/趋近警告以及Geocoder正逆向编解码等技术细节 2D图形库(Graphics/View)详解 SDCARD/感测器/手势 套用实现

标 签

搜索
随机推荐

Powered By 种豆资源网||