Quantcast
Channel: Gityuan
Browsing all 119 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

理解杀进程的实现原理

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

View Article


Image may be NSFW.
Clik here to view.

如何自学Android

引言:在知乎上回答了 自学编程一年,压力过大,该怎么办? - Gityuan...

View Article


ActivityManagerService启动过程(一)

基于Android 6.0的源码剖析, 分析Android系统服务ActivityManagerService,简称AMSframeworks/base/core/java/android/app/ActivityThread.java frameworks/base/core/java/android/app/LoadedApk.java...

View Article

Image may be NSFW.
Clik here to view.

dumpsys命令用法

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

View Article

Linux系统调用(syscall)原理

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

View Article


Android JNI原理分析

引言:分析Android源码6.0的过程,一定离不开Java与C/C++代码直接的来回跳转,那么就很有必要掌握JNI,这是链接Java层和Native层的桥梁,本文涉及相关源码:frameworks/base/core/jni/AndroidRuntime.cpp libcore/luni/src/main/java/java/lang/System.java...

View Article

Android EventLog含义

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

View Article

Android Broadcast广播机制分析

基于Android 6.0的源码剖析,...

View Article


Image may be NSFW.
Clik here to view.

Atom编辑器

一、概述今天给大家强力推荐一款文本编辑器,非常棒,而且支持markdown语法,这是最初选择的出发点。Atom是Github专为hacker推出的开源的文本编辑器,支持linux、window等多平台,界面简洁优雅,当第一眼看到atom界面的时候就深深地被吸引:;用过很多款文本编辑器,从没有一款让我如此喜欢,Atom提供非常方便进行主题二次开发,插件扩展化等非常适合定制,并且可以直接方便得修改所有相...

View Article


Bugreport源码篇(一)

一、概述通过adb命令可获取bugrepport信息,并输出到文件当前路径的bugreport.txt文件:adb bugreport > bugreport.txt...

View Article

Bugreport实战篇(二)

实战分析文章Bugreport源码篇(一)从源码角度阐释了Bugreport,那么本文则是从实战角度来说说,如何看懂bugreport,对于通过bugreport获取到内容往往非常长,这里简单划分为19部分,先整体上简单说说每部分log的title信息。1. 系统build相关信息系统build信息:dumpstate: dateBuild: getprop...

View Article

Debug系列3:DropBoxManagerService

一、启动流程DropBoxManagerService(简称DBMS) 记录着系统关键log信息,主要功能用于Debug调试。1.1 注册DBMS当系统启动过程中SystemServer.java中的startOtherServices()方法中启动:[-> SystemServer.java]private void startOtherServices() { try {...

View Article

Image may be NSFW.
Clik here to view.

调试系列4:debuggerd源码篇

一、概述Android系统有监控程序异常退出的机制,这便是本文要讲述得debuggerd守护进程。当发生native crash或者主动调用debuggerd时,会输出进程相关的状态信息到文件或者控制台。输出的debuggerd数据 保存在文件/data/tombstones/tombstone_XX,该类型文件个数上限位10个,当超过时则每次覆盖时间最老的文件。针对进程出现的不同的状态,Linux...

View Article


调试系列5:debuggerd(native crash篇)

一、Native CrashNative crash的工作核心是由debuggerd守护进程来完成,上一篇文章调试系列4:debuggerd源码篇),已经介绍过Debuggerdd的工作原理。 要了解Native Crash,首先从应用程序入口位于begin.S中的__linker_init入手。1.1 begin.S[-> arch/arm/begin.S]ENTRY(_start) mov...

View Article

调试系列6:软件WatchDog

一、概述Android系统中,有硬件WatchDog用于定时检测关键硬件是否正常工作,类似地,在framework层有一个软件WatchDog用于定期检测关键系统服务是否发生死锁事件。关于 软件WatchDog功能:监视reboot广播监视mMonitors关键系统服务是否死锁二、启动流程2.1 startOtherServices[-> SystemServer.java]private...

View Article


理解Android Crash处理流程

基于Android 6.0的源码剖析, 分析Android应用Crash是如何处理的/frameworks/base/core/java/com/android/internal/os/RuntimeInit.java /frameworks/base/core/java/android/app/ActivityManagerNative.java (含内部类AMP)...

View Article

Android ANR原理分析

一、概述ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。一般地,这时往往会弹出一个提示框,告知用户当前xxx未响应,用户可选择继续等待或者Force Close。那么哪些场景会造成ANR呢?Service...

View Article


Image may be NSFW.
Clik here to view.

理解Native Crash处理流程

本文是基于Android 7.0源码,来分析Native Crash流程。一、Native Crash从系统全局来说,Crash分为Framework/App Crash, Native Crash,以及Kernel Crash。对于framework层或者app层的Crash(即Java层面Crash),那么往往是通过抛出未捕获异常而导致的Crash,这个内容在本文的姊妹篇理解Android...

View Article

Android重启流程(一)

framework/base/services/core/java/com/android/server/power/PowerManagerServer.java framework/base/services/core/java/com/android/server/power/ShutdownThread.java 一、概述重启动作从按键触发中断,linux kernel层给Android...

View Article

Image may be NSFW.
Clik here to view.

理解Android存储系统架构

基于Android 6.0源码, 来分析存储相关架构,涉及源码:/framework/base/services/java/com/android/server/SystemServer.java /framework/base/services/core/java/com/android/server/MountService.java...

View Article
Browsing all 119 articles
Browse latest View live