
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
在一些跑linux 系统的平台上,比如故事机,会支持sdcard 热插拔的功能,也就是在sdcard 插入后,把sdcard mount到文件系统中,sdcard拔出后移除。上层应用要怎么知道这个事件呢,应用层可以注册监听uevent 事件即可,下面给出对应的实现。#include <stdio.h>#include <string.h>#
通过前一篇的博客,我们知道,在linux kernel加载完可执行程序后,在需要解释器的情况下,返回用户空间时会先跳到解释器的函数中执行,对于android平台而已,就是先跑到_start()函数,然后再跳转到__linker_init()。bionic/linker/linker.cppextern "C" ElfW(Addr) __linker_init(void* raw_args)
在zygote进程启动过程中会创建art虚拟机,那我们就看一下art虚拟机是怎么创建出来的。用户空间的init进程起来之后,会根据.xxxrc 文件中的配置,把相关进程运行起来,通过fork()和execve()来创建和加载对应的进程,我们锁熟悉的zygote进程也是在这个时候被运行起来的,zygote进程的前身是app_process,到了后面才把这个进程的名字改成zygote,可执行程序为
arm平台开机的时候,会先跑ic内部的rom code,rom code把flash上的uboot加载到dram中,然后执行uboot。不同的ic厂商uboot实现可能不一样,有些厂商会把uboot拆分为两个部分,第一部分会先加载到ic内部的sram运行起来,然后初始化dram,再把第二部分加载到dram中运行起来。这里我们不再深入探讨,我们只分析common的部分,uboot在跳转到kernel
前面的博客有提到过android事件上报流程,InputReaderThread 从EventHub读到按键事件后,交给InputDispatcher往上上报,我们从这里跟踪一下长按power键关键流程,frameworks/native/services/inputflinger/InputDispatcher.cppvoid InputDispatcher::notifyKey(co
1、Error:(1, 1) A problem occurred evaluating project ':app'.> Failed to apply plugin [id 'com.android.application'] > Minimum supported Gradle version is 3.3. Current version is 3.2. If using th
surface 可以简单的理解成如下的模型,一个surface 对应一个layer。 简单的画出surface 将buffer送到surfaceflinger显示的流程。
下面是一个用openssl 实现获取https 网页内容的demo,整个流程比较简单,主要封装的API如下static int https_init(https_context_t *context,const char* url);static int https_uninit(https_context_t *context);static int https_read(https_...
使用socket 的api 来实现下载http 网络资源,其实整个流程也十分简单1、解析url 得到域名 和 资源位置2、根据域名得到服务器ip地址,然后通过ip 和端口建立socket连接3、发送http 请求4、解析http 响应5、根据返回的响应内容,等到资源的大小,接收资源数据,保存到文件即可 需要引用到的头文件和一些常量的定义#include <s...
前面一篇博客介绍了memblock初始化的流程,实际上并没有介绍完整,只是列出了大概的流程,设计到的相关数据结构都没有介绍,所以接下里继续了解memblock使用到的数据结构,以及是如何进行内存分配和管理的。linux-4.10/include/linux/memblock.h47struct memblock {48bool bottom_up;/* is bottom up d...







