网站建设资讯

NEWS

网站建设资讯

android层级,android体系结构

Android 系统概览

本篇内容主要目的在从整体上了解Android 庞大的系统架构,根据系统架构中的不同模块和分层找到和梳理一条学习路径,这样能更好的切入到不同的模块学习,直到最后全部打通。

创新互联公司专业为企业提供正阳网站建设、正阳做网站、正阳网站设计、正阳网站制作等企业网站建设、网页设计与制作、正阳企业网站模板建站服务,十年正阳做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

接下来我们从两个角度来分析

下面这张图是Android官方提供的一张Android系统的预览图。

从上面这个图中我们可以知道,Android系统一共有5部分组成,他们分别是

从纵向层级架构的角度来看,我们了解了android系统经典5层结构,他们如垒砖一般纵向堆叠在一起。但是其实每一层都包含了大量的子模块子系统,并不能体现出Android整个系统的内部架构、运行机理,以及各个模块之间是如何衔接与配合工作的。接下来借鉴了gityuan总结的一张系统进程图,从系统进程的角度来看Android系统的工作原理。

Loader层: 引导kernel启动

Kernel层: Android内核空间

Native层: 进入用户空间

Framework层: 给app层提供api以及系统服务,

App层: 各种各样的应用程序apk

参考文献:

Android开发的技术层次是指哪些?

首先Android开发主要是有三个层次的技术:

1、第一个层次和传统的嵌入式Linux最接近,主要涉及的是CPU、GPU以及外设的驱动以及使能方面。需要熟悉Linux内核,Android框架定义中驱动的接口规范等等,这部分开源社区的力量最大。

2、第二个层次主要是涉及Android框架中间件部分,如多媒体/3D框架,Java虚拟机等等,这部分Google控制的是最严格的,因为他要控制Android各种feature以及捆绑自己的移动互联网应用,必须规范中间件。这部分所涉及的软件技术也最多,从各种C/C++库,Java虚拟机性 能,用户体验抽象到数据库设计等等很大的内涵。

3、第三个层次就是App开发层次,这个层次主要就是利用Android SDK开发了。很多C/C++出身的觉得是用Java开发,其实Java就是啥都是指针的C++,外带try/catch以及垃圾收集,上手其实是很快的。

4、如果你是个新手的话建议你多掌握些技术知识,不管是自学还是去其他地方学习,教学联盟也许会帮助到你,暂且说到这里。

Android进阶 - 视图层级实时分析

在App运行过程中,我们的视图层级可能会由于用户的操作一直在发生改变,甚至可能会有一些出乎预料的变化,本文将会介绍 如何进行Android视图实时分析,分析View的视图层级及属性变化。

首先,笔者先来一个简单的Demo实例。我们使用Android Studio新建一个Empty Android工程,跑一下程序,界面如下图所示:

接下来,我们要对视图层级进行分析,但分析之前先给各位介绍两个视图分析工具。

1. Android SDK 中 tools 包下的 hierarchyviewer ,最终展现的视图效果如下:

2. Android Studio 也有自带的视图分析工具 Layout Inspector(布局检查器) ,打开方式如下图所示:

可以看到Layout Inspector最右侧的属性栏可以查看 每一个View的所附带的属性及属性值 。

从根视图开始分析视图层级,如下图所示:

DecorView的第一个子View(LinearLayout), 如下图所示:

DecorView的第二个子View(View),如下图所示:

DecorView的第三个子View(View),如下图所示:

至此,DecorView的最外层View全部分析完毕。

接下来,分析DecorView的第一个子View(LinearLayout),如下图所示:

ViewStub的属性信息,如下图所示:

FrameLayout的属性信息,如下图所示:

接下来,继续分析FrameLayout的子View,如下图所示:

ContentFrameLayout的视图属性,如下图所示:

ActionBarContainer的视图属性,如下图所示:

不过,还有个问题需要提醒一下, 不同机型,不同系统主题设置 生成的视图结构可能会不一样,举两个例子:

例一:笔者把使用的模拟器换成自己的手机(360N5 Android 6.0.1) ,运行后视图布局如下:

可以看到 笔者的手机是没有NavigationBar(底部导航栏)的 。

例二:笔者把Activity的主题"Theme.AppCompat.Light.DarkActionBar"换成无标题栏主题"Theme.AppCompat.Light.NoActionBar" ,运行后视图布局如下:

可以看到视图结构与我们之前分析的相比,发生了一些变化。

最后,还有个细节给各位补充下: Layout Inspector 只能分析出Android Studio当前 “正在运行的APP” 的视图布局结构,其他应用的视图布局结构是无法显示的。

如果我们想要分析一个第三方应用(如:微信、QQ)的视图结构可以使用 Android Device Monitor(安卓设备监视器) ,具体打开步骤如下图所示:

以QQ为例,我们先打开手机QQ,显示出QQ主界面,然后按照下图的 "红色圈选" ,依次点击,当前的视图结构就出来了,但是相比于 Layout Inspector 工具,视图属性信息提供的较少...

视图层级分析 到此结束,有时间再补篇源码,分析一下布局加载的流程。

写这篇文章的时候被IOS同事嘲讽了,它们吐槽Android的视图分析工具太渣,最后对比看了下,Android的视图分析工具确实没有IOS的高大上......╮(╯▽╰)╭

最后,秀一下IOS的视图分析工具 Reveal ,如下图所示:


名称栏目:android层级,android体系结构
标题来源:http://cdweb.net/article/dsdgcpp.html