认识Android核心服务

核心服务 :Android Service 和 Nateive Service  共有50-80种

  Android Service    java实现的

  Nateive Service     C/C++实现

核心服务都是IPC 采用IBinder接口

ServiceManager  重要的服务

开机过程当中 启动数十个系统服务

当开机完成时 全部的核心服务启动完成

Android 开机过程 

os 检测 linux kernel  + Drivers + HW

init进程 读取init.rc 文件     (init.rc configuration 配置文件)

  1.创建Runtime 进程 --- 创建serviceMangager

  2.创建Zygote 进程  ---- 创建VM   (Zygote 使用C++ /java实现的)

             ---- 创建System Server (Android Service 和 Native Service)

init 进程启动 server  (system server 和 surfaceFinger  和 MediaServer)

Android app应用的启动

  ActivityManagerSerVice启动一个app,通过socket请求zygote来fork一个进程给这个app  

时间: 2024-10-25 01:54:16

认识Android核心服务的相关文章

Android核心服务解析篇(一)——下载Android源代码

在文字,语音,图像来说,人记住的最好或者是最多的往往是图像.对于想了解Android核心服务的程序员来说,下载Android源码来了解核心服务是最快,也是最好的方法.下面我们就从安装Android源码开头来了解Android核心服务. 1.在Linux系统中获取Android源码 ⑴下载repo 在用户目录下,创建bin文件夹,用于存放repo,并把该路径设置到环境变量中去,命令如下: $ mkdir ~/bin $ PATH=~/bin:$PATH 下载repo的脚本,用于执行repo,命令如

Android核心服务解析篇(一)——Android系统的启动

从大的方面来说,Android系统的启动可以分为两个部分:第一部分是Linux核心的启动,第二部分是Android系统的启动.第一部分主要包括系统引导,核心和驱动程序等,由于它们不属于本篇要讲的内容,这里就不再讨论.在本篇博客中,我们重点讲解Android系统的启动,这一过程主要经过两个阶段,分别是应用的初始化流程与system_service进程及核心服务的创建流程. 1.初始化流程 初始化流程,顾名思义,它完成Android的一些初始化工作,包括设置必要的环境变量,启动必要的服务进程,挂载必

Android核心服务解析篇(三)——Android系统的启动

从大的方面来说.Android系统的启动能够分为两个部分:第一部分是Linux核心的启动,第二部分是Android系统的启动. 第一部分主要包含系统引导,核心和驱动程序等,因为它们不属于本篇要讲的内容,这里就不再讨论. 在本篇博客中,我们重点解说Android系统的启动,这一过程主要经过两个阶段.各自是应用的初始化流程与system_service进程及核心服务的创建流程. 1.初始化流程 初始化流程.顾名思义,它完毕Android的一些初始化工作,包含设置必要的环境变量,启动必要的服务进程,挂

android核心服务初探

终于进入android学习的进阶阶段,第一个课题是android的核心服务.首先,让我们来认识一下核心服务. android核心服务与app服务有所区别.app服务继承自Service基类,在app运行时启动并绑定到Activity上.核心服务是在设备开机时解析init.rc文件预装在系统中的,早于任何一个app进程和app服务.app服务是有ActivityManangerServiec启动并绑定,而核心服务必须在ServiceManager中注册. 核心服务有分为native service

Android核心服务解析篇(二)——Android源码结构分析

获得Android源码后,我们来分析源码结构.源码的全部工程分为如下三个部分. ①Core Project:核心工程部分,这是建立Android系统的基础,保存在根目录的各个文件夹中. ②External Project:扩展工程部分,可以使其他开源项目具有扩展功能,保存在external文件夹中. ③Package:包部分,提供了Android的应用程序,内容提供者,输入法和服务,保存在package文件夹中. 在获取的Android4.3源码目录中,包含了原始Android的目标机代码,主机

Tom's Android Course

Android底层框架解析与        Java&C/C++软硬整合开发技术 主讲人:高焕堂 (台湾Android教父级专家) 课程简介: 在智能&大数据时代,系统开发不仅仅攸关软件设计与开发,还涉及深度软硬整合的智能硬件设计与开发.在当今产业的成功方程式:(((硬件+ 软件) + 内容) + 电信)潮流下,如何将硬件.软件.内容和通信等一群<不会飞>的组件,以一种神奇的创新架构(Architecture)来组织起来,创造神奇的整体,像飞机一样<能飞>起来. 在

Android 启动过程的底层实现

转载请标明出处: http://blog.csdn.net/yujun411522/article/details/46367787 本文出自:[yujun411522的博客] 3.1 android正常模式启动流程 主要流程例如以下: 1.系统加电.运行bootloader,bootloader会将内核载入到内存中. 2.内核载入到内存之后首先进入内核引导阶段,最后调用start_kernel进入内核启动.start_kernel终于会启动init程序 3.init程序负责解析init.rc文

Android内核开发:图解Android系统的启动过程

本文是<Android内核开发>系列的第六篇文章,前面的几篇文章介绍了Android内核开发相关的基础知识,包括:Android源码的下载.版本和分支介绍.编译和烧写等等,从本文起就要开始真正地进行Android内核的学习及实战了. 学习任何软硬件系统,研究系统启动过程都是一种非常有效地起步手段,搞Android内核开发也不例外.网上有很多文章对Android启动相关代码进行分析和走读,大家可以先搜索阅读一下,我个人更喜欢更加直观的方式去理解未知的东西,包括图.表.系统输出的log信息等等,因

Android PackageManager基础知识

一.PackageManagerService启动过程 SystemServer首先启动,创建一个ServerThread线程来启动所有Android核心服务,其中PackageManagerService.main方法启动了PackageManagerService. main方法中就是实例化PackageManagerService对象,并注册到ServiceManager中. PackageManagerService的构造过程设计到几个重要的操作:    1.创建Settings对象,向