安卓架构_安卓架构最底层是kernel层 - CSDN
精华内容
参与话题
  • Android体系架构

    万次阅读 2018-09-12 19:43:53
    Android 是一种基于 ...与其他操作系统一样,Android也采用分层的架构设计,从高到低分别是系统应用层(System Apps),Java API 框架层(Java API Framework),Android系统运行层(包括Android Runtime和原生态...

    Android 是一种基于 Linux 的开放源代码软件栈,主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86等体系结构的机器上同样可以运行。

    与其他操作系统一样,Android也采用分层的架构设计,从高到低分别是系统应用层(System Apps),Java API 框架层(Java API Framework),Android系统运行层(包括Android Runtime和原生态的C/C++库 Native C/C++ Libraries)、硬件抽象层(Hardware Abstraction Layer)、Linux内核层(Linux Kernel)。如下图所示:

    下面由下至上分别介绍各层

     1、Linux内核层

    Android是基于Linux内核的(Linux内核提供了安全性、内存管理、进程管理、网络协议和驱动模型等核心系统服务),Linux内核层为各种硬件提供了驱动程序,如显示驱动、相机驱动、蓝牙驱动、电池管理等等。

    2、硬件抽象层(Hardware Abstraction Layer)

    Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。HAL 可定义一个标准接口以供硬件供应商实现,这可让 Android 忽略较低级别的驱动程序实现。

    3、Android系统运行层

    这一层包括Android Runtime和原生态的C/C++库。

    通过C或者C++库为Android系统提供主要的特性支持,例如Surface Manager管理访问显示子系统和从多模块应用中无缝整合2D和3D的图形,WebKit提供了浏览器支持等。可以使用 Android NDK 直接从访问某些原生态库。

    Android运行时,其中包括了ART虚拟机(Android 5.0之前是Dalvik虚拟机,ART模式与Dalvik模式最大的不同在于,在启用ART模式后,系统在安装应用的时候会进行一次预编译,在安装应用程序时会先将代码转换为机器语言存储在本地,这样在运行程序时就不会每次都进行一次编译了,执行效率也大大提升。如果您的应用在 ART 上运行效果很好,那么它应该也可在 Dalvik 上运行,但反过来不一定。),每个Java程序都运行在ART虚拟机上,该虚拟机专门针对移动设备进行了定制,每个应用都有其自己的 Android Runtime (ART) 实例。此外,Android运行时还包含一套核心运行时库,可提供 Java API 框架使用的 Java 编程语言大部分功能,包括一些 Java 8 语言功能。

    4、Java API 框架层

    这一层主要提供了构建应用程序时可能用到的各种API,开发者通过这一层的API构建自己的APP,这一层也是APP开发人员必须要掌握的内容。

    5、系统应用层

    所有安装在手机上的系统应用都属于这一层,用户自己开发的应用也属于这一层。

    (张伟:2018年8月29日)

    (转载时请注明来源)

    展开全文
  • 安卓基本架构【图】

    2019-09-25 20:06:04
    安卓系统基本的架构 转载于:https://www.cnblogs.com/hanhandaren/p/11095041.html

     

    安卓系统基本的架构

    转载于:https://www.cnblogs.com/hanhandaren/p/11095041.html

    展开全文
  • 安卓架构MVP(一)

    千次阅读 2019-04-01 12:30:18
    关于Android程序的构架, 当前最流行的模式即为MVP模式, Google官方提供了Sample代码来展示这种模式的用法. Repo地址:android-architecture. 本文为阅读官方sample代码的阅读笔记和分析. 官方Android Architecture ...

    Google官方MVP Sample代码解读

    关于Android程序的构架, 当前最流行的模式即为MVP模式, Google官方提供了Sample代码来展示这种模式的用法.
    Repo地址: android-architecture.
    本文为阅读官方sample代码的阅读笔记和分析.

    官方Android Architecture Blueprints [beta]:
    Android在如何组织和构架一个app方面提供了很大的灵活性, 但是同时这种自由也可能会导致app在测试, 维护, 扩展方面变得困难.

    Android Architecture Blueprints展示了可能的解决方案. 在这个项目里, 我们用各种不同的构架概念和工具实现了同一个应用(To Do App). 主要的关注点在于代码结构, 构架, 测试和维护性.
    但是请记住, 用这些模式构架app的方式有很多种, 要根据你的需要, 不要把这些当做绝对的典范.

    MVP模式 概念

    之前有一个MVC模式: Model-View-Controller.
    MVC模式 有两个主要的缺点: 首先, View持有Controller和Model的引用; 第二, 它没有把对UI逻辑的操作限制在单一的类里, 这个职能被Controller和View或者Model共享.
    所以后来提出了MVP模式来克服这些缺点.

    MVP(Model-View-Presenter)模式:

    • Model: 数据层. 负责与网络层和数据库层的逻辑交互.
    • View: UI层. 显示数据, 并向Presenter报告用户行为.
    • Presenter: 从Model拿数据, 应用到UI层, 管理UI的状态, 决定要显示什么, 响应用户的行为.

    MVP模式的最主要优势就是耦合降低, Presenter变为纯Java的代码逻辑, 不再与Android Framework中的类如Activity, Fragment等关联, 便于写单元测试.

     

    MVP的设计图

    MVP跟MVC很相像,我上篇文章列出了很多种MVC的设计图,所以根据MVC的发展来看,我们把MVP当成MVC来看也不为过,因为MVP也是三层,唯一的差别是Model和View之间不进行通讯,都是通过Presenter完成, Presenter主要作为View和model交互的一个纽带 扮演 “主持交互”的角色。处理交互逻辑。
    前面介绍MVC的时候提到了算是致命缺点吧,在android中由于activity(god object)的存在,Controller和View很难做到完全解耦。但在MVP中就可以很好的解决这个问题 。

    大家看这个图 也许不是很清楚或者说不是太理解。


    在这里 “View” 由presenter中的接口担任 实现向View实现类通信,你也可以在Android组件中实现它。有时最好直接使用Activity,Fragment或自定义View。

    先说Model: 它是一个负责管理数据的接口。模型的职责包括使用API、缓存数据、管理数据库等。该模型也可以是一个接口,与其他模块负责这些职责的沟通。例如,如果您使用的是存储库模式,则该模型可能是一个存储库。如果您使用的是干净的建筑,相反,该模型可以关联。(翻译过来略显生硬 简而言之 Model层是数据访问层,如数据库API或远程服务器API)

    Presenter:大家可以看到Model和View是完全没有交互的。那么 Presenter则担当Model与View之间的中间人。你所有的业务逻辑都属于它。Presenter负责查询模型和更新视图,响应用户交互更新模型。

     

    MVP的小案例

    其实MVP就是MVC延伸出来,同样是划分三层,不过MVP的Presenter让Activity更加专注于处理页面显示。这样做的好处就是:让Activity只做UI的处理,数据处理和业务逻辑全丢给Presenter来完成。但是有个缺点就是我们要写很多的接口类,增加代码量。

    1.先对MVCModel进行封装,通知Presenter:

    2.再定义Presenter ,逻辑处理,然后通知View更新UI:

    3.对于Activity,把Model对象变成Persenter

     

     

     

     

     

    展开全文
  • 安卓系统结构和安卓开发目录结构

    千次阅读 2018-09-19 08:19:50
    由于安卓的系统架构说起来很抽象,所以博主画了一张图来帮助大家了解结构 Android系统架构 1、 Linux内核 安卓的运行并不是凭空而来的,而是依赖于Linux内核之上,因此,内核就显得极为重要,没有了内核就像折...

    由于安卓的系统架构说起来很抽象,所以博主画了一张图来帮助大家了解结构
    这里写图片描述
    Android系统架构
    1、 Linux内核
    安卓的运行并不是凭空而来的,而是依赖于Linux内核之上,因此,内核就显得极为重要,没有了内核就像折翼的鸟儿无法飞翔,内核作为一个抽象层,存在与硬件层和软件层之间进行通信交流,起到了承上启下的作用。

    2、Android Runtime and C++ libraiess
    Android核心运行时库,可提供Java API框架使用的Java编程语言大部分功能。许多核心 Android 系统组件和服务(例如 ART 和 HAL)构建自原生代码,需要以 C 和 C++ 编写的原生库。Android 平台提供 Java 框架 API 以向应用显示其中部分原生库的功能。例如,您可以通过 Android 框架的 Java OpenGL API 访问 OpenGL ES,以支持在应用中绘制和操作 2D 和 3D 图形。
    安卓运行时

    3、API 框架层
    我们开发人员经常接触到的就是框架层和应用系统层,框架层由多个系统服务共同组成,每个服务都占用一个线程,线程之间彼此通信传输数据,应用层无时不刻在和框架层打着交道,每个应用都是在框架的支持之下工作着。

    4、系统应用
    里面存放了一些核心的应用,比如计算器、日历、短信、联系人,这些核心应用是预装的手机上的,因此可以调用许多的框架,拥有极高的权限,但是不仅仅局限于这些核心的应用,也包括第三方开发者开发的应用,其中的应用都是基于SDK进行开发,并受到SDK的约束。

    这张图片是安卓开发的目录结构,其中列出来了重要及经常用到的文件夹和作用
    这个目录比较简单,博主在这里就不再赘述了,大家可把项目切换到Android视图对比这张图进行理解
    这里写图片描述

    展开全文
  • Android 系统架构详解

    千次阅读 2019-04-12 14:01:25
    本文作为Android系统架构的开篇,起到提纲挈领的作用,从系统整体架构角度概要讲解Android系统的核心技术点,带领大家初探Android系统全貌以及内部运作机制。虽然Android系统非常庞大且错综复杂,需要具备全面的技术...
  • 安卓架构分析

    千次阅读 2018-04-15 11:28:00
    安卓生态圈简介.2003年Android公司成立.2005年被谷歌收购.2008年,HTC G1-第一部安卓手机发步。制作一个移动版的操作系统是谷歌最原始的初衷,后来的发展也是这样子进行的。有趣的是安卓的英文的意思是机器人。这也...
  • android架构_Android架构

    2020-09-16 11:26:18
    android架构Without proper knowledge of android architecture you may face difficulty in learning android programming. So in this tutorial I will discuss about architecture of android operating system. ...
  • android系统架构图及各层介绍

    万次阅读 2018-09-05 10:01:54
    此技术文档主要是从基础了解Android系统架构,便于对以后开发形成一些基本应用架构。    android的系统架构采用了分层架构的思想,如图1所示。从上层到底层共包括四层,分别是应用程序程序层、应用框架层、系统...
  • Android架构师素养

    千次阅读 2014-11-08 12:56:30
    为了系统能以小的代价开发,以高效的方式运行,以较低的成本运营和维护,Android架构师需要具备什么样的素养呢?为什么说Android架构师那么艰难呢? 1、专业的设计能力 1、基础    Android系统是基于java...
  • 很早就有人总结了Android架构师技能图谱,小伙伴们可以参考一下自己学习到不到位。看到这浩瀚的知识海洋,很多小伙伴们怕是要晕了。别急,今天给大家沿着Android的技能知识图谱来总结一下视频学习教程。感兴趣的小...
  • Android架构实战(一)—— 核心思想

    千次阅读 2015-08-31 01:50:18
    经过对一种更清晰的Android架构的学习,并进行了一定的实战摸索后,也算是对这种Android架构有了一定的了解。由于该架构作者的DEMO比较简单,在实际运用的时候也遇到了许多坑,在自己摸索之后,基本构建出了一套比较...
  • Android架构模式一:MVC

    千次阅读 2018-06-19 18:55:57
    Android架构模式:MVC 一年前,在upday中,大部分的Android团队所创建的应用远不如我们所期望的健壮与稳定。我们试图理解为什么我们的代码如此糟糕,我们发现了两个罪魁祸首:易变的UI与呆板的架构。这个应用已经在...
  • Android架构师技能图谱

    2018-07-10 10:53:21
    Android 架构师技能图谱架构与设计设计模式重构技术选型特性可用性性能包大小方法数文档技术支持UI架构模式MVCMVPMVVM研发工具集成开发环境Android StudioSublime Text版本控制系统svngitgitlabgithubmercurial调试...
  • Android 架构师成长之路

    千次阅读 多人点赞 2019-06-25 15:06:42
    前言 ...其中,稳坐榜首的仍然是Java编程语言,...从普遍的企业的角度来看,存在的问题是:后台被认为是技术核心,客户端却被认为技术含量不高,甚至小企业会让后台人员顺便开发简单的客户端,或者让后台的架构师管理...
  • 近几年,Android 开发的套路日趋成熟,越来越多的 Android 工程师获得了「高级」的称号,也有不少人在参与公司的 App 从无到有再到火爆的整个开发过程中,顺理成章地拿到了 Leader 职位。 但对于自己的水平,多数人...
  • 资源名称:Android架构设计师视频教程麦子学院 教程内容:1、OOP思想及教程2、EIT及设计构架3 、 Android 进程和线程4 、 Android的UI框架5、Android JNI原理及架构6、JAVA多线程教程7.复习问题集8.Android核心服务...
  • 很多Android的小伙伴在做了多年的开发之后,始终搞不清楚达到Android架构师需要何种技能,我们对比着Android高级工程师来说明。 我们先来看一下Android高级工程师的招聘要求 职位描述: Responsibility 1. ...
  • Android 什么是架构

    2019-04-01 21:22:20
    有关android架构方面的知识少之又少,而对与架构的理解有关架构的文章也都是智者见智仁者见仁。在我身边听到最多的话就是架构=What?、架构=框架、架构=设计模式、架构=MVP/MVVM。那么架构到底是什么那?架构又有何...
  • Android架构设计模式(三)

    千次阅读 2018-04-16 20:18:11
    前言 在Android日常开发中或者在面试过程中总会涉及到“设计模式”这个词。...此设计模式系列仅含有应用架构设计模式,这里我就MVC,MVP,MVVM这3个最常见的架构设计模式来总结。 MVVM设计模式 ...
  • 前言有关android架构方面的知识少之又少,而对与架构的理解有关架构的文章也都是智者见智仁者见仁。在我身边听到最多的话就是架构=What?、架构=框架、架构=设计模式、架构=MVP/MVVM。那么架构到底是什么那?架构又...
1 2 3 4 5 ... 20
收藏数 161,174
精华内容 64,469
关键字:

安卓架构