Android介绍



Android是一种基于
Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视数码相机游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。2014第一季度Android平台已占所有移动广告流量来源的42.8%,首度超越iOS。但运营收入不及iOS。





Android系统架构(4层架构)


  



1、应用程序层(Application)

Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。这也是Android开源的巨大潜力的体现。




2、应用程序框架层(Application Framework)
应用程序框架层是我们从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。

(1)Activity Manager(活动管理器


管理各个应用程序生命周期以及通常的导航回退功能

(2)Window Manager(窗口管理器

管理所有的窗口程序

(3)Content Provider(内容提供器

使得不同应用程序之间存取或者分享数据

(4)View System(视图系统

构建应用程序的基本组建

(5)Notification Manager(通告管理器

使得应用程序可以在状态栏中显示自定义的提示信息

(6)Package Manager(包管理器

Android系统内的程序包管理

(7)Telephony Manager(电话管理器

管理所有的移动设备功能

(8)Resource Manager(资源管理器

提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等

(9)Location Manager(位置管理器

提供位置服务

(10)XMPP Service(XMPP服务

提供Google Talk服务





3、系统运行库层(Libraries AndAndroid Runtime)

从图中可以看出,系统运行库层可以分成两部分,分别是系统库和Android运行时,分别介绍如下:
(A)系统库(Libraries)

  系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。其主要分为如下几个:

(1)Surface Manager

   执行多个应用程序的时候,负责管理显示与存取操作间的互动,另外也负责2D绘图与3D绘图进行显示合成

(2)Media Framework

   多媒体库,基于PacketVideo OpenCore,支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.254、AAC、ARM

(3)SQLite

   小型的关系型数据库引擎

(4)OpenGL|ES

   根据OpenGL ES 1.0 API标准实现的3D绘图函数库

(5)FreeType

   提供点阵字与向量字的描绘与显示

(6)WebKit

   一套网页浏览器的软件引擎

(7)SGL

   底层的2D图形渲染引擎

(8)SSL

   在Android上通信过程中实现握手

(9)Libc

   从BSD继承来的标准C系统函数库,专门为基于embedded linux的设备定制




(B)Android运行时(Android Runtime

        Android应用程序时采用Java语言编写,程序在Android运行时中执行,其运行时分为核心库和Dalvik虚拟机两部分

(1)Core(核心库)

           核心库提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,如android.os、android.net、android.media等等

(2)Dalvik(虚拟机)
Android程序不同于J2me程序,每个Android应用程序都有一个专有的进程,并且不是多个程序运行在一个虚拟机中,而是每个Android程序都有一Dalivik虚拟机的实例,并在该实例中执行。Dalvik虚拟机是一种基于寄存器的Java虚拟机,而不是传统的基于栈的虚拟机,并进行了内存资源使用的优化以及支持多个虚拟机的特点。需要注意的是,不同于J2me,Android程序在虚拟机中执行的并非编译后的字节码,而是通过转换工具dx将Java字节码转成dex式的中间码。





4、Linux内核层(Linux Kernel
Android是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。






Android应用特色
Android主要有什么特色呢,有以下几个方面来体现:

  • 四大组件
  • 丰富的系统控件
  • SQLite数据库等持久化技术
  • 地理位置定位
  • 强大的多媒体
  • 传感器




1、四大组件
什么是四大组件?分别是活动(Activity)、服务(Service)、广播接收器(BroadCast Receiver)和内容提供器(Content Provider)。其中活动(Activity)就是Android应用程序中看得东西,也是用户打开一个应用程序的门面,并且与用户交互的界面,比较高调。服务(Service),则比较低调了,一直在后台默默的付出,即使用户退出了,服务仍然是可以继续运行的。广播接收器(BroadCast Receiver),则允许你的应用接收来自各处的广播消息,比如电话、短信等,可以根据广播名称不同,做相应的操作处理,当然了, 除了可以接受别人发来的广播消息,自身也可以向外发出广播消息,自产自销。内容提供器(Content Provider),则为应用程序之间共享数据提供了可能,比如你想要读取系统电话本中的联系人,就需要通过内容提供器来实现。


2、丰富的系统控件
Android系统为开发者提供了丰富的系统控件,我们可以编写漂亮的界面,也可以通过扩展系统控件,自定义控件来满足自我的需求,常见控件有:TextView、Buttion、EditText、一些布局控件等。


3、持久化技术
Android系统还自带了SQLite数据库,SQLite数据库是一种轻量级、运算速度极快的嵌入式关系型数据库。它不仅支持标准的SQL语法,还可以通过Android封装好的API进行操作,让存储和读取数据变得非常方便。


4、地理位置定位
移动设备和PC相比,地理位置定位是一大亮点,现在基本Android手机都内置了GPS,我们可以通过GPS,结合我们的创意,打造一款基于LBS的产品,是不是很酷的事情啊,再说,目前火热的LBS应用也不是空穴来风的,不过在天朝,因为可恶的GFW,只能用些本土化的地图API,比如百度地图、高德地图。要是哪天能用上大谷歌的地图,那才是高大上啊。


5、强大的多媒体
Android系统提供了丰富的多媒体服务,比如音乐、视频、录音、拍照、闹铃等,这一切都可以在程序中通过代码来进行控制,让你的应用变得更加丰富多彩。


6、传感器
Android手机中内置了多种传感器,比如加速传感器、方向传感器,这是移动设备的一大特点,我们可以灵活地使用这些传感器,可以做出很多在PC上无法实现的应用。比如“微信摇一摇"_你懂得,“搜歌摇一摇”等功能。





ART模式





JVM和DVM的区别







ART模式和Dalvik模式的区别





Android环境配置








SdkManager介绍





Andriod模拟器创建





Andriod常见分辨率
320*480

480*800

1280*720





ROM:只读存储器,相当于电脑的一块微小硬盘 断电数据不丢失

RAM:相当于电脑的内存条 断电数据丢失






Android Eclipse DDMS调试图



Android版本


Android 1.0                        没有开发代号

Android 1.1                        Petit Four(小蛋糕)

Android 1.5                        Cupcake(纸杯蛋糕)

Android 1.6                        Donut(甜甜圈)

Android 2.0/2.1                  Eclair(闪电泡芙)

Android 2.2                        Froyo(冻酸奶)

Android 2.3                        Gingerbread(姜饼)

Android 3.0/3.1/3.2           Honeycomb(蜂巢)

Android 4.0                        Ice Cream Sandwich(冰淇淋三明治)

Android 4.1/4.2/4.3           Jelly Bean(果冻豆)

Android 4.4                        KitKat(奇巧巧克力棒)

Android 5.0/5.1                 Lollipop(棒棒糖)

Android 6.0                        Marshmallow(棉花糖)

Android 7.0                        Nougat(牛轧糖)





Android API等级



API等级1:      Android 1.0

API等级2:      Android 1.1 Petit Four

API等级3:      Android 1.5 Cupcake

API等级4:      Android 1.6 Donut
API等级5:      Android 2.0 Eclair

API等级6:      Android 2.0.1 Eclair

API等级7:      Android 2.1 Froyo

API等级8:      Android 2.2 - 2.2.3Froyo

API等级9:      Android 2.3 - 2.3.2 Gingerbread

API等级10:    Android 2.3.3 - 2.3.7Gingerbread

API等级11:    Android 3.0 Honeycomb

API等级12:    Android 3.1 Honeycomb

API等级13:    Android 3.2 Honeycomb

API等级14:    Android 4.0 - 4.0.2 Ice Cream Sandwich

API等级15:    Android 4.0.3 - 4.0.4Ice Cream Sandwich

API等级16:    Android 4.1 Jelly Bean

API等级17:    Android 4.2 Jelly Bean

API等级18:    Android 4.3 Jelly Bean

API等级19:    Android 4.4 KitKat

API等级20:    Android 4.4W

API等级21:    Android 5.0 Lollipop

API等级22:    Android 5.1 Lollipop

API等级23:    Android 6.0 Marshmallow

API等级24:    Android 7.0Nougat


Android介绍(未整理完...)相关推荐

  1. 【原创】CSSOO的思想及CSS框架的应用(未整理完)

    CSSOO的思想及CSS框架的应用 前语:通过这次研究分析总结,个人对CSSOO的概念及应用的思路也更明确一些,是一个和大家共同学习的过程. 一.CSS框架 框架目的: 给出一个相对规范的开发方法,给 ...

  2. electron 笔记大全(未整理完)

    electron大部分常用的API都在这了 主进程核心代码: const { app, BrowserWindow } = require('electron)app.on('ready', () = ...

  3. C_.NET+Framdwork题库(未整理完,有时间再补)

    第一章  Microsof.NET Framework 概述 1..NET Framework 可以运行在下列哪些操作系统之上,并为托管程序提供支持?(    ) WindowsNT 4.0 Wind ...

  4. linux下使用过的命令总结(未整理完)

    1.常用命令不需解释 ls\cd\cp\mv\pwd\file\vi\vim\cat 2.getconf LONG_BIT 终端返回32表示操作系统32位,返回64表示操作系统64位. 3.ifcon ...

  5. 我把所有Android第三方库整理成了PDF,面试必会

    反思 昨晚去北京大望路阿里面试, 产生了严重的挫败感, 羞愧难当. 比不得从大学就有目标有理想, 一直在为目标努力学习技术的同学, 在大学唯一能拿得出手的就是参加了电子设计大赛, 学了点嵌入式的知识. ...

  6. Android Camera简单整理(四)-Android Camera性能Debug经验

    针对手机厂商相机性能优化部分进行重点总结记录 Android Camera性能Debug经验 一.相机性能场景 二.相机性能debug工具及方案建议 1.dumpsys media.camera 1. ...

  7. Android技术面试整理

    colife Android技术面试整理 前19题为常考题目!!  1.Android的四大组件是哪些,它们的作用? 2.请介绍下Android中常用的五种布局. 3.android中的动画有哪几类, ...

  8. Android面试资料整理

    文章目录 前言 面试问题整理 Android 问题 一.Activity 1.Activity 的生命周期 2.onStart()和onResume().onPause()和onStop()的区别? ...

  9. GitHub 优秀的 Android 开源项目 淘宝技术牛p博客整理开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)...

    原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要介绍那些不错个性化的View,包括Lis ...

最新文章

  1. 第一篇博客,用以规划我的编程人生
  2. 牛客 - Elo mountains(AC自动机+可持久化数组优化)
  3. Spring boot 中pom.xml 各个节点详解
  4. 初级黑客安全技术命令详解
  5. 几种如何判断环境是否连上网方法,推荐最后一种
  6. 手推机器学习公式(一) —— BP 反向传播算法
  7. go语言学习---数据类型、运算符、表达式
  8. MySQL导出记录到Excel表格下载打开后乱码问题
  9. 理解“正反馈”和“负反馈”,学会系统性思考
  10. 广播前置放大器的作用_前置放大器的作用和特点
  11. Mac配置双网卡使内外网同时访问
  12. 蓝色音箱改装电源_创新便携/无线音箱排行榜,创新便携/无线音箱十大排名推荐...
  13. 林忆莲:白莲花,红玫瑰
  14. 企业实战之部署Solarwinds Network八部众
  15. 软件工程导论——软件维护
  16. 替换=(等于号)正则表达式
  17. c语言int型变量写入char数组的方法
  18. Android Studio学习3
  19. 高职高专院校的消防工作和措施
  20. memory:arm 分区layout以及虚拟内存布局-小结

热门文章

  1. 这世界无非是“人人为我,我为人人”
  2. 树莓派-nginx+php-fpm +sqlite+wordpress
  3. java版我的世界_我的世界Java版1.16
  4. slick.js基于jQuery全屏轮播插件
  5. 在树莓派中安装MCSM面板
  6. 推送通知的跳转处理和消息提醒
  7. 如何批量将图片转换成jpg格式?
  8. fedora 20 安装mysql_fedora19之后的版本安装mysql
  9. FMI人工智能与大数据线下沙龙第869期北京场圆满落幕
  10. 【docker问题】Client.Timeout exceeded while awaiting header