- 博客(15)
- 资源 (7)
- 收藏
- 关注
原创 const与constexpr
const volatile mutableconst 定义对象为常量volatile 定义对象为易变。mutable 应用于非引用非 const 类型的非静态类成员,并指定该成员不影响类的外部可见状态(常用于互斥、内存缓存、惰性求值、及访问设备)。 const 类实例的 mutable 成员是可修改的。(注意: C++ 语言文法将 mutable 当做 stora
2017-07-21 18:16:42
745
原创 Android init language
Android Init LanguageThe Android Init Language consists of five broad classes of statements: Actions, Commands, Services, Options, and Imports.All of these are line-oriented, consisting of tokens sepa
2017-07-13 13:57:27
890
原创 Android init分析
Android init分析首先介绍init用到的一些类:action.h init_parser.h Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链接
2017-07-12 20:48:13
541
原创 Linux 进程地址空间相关问题
1.struct mm_struct中的mm字段和active_mm字段含义:mm 指向进程所拥有的内存描述符active_mm 指向进程运行时所使用的的内存描述符对于普通进程而言,这两个字段存放相同的指针。但是对于内核线程,其没有mm字段,因此内核线程的mm字段总为NULL。它的active_mm字段被初始化为前一个运行进程的active_mm值。
2017-01-11 18:49:44
341
转载 ptmalloc的分配顺序
根据用户请求分配的内存的大小,ptmalloc有可能会在两个地方为用户分配内存空间。在第一次分配内存时,一般情况下只存在一个主分配区,但也有可能从父进程那里继承来了多个非主分配区,在这里主要讨论主分配区的情况,brk值等于start_brk,所以实际上heap大小为0,top chunk大小也是0。这时,如果不增加heap大小,就不能满足任何分配要求。所以,若用户的请求的内存大小小于mmap分配阈
2016-12-10 00:27:58
1205
原创 C语言文件指针和文件描述符
C语言文件指针域文件描述符之间可以相互转换int fileno(FILE * stream)FILE * fdopen(int fd, const char * mode) FILE的结构struct _iobuf { char *_ptr; //缓冲区当前指针 int _cnt; ch
2016-03-08 15:06:08
577
原创 netstat命令---Linux查看网络和socket信息
usage: netstat [-pWrxwutneal]Display networking information.-r Display routing table.-a Display all sockets (Default: Connected).-l Display listening server sockets.-t Display TC
2016-02-26 10:34:13
1590
原创 Logd之LogBufferElement
定义部分:LogBufferElement::LogBufferElement(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, pid_t tid, const char *msg, un
2015-08-08 16:22:20
1846
转载 android源代码学习 init中的双向链表listnode
在init源代码中双向链表listnode被使用地很多。android源代码中定义了结构体listnode,奇怪的是,这个结构体只有用于链接节点的prev和next指针,却没有任何和”数据“有关的成员变量。那么代码中如何通过一个节点来找到该节点“存储“的数据呢?关键是下面这个宏。?12#define node_to_item
2014-12-16 10:41:06
1583
转载 解读CPU模式hotplug、ondemand等的意义
【hotplug】热拔插模式:→和ondemand模式差不多,当有高需求时直接跳到最高频率,当需求见效时逐级降低频率,但关屏时就单核低频运行,省电。【ondemand】按需模式:→按需调节cpu频率,不操作手机的时候控制在最低频率,滑屏或进入应用后会迅速提升至最高频率,当空闲时迅速降低频率,性能较稳定,但因频率变化幅度过大,省电方面只有一般的水平。是一种在电池和性能之间
2014-09-24 19:52:21
25688
转载 Android localSocket
LocalSocket 在Unix域名空间创建一个套接字(非服务端)。 是对Linux中Socket进行了封装,采用JNI方式调用,实现进程间通信。 具体就是Native层Server和Framework层Client之间进行通信,或在各层次中能使用Client/Server模式实现通信。LocalServerSocket 创建服务器端
2014-08-05 09:23:50
770
转载 Android的property机制
android 1号进程进程init进程在开机的时候就会调用property_init函数,至于init是怎么起来的,这里不是重点,所以暂时先不介绍,property_init的具体flow如下:system/core
2014-08-04 14:40:34
1113
原创 Android L liblog
static int __write_to_log_init(log_id_t, struct iovec *vec, size_t nr);static int (*write_to_log)(log_id_t, struct iovec *vec, size_t nr) = __write_to_log_init;
2014-07-31 09:01:38
2791
原创 Linux mutex相关知识
互斥锁(Mutex)是一种简单的通过加锁的方法来控制对共享资源的存取,一般用于解决线程间资源访问的唯一性问题.互斥锁其实很简单,它只有两种状态:上锁和解锁.在同一时刻只能有一个线程掌握某个互斥的锁,拥有上锁状态的线程能够对共享资源进行操作.若其他线程希望对一个已经上了锁的互斥锁上锁,则该线程就会挂起,直到上锁的线程释放掉互斥锁为止
2014-07-30 14:03:34
653
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人