Android application framework 分析[in process]

  1. application activity
  2. application service
  3. application UI system
  4. application sdk tool
  5. JVM

1 activity

the first JVM instance => zygote

app_main

->AndroidRuntime(now start jvm instance,and start to load zyogteinit class and execute main method)

->zygoteinit(register socket,preloadclass and resource preload)

->start system server

-> wait for socket connection and do something…

systemserver

->init all system service

zygote accept request from activitymanager,and fork a new process,and execute activitythread in new process.

Activitymanagerservice—>

2 service

3 UI system

activity UI

-> every window the top view is decor view,phonewindow has viewroot and windowsmanager which windowmanager stands for windowmanagerservice

-> view root incldues Iwindow and a surface ,while IWindow receive callback from wms,and surface point to the buffer created by windowsmanagerservice.

surface system

from picture above that we can see the buffer is in the process of systemserver,which contains wms.

render process

the surface memory is allocated by gralloc module. and surfaceflinger take charge of mix different layers, and render framebuffers to device by using opengl methods.

时间: 2024-12-17 11:55:19

Android application framework 分析[in process]的相关文章

Android的Framework分析---5 ActivityManager分析

ActivityManager是android框架的一个重要部分,它负责一新ActivityThread进程创建,Activity生命周期的维护,管理系统中的Acitvity的状态切换. 这边内容还有更多内容,详细请参看ActivityManager.java ,ActivityMangaerNative.java 和SystemServcer.java 文件. 这几个的类的关系如下: 上图很清楚地描述了ActivityManager框架的几个主要类之间的关系,我们做应用开发接触很多的其实就是A

Android的Framework分析---4硬件抽象HAL

大家都知道android是基于linux的kernel上的.android可以 运行在intel,高通,nvidia等硬件平台.但是涉及到一些GPU,显卡和一些设备的驱动问题,因为这些驱动都不是开源的,google位了兼容这些设备厂商的驱动源码,提出了硬件抽象层HAL的概念.HAL层对上为framework和native开发提供统一的API接口,为下层驱动的代码提供统一的调用接口.本文主要讲解HAL是如何实现的. 1.HAL的数据结构 HAL的通用写法里面有两个重要的结构体: 1.1 hw_mo

android原生browser分析(一)--Application

类Browser.java是整个应用的Application.其代码如下: public class Browser extends Application { @Override public void onCreate() { super.onCreate(); // create CookieSyncManager with current Context CookieSyncManager.createInstance(this); BrowserSettings.initialize(

Android Framework 分析---消息机制Native层

在Android的消息机制中,不仅提供了供Application 开发使用的java的消息循环.其实java的机制最终还是靠native来实现的.在native不仅提供一套消息传递和处理的机制,还提供了自定义文件描述符的I/O时间的监听机制.下面我们从具体代码中分析一下. Native层的关键类: Looper.cpp.该类中提供了pollOnce 和wake的休眠和唤醒机制.同时在构造函数中也创建 管道 并加入epoll的机制中,来监听其状态变化. Looper::Looper(bool al

Android Framework 分析---PackageManager 分析

在windowphone,ios和android中到目前为止,还是android的市场份额最大.个人认为除了google开源外,广大开发者早就了android的霸主地位.各位兄弟姐妹开发出各种各样的apk,才组成android的广阔天下.本篇主要分析一下android系统是针对处理这些apk的,主要涉及到pm这块的代码.分析这种底层服务,最好从android的开启启动流程中开始分析.因为这样才能更清楚的了解服务的启动流程. 1.在SystemServer.java 中启动PM android 开

Android application testing with the Android test framework

目录(?)[-] Android automated testing 1 How to test Android applications Tip 2 Unit tests vs functional tests 3 JUnit 3 4 Running tests on a server without display Test hooks into the Android framework 1 Instrumentation 2 How the Android system executes

【Android 应用开发】 Application 使用分析

博客地址 : http://blog.csdn.net/shulianghan/article/details/40737419 代码下载 : Android 应用 Application 经典用法; -- Github : https://github.com/han1202012/ApplicationDemo -- CSDN : http://download.csdn.net/detail/han1202012/8127247 一. Application 分析 1. Applicati

Android Framework中的Application Framework层介绍

Android的四层架构相比大家都很清楚,老生常谈的说一下分别为: Linux2.6内核层,核心库层,应用框架层,应用层.我今天重点介绍一下应用框架层Framework. Framework层为我们开发应用程序提供了非常多的API,我们通过调用特殊的API构造我们的APP,满足我们业务上的需求.写APP的人都知道,学习Android开发的第一步就是去学习各种各样的API,什么Activity,Service,Notification等.这些都是framework提供给我们的,那么我就详细的讲讲F

Android4.4 Framework分析——Android默认Home应用Launcher3的加载过程分析

本文主要介绍Android4.4默认Home应用Launcher3的启动过程和Launcher3的数据加载过程.Launcher的启动是开机时,ActivityManagerService准备好后开始的,下图是它的启动序列图: step1,SystemServer中,ActivityManagerService准备好了. step3, boolean resumeTopActivitiesLocked(ActivityStack targetStack, ActivityRecord targe