AndroidAndroid 基于linux内核,使用 signal机制监听异常发生。值得一提的是,android 在自定义的libc库中(bionic)的linker初始化中会将debuggerd handler注册为默认的signal handler
Kernel (linux)在cpu运行时发生错误,linux为这类错误注册了默认的异常处理程序,异常处理程序将执行:1.保存大部分寄存器的内容2.使用高级的C函数处理异常(向异常调用
Read More...
通用这里所描述的都指的是用户态的crash,kernel的crash的处理方式略有区别。本文只是简述crash信息保存的流程。
在linux系统上,应用异常是通过信号从内核通知上来的,在用户态注册的信号处理函数能够保存一些信息,在信号处理函数运行完成之后,kernel可能会进行一些core dump,这取决于配置。
当用户态crash时,信号传递给预先注册的signal handler,这时crash尚处于active状态,signal
Read More...
前面已经介绍了statsd的接口以及调用流程,本篇介绍接口自动生成的代码。
###StatsLogInternalframework/base/core仓中的StatsLogInternal.java会被编译到framework.jar中,因而会在编译该jar包前生成。查看framework/base/Android.bp
1234567891011121314java_library { name: "fra
Read More...
前面一部分已经介绍了statsd上报使用的两个接口Java侧使用StatsLogNative侧使用android::util::stats_write最终都通过sock写入statsd中,下面将先介绍statsd的daemon部分的结构,随后介绍事件的管理。
statsd位于frameworks/base/cmds/statsd路径下其目录结构:123456789101112131415161718statsd----benchmark
Read More...
android系统中有很多不同功能的日志,如dumpsys dumpstate。anr以及crash时候也有单点的日志。然而,一些系统的问题,如性能功耗以及稳定性问题是由于不明确的单点的缺陷或者故障扩散导致的。仅靠最后问题发生时的日志有时难以定位问题,还有一些问题,例如黑屏,原因有很多种,所以能否将可能相关的事件汇聚到一处,做数据分析也会方便一些。大概基于这种目的,android p版本中新增一种日志上报方式,接口位于:1android
Read More...
稳定 顾名思义 指的是系统以及应用正常工作的状态,但由于各种原因系统或者应用工作在不正常的状态,例如应用卡顿,闪退,系统卡死黑屏乃至重启。关于稳定性工作,一般也就分成两个方面 1.定位增强–如何能够尽快正向解决问题 2.容错恢复设计–在问题发生时如何能尽量减少异常的时间这两个方面在原生系统(谷歌aosp)中已经有着不少体现。并且这两个方面应该说是相辅相成的。如在应用anr时会有anr日志,同时提示用户等待或者停止应用,再如w
Read More...
Problems to be solved
Who maintains the ledger of transactions?
Who has authority over which transactions are valid?
Who creates new bitcoins?
General Distributed consensusThere are n nodes that each have an input value
Read More...
Hash Functiontakes any string as inputfixed-sized output(usually 256 bits)efficiently computable
security properties:collision-freehidingpuzzle-friendly
SHA-256
Hash Pointer
Merkle Tree
Digital signature schemeOnly you c
Read More...
一.Systrace简介从目前使用看来,Systrace主要包含两个部分:1.手机中Systrace日志打印框架2.Chrome或其他日志解析工具,能够将上述生成的日志解析成可视化的图形其精度可以达到ns
每年的GoogleI/O好像都有提及这个方便的工具,具体的用法的官方教程如下:视频:https://www.youtube.com/watch?v=Qfo5fdoXrTU&index=10&list=PLWz5rJ2E
Read More...
Build angler on MacOSSet Proxy to Shadowsocks (not necessary)export http_proxy=socks5://127.0.0.1:1080export https_proxy=socks5://127.0.0.1:1080
Instructions https://wiki.cyanogenmod.org/w/Build_for_angler
Hostshttps://l
Read More...