我对Android的认识
这篇文章有点像,之前我谈的对计算机的认识,都是很浅显,没有依据的一些理解。
之所以说没有依据,是我没有仔细的深究,因为,我看了很多资料,很难懂,不是很理解,却又理解一点点。自己不现在做一下梳理,再把这个事放一下,心里会很不舒服,反而会卡在这个地方,没法前进。
看不懂别人写的,是因为,基础不够。所以就简单的说一下。
首先呢,我认识到,Android是一个基于Linux系统的系统。什么是Linux呢?简单的说就是一个操作系统,是Unix的一种,可以说是他发展而来的。Linux内核里面集成了调用实体设备的驱动程序,用来驱动真实实体设备。并暴露接口调用给中间层。中间层可以分为两块:运行库和运行时。并封装了相应的接口调用给应用程序框架层。(系统运行库:当我们使用Android应用框架时,Android系统会通过一些C/C++库,来支持我们使用的各个组件。运行时:Android平台的虚拟机)。应用程序框架层封装了开发应用所需要的核心API,提供了丰富的组件。在应用层就是我们使用的APP。
上面只是一个静态的架构,看不出来整个Android的运行状况。他的设计就是这样的,上面两层是用JAVA语言,下面两层是C/C++语言。
从手机启动开始,我们来分析一下动态的过程。
首先,通过bootloader(系统加载器,这一部分是固化在手机硬件中的)加载Linux内核。在Linux内核加载启动时,与普通的得Linux启动过程相同,先初始化内核,然后调用init进程。init进程启动zygote它解配置文件init.re(系统配置文件)及initXXX.rc(与硬件平台相关的文件,单片机中外接的硬件,要初始化某些设置一样吧,我我理解是这样的)的内容,执行一系列的命令,包括创建mount目录,安装文件系统,设置属性,启动属性服务器,启动Socket服务端口,加载preload-classes和preload-resource(Framework大部分类及资源),fork启动新的进程Zygnote。
这是手机启动的过程。手机在使用中,是通过Zygnote进程孵化出一些进程,这些进程也就是我们所说的APP。
越写越头昏,涉及的太多东西。知识底蕴不够,就不在深究了。这些放一放,先把应用层开发的学好,再回头来看这些问题。
下个星期一,要开始实习了!!!终于可以接触真正的工作了。加油!!!
我对Android的认识相关推荐
- Unity5.6+ 导出Android 应用程序apk的环境配置及导出过程
首先下载并安装安卓SDK和java的JDK 安卓sdk下载: http://www.android-studio.org/ 也可以在这下载: 链接:http://pan.baidu.com/s/1bp ...
- Android 的NDK的Makefile编写
Android.mk 是google根据Linux GNU Makefile精简编译脚本.具体来说:这就是GNU Makefile的一小部分. 举一个简单例子: LOCAL_PATH := $(cal ...
- Android Animation (安卓动画)概念简介
Android Animation Android 四种动画分别为逐帧动画和补间动画.属性动画.过渡动画: Frame Animation (逐帧动画) 实现方式:xml 和 Java代码 图片跳转的 ...
- 基于Android和SpringBoot的购物App
(Shopping)购物应用商城 本软件使用Android和SpringBoot.JavaWeb技术实现:并结合百度LBS平台的SDK.支付宝App支付客户端SDK.MobTech的ShareSDK: ...
- Android数据持久化:SharePreference
SharePreference:作为Android数据持久化的一种,具有一定的便捷性,适合存储一些体积小的数据. 存储数据方式:键值对的方式,类似于Map: 利用SharePreference.Edi ...
- Android数据持久化:文件存储
数据持久化: 数据可分为瞬时数据和关键数据.保存在内存之中的数据是瞬时数据,而对于一些关键性数据,后期需要持续使用的,应当保存在存储设备中: 持久化保存方式: 文件存储.SharePreference ...
- Android Studio中RecycerView依赖库加载问题
依赖包导入思考: 参考资料:recycleview导包问题 打开修改本项目中的build.gradle; 切勿着急添加包,应当提前查看其中的版本号(因为加载的v7包要和其版本保持一致性): 例如: 因 ...
- Android布局优化之include、merge、ViewStub
include:引入重复使用的相同布局 merge:减少include布局的层级,将子元素直接添加到merge标签的parent中 ViewStub:其实就是一个宽高都为0的一个View,它默认是不可 ...
- Android动画之帧动画和补间动画
Android系统提供三种动画:帧动画.补间动画和属性动画.这里先分析总结帧动画和补间动画. FrameAnimation 帧动画,通俗来说就是按照图片动作顺序依次播放来形成动画,创建帧动画可以用 x ...
- Android系统的启动过程
Android系统的启动过程可以简单地总结为以下几个流程: 加载BootLoader -> 初始化内核 -> 启动init进程 -> init进程fork出Zygote(孵化器)进程 ...
最新文章
- idea网页预览功能_IDEA 2020.2 重磅发布,动画级新功能预览!
- 小坑记录:get_cmap参数区分大小写
- 【Kaggle-MNIST之路】CNN结构改进+改进过的损失函数(五)
- c# 数组中的空值_译 | 你到底有多精通 C# ?
- C51单片机其他名词英文全称
- matlab离散点用折线连接起来
- 飞书上点链接怎么指定跳转浏览器_东半球最接地气的短链接系统设计
- 前端好学还是Java好学?
- Atitit.判断元素是否显示隐藏在父元素 overflow
- 实验任务四:实现登陆界面
- 打印一只Nyan Cat(彩虹猫)(C++)
- 西门子SITOP电源维修6EP1336-3BA00冗余电源模块维修概述
- c51单片机流水灯程序汇编语言,基于51单片机的流水灯程序
- i3 9350KF和i5 9400F的区别
- C语言高级教程-C语言数组(六):变长数组
- SQLServer中使用between查询日期
- 五福题材的公众号图文排版有哪些素材?
- puppy linux安装中文包,Puppy Linux 4.00 的中文支持包
- 微信小程序之音乐播放
- Python依赖管理和打包工具poetry