Google的一位工程师Sans Serif发布了一篇博文非常清楚的描述了Android系统架构,中国移动通信研究院院长黄晓庆在新浪微博上推荐了该文,并认为文中对Android的介绍很好,您可以看一下Google工程师眼中的Android系统架构是什么样的。以下为Sans Serif博文的译文:

  Andriod是什么?

  首先,就像Android开源和兼容性技术负责人Dan Morrill在Android开发手册兼容性部分所解释的,“Android并不是传统的Linux风格的一个规范或分发版本,也不是一系列可重用的组件集成,Android是一个用于连接设备的软件块。”

Andriod是什么?

  Linux

  所有东西的底层是一个稳定的保持更新的Linux内核(我现在用的Nexus手机所用的就是2.6.32版的内核),以及我们精心打造的能源管理组件;当然还有将它们整合至上层Linux代码的扩展和公共组件。

  Dalvik

  Android另一个重要的部分,包括虚拟机和一组重要的运行环境。它的设计非常巧妙,是个很好的一个手机终端的底层应用。

  代码如何生成?

  Dalvik虚拟机只执行.dex的可执行文件。当Java程序通过编译,最后还需要通过SDK中的工具转化成.dex格式才能在虚拟机上执行。

  我需要强调的是,Android应用本身就可视作可在平台上运行并调用APIs的代码,所以对代码如何生成不需特别看重。

  特别的Apps

  在图中有些基于Dalvik虚拟机的Apps看起来像是Android的一部分,其实是由Google提供,这些应用包括Dialer、Contact、Calendar、Gmail和Chat等。它们中的绝大部分是开源并可复用的。只有少部分例外,比如Google Maps和Android Market.

  开源那些事

  在下面的图中,绿色的大部分组件是基于Apache许可证开源,其余基于GPL、LGPL和BSD。

开源的Android

  Android框架

  在Android开发者网(developer.android.com)上已有不少篇幅来帮助你使用它,在此就不再累述。

Android框架

  标准库

  在这里“标准”是指“开发者在开源环境中一般可以使用的”。

  App里面是什么

  一个Android App包含在一个我们称之为APK的压缩文件夹中,APK并没有什么可说的,需要注意的是Android Manifest——介于App和Android System的接口。

App里面是什么(1)

App里面是什么(2)

  其他

  大多数应用是基于Dalvik的,我指的是除了游戏之外的应用。游戏开发者通常希望用C/C++来编写,排斥使用虚拟机,所以他们可以通过Andriod NDK来开发

英文原文:What Android Is

Google工程师详解Android架构相关推荐

  1. Google官方 详解 Android 性能优化【史诗巨著之内存篇】

    尊重博主原创,如需转载,请附上本文链接http://blog.csdn.net/chivalrousman/article/details/51553114#t16 为什么关注性能 对于一款APP,用 ...

  2. AndroidHook机制连简单实战都不会凭什么拿高薪,详解Android架构进阶面试题

    Android开发的现状 目前,移动开发已经处于饱和的阶段,Android开发也不如当年盛况,已经不再像前几年前那么火爆.正如一种编程语言如果经历过盛极一时,那么必然有这样的一条曲线,像我们学的正弦曲 ...

  3. Google工程师多图详解Android系统架构

    近日,Google的一位工程师Sans Serif发布了一篇博文非常清楚的描述了Android系统架构,中国移动通信研究院院长黄晓庆在新浪微博上推荐了该文,并认为文中对Android的介绍很好,您可以 ...

  4. 源码详解Android 9.0(P) 系统启动流程之SystemServer

    源码详解Android 9.0(P) 系统启动流程目录: 源码详解Android 9.0(P)系统启动流程之init进程(第一阶段) 源码详解Android 9.0(P)系统启动流程之init进程(第 ...

  5. 分布式表格系统Google Bigtable详解

    分布式表格系统Google Bigtable详解 概述 Bigtable架构 数据分布 保证 副本位置与负载均衡 存储 表的分裂与合并 存储引擎 垃圾回收 总结 概述 bigtable系统由表格组成, ...

  6. android 上下偏差怎么写_详解 Android 热更新升级如何突破底层结构差异?

    知道了 native 替换方式兼容性问题的原因,我们是否有办法寻求一种新的方式,不依赖于 ROM 底层方法结构的实现而达到替换效果呢? 我们发现,这样 native 层面替换思路,其实就是替换 Art ...

  7. 【NLP】Google BERT详解

    版权声明:博文千万条,版权第一条.转载不规范,博主两行泪 https://blog.csdn.net/qq_39521554/article/details/83062188 </div> ...

  8. 必过SafetyNet!以MIUI开发版系统为例详解Android设备通过SafetyNet校验方法

    必过SafetyNet!以MIUI开发版系统为例详解Android设备通过SafetyNet校验方法 作者 梓沐啊_(KylinDemons) 版权声明 Copyright © 2021 KylinD ...

  9. linux沙盒机制6,详解Android应用沙盒机制

    前言 Android使用沙盒来保护用户不受恶意应用的侵害,同时也将应用隔离开来,防止他们互相访问其数据,本文主要对Android应用沙盒中的几种技术做简要的总结. 一.Android应用DAC沙盒 稍 ...

最新文章

  1. 卢京潮自动控制原理ppt_独家资料|29套输配电相关视频教程+PPT课件 ,全方位讲解电气传动自动控制系统、供配电实用技术、自动控制原理,免费领!...
  2. [转]设计高效SQL: 一种视觉的方法
  3. 挨踢人生路--记我的10年18家工作经历 - 第16家公司,英国公司――第一次当经理...
  4. 《编码:隐匿在计算机软硬件背后的语言(美)》读书笔记三
  5. vba搜索java里面的sql_在EXCEL中使用SQL语句查询集锦-持续更新中,敬请关注
  6. 牛客网(剑指offer) 第七题 斐波那契数列
  7. OSS.Social微信项目标准库介绍
  8. 新版本的Selenium 4 Alpha会有什么期望?
  9. 前端学习(3336):ant design中button按钮类型
  10. 对数周期天线hfss建模_HFSS也有金手指,FADDM招式详解
  11. OpenShift Security 15 - 用 RHACS 的安全策略管理运行中的容器安全
  12. Web Api 中返回JSON的正确做法
  13. 优雅的处理Exception
  14. 用户态创建socket来控制arp报文的收发,含编码
  15. leetcode 876.链表的中间结点
  16. 2022年下半年信息系统项目管理师下午真题及答案解析
  17. 前端打包之后 运用nginx反向代理运行项目
  18. kali linux 如何升级,如何正确更新和升级您的Kali Linux
  19. HDOJ 5144 NPY and shot 简单物理
  20. python frame用法_Pandas Series.to_frame()用法介绍

热门文章

  1. 特定时间循环增加一个时间段值
  2. 【WPF】WPF 命令
  3. php通过post请求_php代码post请求
  4. Python语法报错相关语句
  5. MySQL镜像下载及启动
  6. 第七章7.8示例学习:统计每个字母出现的次数
  7. wpf 加载列表不卡顿_看高清视频,如何做到不卡顿?
  8. mac解压错误22无效的参数_看看PHP 7.3新版本中的JSON错误处理
  9. java 打破封装_继承打破了封装性
  10. html音乐静音代码,HTML Audio muted用法及代码示例