evo

自强不息,厚德载物 ii Making others better! Making life better ^_^

【Android】java动态库、静态库的编译与使用

在Android的makefile编译系统中,编译结果是多种多样的,这个可以从build/make/core/config.mk中看出,部分代码如下所示: BUILD_HOST_STATIC_LIBRARY:= $(BUILD_SYSTEM)/host_static_library.mk BUIL...

2018-11-30 19:27:43

阅读数:106

评论数:0

【Android】玩转命令行工具-dumpsys

dumpsys是Android设备中的一个命令行工具,用来打印一些系统服务的信息,如input、ram、battery、network等。dumpsys默认会打印所有系统服务的信息,数据很多,所以一般要通过参数指定需要的信息。 dumpsys的语法格式如下: adb shell dumpsys [...

2018-11-29 18:50:30

阅读数:44

评论数:0

【Android】玩转命令行工具-aapt2

aapt2即Android Asset Packaging Tool,是Android中的资源打包工具,另外还有个废弃的aapt。aapt2是Android API 26.0.2才出现的,在Android SDK中的位置为android_sdk/build-tools/version/aapt2。...

2018-11-29 16:15:33

阅读数:79

评论数:0

【Android】玩转命令行工具-apkanalyzer

apkanalyzer,从名字就可以看出这是一个分析apk的工具,最简单的使用方法是在AndroidStudio中点击Build,然后选择Analyze APK...,本文介绍如何在命令行使用apkanalyzer。 apkanalyzer在Android SDK中,位置为android_sdk/...

2018-11-28 21:30:46

阅读数:46

评论数:0

【Android】开机流程-从init到home

【Android】开机流程-从init到home1 概览2 流程1.1 init1.1.1 简介1.1.2 两个阶段1.1.3 init.rc功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右S...

2018-11-27 15:14:51

阅读数:77

评论数:0

【Android】SystemServer启动流程

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

2018-07-05 21:33:02

阅读数:170

评论数: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

阅读数:910

评论数: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

阅读数:1503

评论数:0

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

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

2017-03-22 20:40:20

阅读数:4883

评论数:0

【Android】Android SurfaceFlinger之VSync

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

2017-03-17 21:02:03

阅读数:1813

评论数: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

阅读数:1544

评论数:0

【Android】Android SurfaceFlinger之BufferQueue

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

2017-03-08 20:54:51

阅读数:5611

评论数: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

阅读数:2439

评论数: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

阅读数:2018

评论数: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

阅读数:1707

评论数:1

【Android】Android SurfaceFlinger之OpenGL ES

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

2017-01-25 15:24:07

阅读数:2880

评论数: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

阅读数:20724

评论数:1

【Bash百宝箱】envsetup.sh及lunch

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

2016-04-12 13:09:33

阅读数:1376

评论数:0

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

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

2016-01-15 17:34:00

阅读数:2233

评论数: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

阅读数:1289

评论数:0

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