JackPeng

Keep on going never give up

Linux系统调用(syscall)原理

引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及app、framework、native一直到kernel,可能迷失到代码世界,明白了系统调用原理,或许能帮你峰回路转,找到进入kernel函数的入口。本文主要讲解ARM架构相关源码: /bionic/libc/kernel/uapi/asm-arm/asm/unistd.h /bionic/libc/ar...

Android EventLog含义

1. EventLog 在调试分析Android的过程中,比较常用的地查看EventLog,非常简洁明了地展现当前Activity各种状态,当然不至于此,比如还有window的信息。那么本文就列举以下am相关的tags含义。 本文涉及的源码类有EventLog.java, EventLogTags.java,另外tags格式的定义位于文件/system/etc/event-log-ta...

dumpsys命令用法

dumpsys命令功能很强大,能dump系统服务的各种状态,非常有必要熟悉该命令的用法以及含义。 一、 dumpsys命令 1.1 服务列表 不同的Android系统版本支持的命令有所不同,可通过下面命令查看当前手机所支持的dump服务,先进入adb shell,再执行如下命令:dumpsys -l。 这些服务名或许你并看不出其调用的哪个服务,那么这时可以通过下面指令:serv...

如何自学Android

引言:在知乎上回答了 自学编程一年,压力过大,该怎么办? - Gityuan 的回答,之后有不少知乎朋友私信或email给我,希望能讲讲学习Android的心得。已有不少人士写过自学Android相关文章,那么本文则是Gityuan的学习经历,仅供大家参考。 看到很多人提问非科班该如何学习编程,其实科班也基本靠自学。有句话叫“师傅领进门修行靠个人”,再厉害的老师能教你的东西都是很有...

理解杀进程的实现原理

基于Android 6.0的源码剖析, 分析kill进程的实现原理,以及讲讲系统调用(syscall)过程,涉及源码: /framework/base/core/java/android/os/Process.java /framework/base/core/jni/android_util_Process.cpp /system/core/libprocessgroup/pro...

理解Android进程创建流程

基于Android 6.0的源码剖析, 分析Android进程是如何一步步创建的,本文涉及到的源码: /frameworks/base/core/java/android/os/Process.java /frameworks/base/core/java/com/android/internal/os/ZygoteInit.java /frameworks/base/core/j...

理解Android编译命令

工欲善其事,必先利其器,对于想要深入学习Android源码,必须先掌握Android编译命令. 一、引言 关于Android Build系统,这个话题很早就打算整理下,迟迟没有下笔,决定跟大家分享下。先看下面几条指令,相信编译过Android源码的人都再熟悉不过的。 source setenv.sh lunch make -j12 记得最初刚接触Android时,同事告诉我...

startActivity流程分析(一)

基于Android 6.0的源码剖析, 分析android Activity启动流程中ActivityManagerService所扮演的角色 /frameworks/base/services/core/java/com/android/server/am/ActiveServices.java /frameworks/base/services/core/java/com/an...

startService流程分析

基于Android 6.0的源码剖析, 分析android Service启动流程中ActivityManagerService所扮演的角色 /frameworks/base/services/core/java/com/android/server/am/ActiveServices.java /frameworks/base/services/core/java/com/and...

Binder IPC的权限控制

基于Android 6.0的源码剖析, 分析Binder IPC通信的权限控制方法clearCallingIdentity和restoreCallingIdentity的原理和用途。 /frameworks/base/core/java/android/os/Binder.java /frameworks/base/core/jni/android_util_Binder.cpp ...