Android系列学习

版权声明: 本站所有博文内容均为原创,转载请务必注明作者与原文链接,且不得篡改原文内容。

Android 系统

platform_architecture

从这张图里面我们能清楚知道每一层的作用,本博客主要在 Framework 和 Native、Android Runtime 两层作讲解。

Framework

Framework 通过使用Java语言编写的API,您可以使用Android OS的整个功能集。 这些API通过简化核心,模块化系统组件和服务的重用,构成了创建Android应用所需的构建块,其中包括:

  • 丰富而可扩展的View System
  • Resource Manager
  • Notification Manager
  • Activity Manager
  • Content Providers

Native C/C++ Libraries

许多核心的Android系统组件和服务(例如ART和HAL)都是根据需要使用C和C ++编写的本机库的本机代码构建的。 Android平台提供了Java框架API,以将某些本机库的功能公开给应用程序。

如果您要开发需要C或C ++代码的应用程序,则可以使用Android NDK直接从您的本机代码访问其中一些本机平台库。

Android Runtime

对于运行Android 5.0版(API级别21)或更高版本的设备,每个应用程序都以自己的进程运行,并带有自己的Android运行时(ART)实例。 通过执行DEX文件(一种专门为Android设计的字节码格式,已针对最小的内存占用空间进行了优化),ART可以在低内存设备上运行多个虚拟机。 构建工具链(例如Jack)将Java源代码编译为DEX字节码,该代码可在Android平台上运行。

对于这一部分讲解主要会停留在虚拟机概念上。

目标

这是一篇立flag的文章,自己想在这两层做源码分析,这将是整个文章的目录。

通信方式

Android 是基于 Linux 开发,进程间、线程间的通信必不可少,其中进程间的通信方式主要有

  • 文件
  • AIDL(基于binder)
  • Binder
  • Messenger(基于binder)
  • ContentProvider(基于binder)
  • socket
    而线程间进程通信呢,主要就是Handler,整个Android的消息机制都是建立在Handler上的。

Android 进程

Android 系统启动过程就是由Boot loader引导开机,以此进入 内核, Native,Framework,App

系统稳定性

系统稳定性主要分为超时(timeout)和异常崩溃(crash)。

系统组件

对于Android来说,最为著名的就是四大组件,Activity、Service、Broadcast Receiver、ContentProvider;这四大部分的源码对于Android工程师来说应该是最为手到擒来的了。

系统服务

AMS、PMS 、WMS等系统服务作为我们最为熟知的系统服务他是怎么工作的,了解一下?

虚拟机

如何在 Android 平台上跑Java 代码呢?虚拟机扮演着十分重要的角色,5.0之前是 Dalvik虚拟机,之后是Android Runtime(ART)虚拟机,原理了解下?