本文基于原生Android 9.0源码来解读hidden API的限制调用机制 libcore/ojluni/src/main/java/java/lang/Class.java art/runtime/native/j…
标签:Gityuan
global reference限制策略
基于Android 9.0源码来讲一讲global reference问题 art/runtime/jni_internal.cc art/runtime/indirect_reference_table.cc art/…
深度解读ArrayMap优势与缺陷
ArrayMap在内存使用上较HashMap更有优势,在Android开发中广为使用的基础API,也是大家所推荐的方法, 但你是否想过Google如此重要的基础类存在缺陷? 一、引言 在移动设备端内存资源很珍贵,Hash…
源码解读epoll内核机制
从源码角度来领略一下内核的轮询机制 kernel/fs/eventpoll.c kernel/include/linux/poll.h kernel/include/uapi/linux/eventpoll.h 一、概述…
源码解读Linux等待队列
从源码角度来解读Linux等待队列机制,了解休眠与唤醒的运转原理 kernel/include/linux/wait.h kernel/kernel/sched/wait.c kernel/include/linux/s…
源码解读poll/select内核机制
从源码角度来解读内核的轮询机制,了解是如何实现事件监控功能的 kernel/fs/select.c kernel/include/linux/poll.h kernel/include/linux/fs.h kernel…
理解Android.bp
介绍Android最新的编译系统 一、简介 早期的Android系统都是采用Android.mk的配置来编译源码,从Android 7.0开始引入Android.bp。很明显Android.bp的出现就是为了替换掉And…
解读Android进程优先级ADJ算法
本文基于原生Android 9.0源码来解读进程优先级原理,基于篇幅考虑会精炼部分代码 一、概述 1.1 进程 Android框架对进程创建与管理进行了封装,对于APP开发者只需知道Android四大组件的使用。当Act…
系统角度解读Android P新特性
引言 2018年3月8日,谷歌发布了Android P的预览版,预计今年的Q3季度发布final release版本,有不少文章从开发者角度介绍了Android P的新特征,初步来看给感觉这次大版本似乎并没有什么改变。接…
深度剖析APP保活案例
这是作者在去年处理的一个关于进程保活的案例 一. 引言 1.1 保活概述 什么是保活?保活就是在用户主动杀进程,或者系统基于当前内存不足状态而触发清理进程后,该进程设法让自己免于被杀的命运或者被杀后能立刻重生的手段。 保…
数组越界导致系统重启的案例
这是作者在2017年处理的数组越界的案例,要理解该问题需熟练掌握以下知识: Activity启动流程 进程创建流程 ANR触发流程 一. 问题描述 引言 一般数组越界问题, 往往是涉及多线程并发的情况下, 某个或多个临界…
Android logd日志原理
基于Android源码6.0,解读logd的日志记录过程 frameworks/base/core/java/android/util/ - Log.java - Slog.java - EventLog.java fr…