前言:从事android工作也有几年了,慢慢对android基础和知识点不那么重视了,觉得自己开始浮躁了,没有方向。我想重新回顾一下android,总结,整理并且提高。
一、android虚拟机
在android2.2之前使用dalvik虚拟机。
DALVIK特点:1.在android系统中每liunix进程都会单独的分配一个虚拟机,有独立的用户id,保证了app的安全性,且当一个进程崩溃不会导致系统崩溃。
2.虚拟机会执行Dex文件(Dex文件是将多个class文件合并起来,可以减少空间)。
3.采用了JIT(just in time) 编译模式,每次运行时会比较慢
4.dalvik是基于寄存器,jvm是基于栈,前者更快一些。
之后采用了ART模式虚拟机,采用了AOT (Ahead of time),在应用安装之前会编译
ART特点:安装时间较长一点,安装完成占用空间大一点。app启动速度要快
二 、cpu架构
armeabi 第五代ARM ,兼容所有ARM设备,通用性强,速度慢
armeabi-v7a 第七代ARM v7,具有高级扩展功能
arm64-v8a 第八代,64位。
X86、X86_64 分别时intel 32位和64位,一半用于平板(模拟器)
mips、mips64 很少接触
三、android系统架构
android系统一共分为四层
首先,分层是一个抽象概念,为了方便管理而分层的,下层服务于上层,这些层次组合成了android操作系统。
一 linux内核层:包括进程管理,网络堆栈,内存管理,驱动模型等。它和底层硬件直接打交道,并为上层提供服务。
二 库和运行时:库提供了c/c++库,媒体库,界面管理,sqlite等库,运行时提供了java库和dalvik虚拟机。
三 应用框架层:为应用程序提供ActivityManager、WindowManager等应用框架。
四 应用层:手机上安装运行的应用。
四、android各个版本
android4.4主要改动
1.简化组件和内存使用率,提高性能
2.通过主机卡模拟HFC实现新的NFC功能
3.新增打印框架和快捷访问文档(图片,下载等)
4.通过硬件传感器批处理降低传感器功耗
5.提供全屏沉浸模式,透明系统ui(状态栏和导航栏),转场动画
6.全新的chormium webview,gpu加速等。
android5.0主要改动
1.Meteria Design风格,等(比较多的小改动)
android6.0主要改动
1.运行时权限。通过checkSelfpermission()和requestPermission()检查和请求权限
2.低耗电和应用待机模式
3.取消支持Apache HttpClient支持,推荐使用更高效的httpUrlConnect
4.变更文本选择api,如选中文本 复制 粘贴 分享等。。