走进Android系统
一、Android背景
【Android定义】
Android是Google公司在2007年11月5日公布的基于Linux平台的开源手机操作系统。
【发展历程】
2005年,Google收购企业Android,展开了短信、手机检索、定位等业务。
2007年,Google宣布推出基于Linux平台的开源手机操作系统,正式命名为Android。
2008年,Google发布了Android系统最早的版本——谷歌Android SDK1.0 。
2009年,Google推出了新版本Android 1.5,也开始将Android的版本以甜品的名字命名。
2015-2017年,Google依次推出了Android6.0、7.0、8.0版本。
二、Android系统特性与平台架构
【系统特性】
- 应用程序框架支持组件的重用与替换(app发布时遵守了框架的约定,其他app也可以使用该模块)
- Dalvik虚拟机:专门为移动设备优化
- 集成的浏览器:开源的WebKit引擎
- SQLite结构化的数据存储
- 优化的图形库,多媒体支持,GSM电话技术,蓝牙等
- 采用软件叠层方式构建
【平台架构】


架构的简单理解:
1. Application(应用程序层)
我们一般说的应用层的开发就是在这个层次上进行的,当然包括了系统内置的一组应用程序,使用的是Java语言。
2. Application Framework(应用程序框架层)
无论系统内置或者我们自己编写的App,都需要使用到这层,比如我们想弄来电黑名单,自动挂断电话,我们就需要用到电话管理(TelephonyManager)
通过该层我们就可以很轻松的实现挂断操作,而不需要关心底层实现。
3. Libraries(库) + Android Runtime(Android运行时)
Android给我们提供了一组C/C++库,为平台的不同组件所使用,比如媒体框架;而Android Runtime则由Android核心库集 + Dalvik虚拟机构成,Dalvik虚拟机是针对移动设备的虚拟机,它的特点:不需要很快的CPU计算速度和大量的内存空间;而每个App都单独地运行在单独的Dalvik虚拟机内每个app对于一条Dalvik进程)而他的简单运行流程如:

4. Linux内核
这里就是涉及底层驱动的东西了,一些系统服务,比如安全性,内存管理以及进程管理等。
三、开发环境的搭建
走进Android系统的更多相关文章
- Android系统--输入系统(十)Reader线程_核心类及配置文件深入分析
Android系统--输入系统(十)Reader线程_核心类及配置文件深入分析 0. 前言 个人认为该知识点阅读Android源代码会不仅容易走进死胡同,并且效果并不好,前脚看完后脚忘记,故进行总结, ...
- 最新Android系统版本与API等级对应关系表
最新Android系统版本与API等级对应关系表 从Android官网拷过来的,方便查阅... 官网地址:https://developer.android.com/guide/topics/mani ...
- Android系统全貌 (转)
转自Gityuan的Android开篇,对自我学习作进一步整理. Android系统以Linux内核作为基底,上层采用Native层和Java层.系统分为内核空间和用户空间,并通过系统调用(Sysca ...
- android系统release签名
转自:http://blog.csdn.net/yangkai6121/article/details/38682321 为什么需要给Android系统签个名才能进行CTS认证呢?原来我们通过make ...
- Android系统的五种数据存储形式(二)
之前介绍了Android系统下三种数据存储形式,今天补充介绍另外两种,分别是内容提供者和网络存储.有些人可能认为内存提供者和网络存储更偏向于对数据的操作而不是数据的存储,但这两种方式确实与数据有关,所 ...
- Android系统的五种数据存储形式(一)
Android系统有五种数据存储形式,分别是文件存储.SP存储.数据库存储.contentprovider 内容提供者.网络存储.其中,前四个是本地存储.存储的类型包括简单文本.窗口状态存储.音频视频 ...
- Android系统拍照源码
个人对于Android系统拍照的一些总结:一种自定义图片拍照路径 ,另一种直接利用Android拍照后经过处理的缩略图 特别注意第一种方式需要增加SDK读写权限: <uses-permissio ...
- Android系统中自定义按键的短按、双击、长按事件
在项目中碰到这样的问题: 由于系统中的按键在底层做了重新定义或者新增了按键,此时需要在APP层对按键事件(keyevent)做分解处理,模拟Android系统做法,把keyevent分解成: 1.单击 ...
- Android系统的架构
android的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层. 1.应用程序 Andr ...
随机推荐
- SpringBoot非官方教程 | 第二十三篇: 异步方法
转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/springboot-ansy/ 本文出自方志朋的博客 这篇文章主要介绍 ...
- 配置JAVA_HOME踩得坑 。。
配置JAVA_HOME 的时候这里不能有空格哦 ,还以为什么呢...
- Linux查看日志命令- more、less、tail、head命令的区别
参考:https://blog.csdn.net/caib1109/article/details/52195942 1.more 2.tail 3.less 4.cat 5.head
- Python学习——01Linux基础之常用基本命令
做Linux要知道两件事: 首先知道自己处在什么位置(桌面……) 区分大小写 pwd:查看当前所在目录 “/”代表:根目录 Cd: cd( ...
- 快速玩转linux(4)
websever安装配置 Nginx & Apache 并发量. Apache基本操作 解释 命令 安装 yum install httpd 启动 service httpd start 停止 ...
- 介绍三种PHP加密解密算法
PHP加密解密算法 这里主要介绍三种常用的加密解密算法:方法一: /** * @param $string 要加密/解密的字符串 * @param string $operation 类型,ENCOD ...
- MIP缓存加速原理 MIP不仅仅只是CDN
什么是MIP?我想我们现在都知道.可是你真的了解MIP吗?MIP加速原理是什么?MIP 是用 CDN 做加速的么?准确答案是:是,但不只是. 很多人并认为MIP百度排名会靠前,甚至权重会提高?作为一个 ...
- scala成长之路(1)基本语法和数据类型
scala作为JVM上的Lisp,是一种geek类型的编程语言,也一直是我等java程序员眼中的梦寐以求的一门技能,遂下定决心花一段时间好好学习scala.第一天学习,主要介绍与java在编程上的主要 ...
- QOS-QOS(服务质量)概述
QOS-QOS(服务质量)概述 2018年7月7日 20:29 概述及背景: 1. 引入: 传统IP网络仅提供“尽力而为”的传输服务,网络有可用资源就转发,资源不足时就丢弃 新一代IP网络承载了 ...
- 关于JUnit4无法支持多线程测试的解决方法
转自:https://segmentfault.com/a/1190000003762719 其实junit是将test作为参数传递给了TestRunner的main函数.并通过main函数进行执行. ...