evo

自强不息,厚德载物 ii 无人驾驶fans ^_^ Making others better! Making life better!

【Android】SystemServer启动流程

1.SystemServer SystemServer是Android中一个很重要的系统服务,是连接Native与Java的桥梁,由Zygote进程fock而出。 SystemServer在启动过程中,启动了一些Service,这些Service根据时序及重要性分为Bootstrap、Core...

2018-07-05 21:33:02

阅读数:151

评论数:0

【Arch】Android input系统之input命令

1、简介在Android input系统中,包括一个input命令,用于模拟input事件,通过keycode或字符串向设备发送key事件。2、源码位置frameworks/base/cmds/input/3、结构input命令实际上就是一个shell脚本,真正执行的是app_process命令,...

2017-06-21 19:59:26

阅读数:885

评论数:0

【C++】Android (Light)RefBase-sp-wp引用计数-智能指针源码分析

1、RefBase简介什么是RefBase?RefBase是Android中的一个C++类,用于内存管理,相关的类还包括LightRefBase、sp和wp。在Android源码中的许多地方都可以看到RefBase的使用,那么,为什么RefBase这么受欢迎呢?这源于C++的指针与动态内存管理,指...

2017-03-30 18:09:51

阅读数:1419

评论数:0

【Arch】Android 7 Nougat源码目录结构分析

|- art // Android Runtime,一种App运行模式,区别于传统的Dalvik虚拟机,旨在提高Android系统的流畅性,包括以下几个目录。 |- benchmark // 程序测试基准。 |- build // 编译...

2017-03-22 20:40:20

阅读数:4721

评论数:0

【Android】Android SurfaceFlinger之VSync

1、VSync简介在Android GUI系统的多缓冲机制中,一个关键性的角色是VSync,充分利用了CPU/GPU与Display的交互机制,让UI表现更流畅。VSync即Vertical Sync,因为Display是逐行扫描的,从上到下,当扫描到最后一行时便返回第一行进行下一轮扫描,从最后一...

2017-03-17 21:02:03

阅读数:1766

评论数:0

【Android】Android SurfaceFlinger之SurfaceFlinger启动过程

SurfaceFlinger的启动脚本surfaceflinger.rc内容如下:service surfaceflinger /system/bin/surfaceflinger class core user system group graphics drmrpc r...

2017-03-10 18:15:20

阅读数:1476

评论数:0

【Android】Android SurfaceFlinger之BufferQueue

在Android中,BufferQueue是Surface实现本地窗口的关键,驻留在SurfaceFlinger进程中进行服务,下面从BufferQueue的结构开始分析。1、BufferQueue模式BufferQueue相关的源码在frameworks/native/libs/gui/,涉及以...

2017-03-08 20:54:51

阅读数:5179

评论数:1

【Android】Android SurfaceFlinger之NativeWindow

1、EGLNativeWindowTypeAndroid的GUI构建于OpenGL ES,对于2D图形来说还可以使用Skia库(https://skia.org/)。在OpenGL ES与底层的framebuffer之间,还有一层Native介质,如NativeWindow、NativeDispl...

2017-02-28 21:07:25

阅读数:2181

评论数:4

【Android】Android SurfaceFlinger之Gralloc

1、SurfaceFlinger模块Android中SurfaceFlinger与其它模块的关系图如下所示:上图中,最底层的是Linux内核提供的framebuffer显示驱动,设备节点为/dev/graphics/fb*或/dev/fb*,其中fb0表示第一个monitor。HAL层提供了Gra...

2017-02-23 20:50:33

阅读数:1893

评论数:0

【Android】Android SurfaceFlinger之OpenGL库加载过程

1、egl_init_driversAndroid中OpenGL库加载从egl_init_drivers函数开始,源码位置在frameworks/native/opengl/libs/EGL/egl.cpp。static pthread_mutex_t sInitDriverMutex = PTH...

2017-02-17 18:04:09

阅读数:1632

评论数:1

【Android】Android SurfaceFlinger之OpenGL ES

1、OpenGL ES在Android系统中,直接面向终端用户的便是GUI,可以说任何一款产品的UI都是至关重要的,是用户可以实实在在感受到的东西,是最直观的、最易被感知的东西。SurfaceFlinger作为Android GUI系统的核心模块,与OpenGL ES息息相关,所以在分析Surfa...

2017-01-25 15:24:07

阅读数:2672

评论数:1

【Bash百宝箱】从Android.mk到Android.bp

最近更新了Android Nougat源码,无意间发现Android的编译系统已经发生了巨大改变,到处是“Android.bp”文件,下面就来看一下这个bp文件到底是何方神圣。首先从Soong说起,Soong是Android中对基于GNU make的编译系统的替代物,编译文件“Android.mk...

2017-01-24 14:01:15

阅读数:17861

评论数:1

【Bash百宝箱】envsetup.sh及lunch

在Android开发环境中编译一个目标时,一般要执行下面三行命令:$ . build/envsetup.sh $ lunch <product_name>-<build_variant> $ make [module]这三行命令是什么意思呢?下面逐一介绍。1、envsetu...

2016-04-12 13:09:33

阅读数:1330

评论数:0

【C++】Android中的同步机制

在涉及多线程、多进程编程时,同步问题是不可避免的。在不同的操作系统或者项目中,都有自独特的同步手法,不过同步原理基本相同。在Android系统中,封装了几个同步类,下面来看一下这些同步类的源码是如何实现的。1、MutexMutex是个互斥锁,即MUTual EXclusion,对pthread的m...

2016-01-15 17:34:00

阅读数:2181

评论数:0

【Bash百宝箱】Android编译系统(Makefile)

MakefileAndroid编译系统基于GNU make,用来管理Makefile,Makefile的基础知识可参考: http://blog.csdn.net/ieearth/article/details/47296429Makefile最一般的规则就是个依赖树,如下:target: pr...

2016-01-13 14:33:08

阅读数:1234

评论数:0

【Bash百宝箱】Android源码下载及编译

版本管理在分析Android源码之前,首先要了解一下相关的版本管理工具。Git工具是一种分布式的版本管理系统,最初被设计用于Linux内核的版本控制。Git功能强大,但也有之不便之处,Android中有许多项目,用git来统一管理就显得力不从心了,为此Google用Python开发了一套专门用来管...

2016-01-08 19:09:43

阅读数:991

评论数:0

【Arch】Android系统简介

Google IO下面是Google IO的logo(IO是什么意思?网上有几个不同版本的解释)——Google IO是由Google举办的网络开发者大会,旨在讨论用Google和开放网络技术去开发网络应用。Google IO大会从2008年开始,在美国加州旧金山每年举行一次。2015年的Goog...

2016-01-06 18:09:20

阅读数:847

评论数:0

【Bash百宝箱】adb

adb即Android Debug Bridge,是一个通用的命令行工具,用来与安卓设备或模拟器交互。adb是一种client-server程序,由三个部分组成:client、server和daemon。 adb工具位于安卓sdk的platform-tools目录下。 adb命令语法—— adb...

2015-03-27 17:40:39

阅读数:939

评论数:0

提示
确定要删除当前文章?
取消 删除