Android-framework
文章平均质量分 94
xiaosayidao
Android make -j8
展开
-
Android ANR原理代码分析(三)
分析解决ANRLOG原理收集系统发生ANR之后,会通过com.android.server.am.ProcessRecord#appNotResponding收集相关的log信息。主要代码逻辑 如下:void appNotResponding(String activityShortComponentName, ApplicationInfo aInfo, String parentShortComponentName, WindowProcessController pa原创 2021-04-19 16:23:51 · 2766 阅读 · 1 评论 -
Android ANR原理代码分析(二)
系统触发ANR机制如系统显示ANR机制分析,都是通过appNotResponding来触发ANR对话框的显示,我们通过索引搜索可以发现,总共有五个地方可以产生这个调用,这5个调用正是引起ANR的5个原因。com.android.server.am.ActivityManagerService#appNotRespondingViaProvider : ContentProvider 超时,目前没有使用。com.android.server.am.ActiveServices#serviceFo原创 2021-04-19 16:20:31 · 1681 阅读 · 1 评论 -
Android ANR原理代码分析(一)
如果 Android 应用的界面(主)线程处于阻塞状态的时间过长,会触发“应用无响应”(ANR) 错误。如果应用位于前台,系统会向用户显示一个对话框,如图 1 所示。ANR 对话框会为用户提供强行退出应用的选项(摘自Google官方介绍[ANR](https://developer.android.google.cn/topic/performance/vitals/anr?hl=zh_cn#java))。 ![1.png](https:原创 2021-04-19 16:17:26 · 1682 阅读 · 1 评论 -
Android 系统编译技巧
本文介绍Android的通用编译技巧。手机厂商或者芯片平台可能都封装了编译脚本命令,但是基本都没有脱离Google的原始编译逻辑。Google在开发者网站对相关命令有介绍。原创 2021-02-01 11:39:38 · 2322 阅读 · 4 评论 -
Android Studio导入Android平台源码
作为Android平台开发者,需要阅读和编写Android平台源码,一个好的工具可以事半功倍。本文介绍如何通过Android Studio 导入Android平台源码原创 2021-01-06 10:46:49 · 3515 阅读 · 2 评论 -
Android Watchdog机制原理分析
如我们所知,当应用超过一定时间无响应的时候,系统为了不让应用长时处于不可操作的状态,会弹出一个“无响应”(ANR)的对话框,用户可以选择强制关闭,从而关掉这个进程。ANR机制是针对应用的,对于系统进程来说,如果长时间“无响应”,Android系统设计了WatchDog机制来管控。如果超过了“无响应”的延时,那么系统WatchDog会触发自杀机制原创 2018-07-28 23:53:22 · 10800 阅读 · 1 评论 -
Android Treble架构解析
本文主要介绍Treble架构下的HAL&HIDL&Binder相关技术原理。Treble的详细资料文档,请参考Treble 官方文档。1. Treble 简介Android 8.0 版本的一项新元素是 Project Treble。这是 Android 操作系统框架在架构方面的一项重大改变,旨在让制造商以更低的成本更轻松、更快速地将设备更新到新版 Android 系统。Project原创 2017-12-21 16:39:11 · 34880 阅读 · 11 评论 -
Android 系统服务之 ContentService
本文基于AOSP-7.1.1-R9源码分析,源码可以参见 frameworks/base/+/android-7.1.1_r9;从名字上看,ContentService是内容服务,和ContentProvider以及ContentRelsover相互关联。在使用ContentProvider创建共享的数据之后,其他进程为了访问数据,会调用ContentRelsover来进行相关操作。 在Andro原创 2017-07-17 17:41:35 · 5367 阅读 · 0 评论 -
Android 多窗口框架全解析
本文基于AOSP Android-7.1.1-R9代码进行分析。 Android N的的多窗口框架中,总共包含了三种模式。Split-Screen Mode: 分屏模式。Freeform Mode 自由模式:类似于Windows的窗口模式。Picture In Picture Mode:画中画模式(PIP)经过一段时间的研究,总结一句话:多窗口框架的核心思想是分栈和设置栈边界。本文会从系原创 2017-07-13 10:31:52 · 17281 阅读 · 6 评论 -
Android aapt 生成R.java和package.apk原理解析
本文基于AOSP-7.1.1-R9源码分析,源码可以参见frameworks/base/+/android-7.1.1_r9。Android Apk 编译原理解析的分析过程中,可以看到,为了生成最终的apk,在资源文件的编译生成过程中,会两次使用到aapt命令。生成R.java,编译系统通过acp命令将这个文件复制一份变成R.stamp。生成中间文件package.apk。编译系统为了生成Split.apk原创 2017-08-04 21:30:59 · 7108 阅读 · 0 评论 -
Android Apk 编译原理解析
本文基于AOSP-7.1.1-R9源码分析,源码可以参见build/+/android-7.1.1_r9。简介在Android系统中,所有的应用都是以apk的形式存在,那这个apk是如何生成的呢?对于刚开始接触系统开发的开发者来说,经常会使用如下命令编译apk或者系统固件。source build/envsetup.sh;lunchmake -j8 ormmm packages/app/Se原创 2017-07-14 09:44:16 · 7482 阅读 · 3 评论 -
Android Native Looper机制
Android Native Looper机制在分析Native层代码的时候,很多地方都用到了Looper机制,本文将深入分析一下,方便理解相关机制,在Android系统中,Native层提供了类似于java层的消息循环机制。机制的核心是通过epoll机制,主要就是优化轮询操作,本文不做讲解。Native层的消息Looper机制代码,主要实现位于:system/core/libutil原创 2017-06-30 13:55:07 · 4280 阅读 · 0 评论