源码分析
文章平均质量分 69
程立001
学无止境,一辈子的学生
展开
-
android 异常处理流程
异常处理有两种情况线程内异常捕获处理Signal Catcher 的处理流程线程内异常无法处理的情况线程内异常捕获处理异常信号的注册异常信号的注册 是发生在 zygote进程启动创建art虚拟机时:app_main.cppint main(int argc, char* const argv[]){AppRuntime runtime(argv[0], computeArgBlockSize(argc, argv)); runtime.start(....);}AndroidR原创 2021-03-23 18:37:54 · 624 阅读 · 0 评论 -
jni在libandroid_runtime.so 引出的诡异问题
背景:在libandroid_runtime.so添加了一个jni 方法, 在底层消息过来时, 此jni方法会回调java 的callback 方法,将数据吐给java.问题: jni回调到java, 但没有执行java的相关代码, 然后线程跳到JN继续执行, log中也没有线程的相关异常, 各个线程也正常运行着, 但相关代码就是没有执行代码:code for jnistatic void android_os_nng_startListener(JNIEnv* env, jclass c原创 2021-03-22 18:20:08 · 2104 阅读 · 0 评论 -
getSystemService流程
文章目录getSystemService调用栈:mBase 的赋值:通过构造函数赋值通过attachBaseContext赋值getSystemService调用栈:Activity—>ContextThemeWrapper—>ContextWrapper@Overridepublic Object getSystemService(String name) { retur...原创 2020-05-13 15:51:15 · 682 阅读 · 2 评论 -
watchdog ,hang_detect分析
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-03-14 11:26:14 · 3755 阅读 · 1 评论 -
A|B升级框架
A|B升级A|B 升级主要包含了3个部分:boot_control 服务主要用于提供修改 A|B 系统分区状态的相关接口。UpdateEngine 服务 主要用于后台更新 A|B 系统,并通过通过boot_control去修改 当时的分区状态。java 层的 UpdateEngine 类,用于向apk 暴露接口A|B 升级的大概流程为: 当需要进行OTA 升...原创 2018-02-09 17:57:59 · 2443 阅读 · 1 评论 -
hidl
framework—> Vendor Interface —> halVendor Interface:`Android O` 新增加的一个机制,用于将`framework` 与 `hal` 分开,便于在系统升级时,`OEM` 厂商 跳过`SoC` 厂商,先对`framework`进行升级。例如:8.0 之前: framework 与 hal 是紧耦合...原创 2018-03-05 18:08:00 · 4010 阅读 · 4 评论