自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

潇洒一刀的博客

source code

  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 我的心路历程

2018.07.281. 为什么会写博客价值毕业那年,刚好碰到了Android的浪潮,接触到了Android,相伴已有7年, 从青涩少年已到中年。对于新的知识,我总是会研究一番,然后写上笔记上传到G Drive里面,现在打开G Drive来看,11年到现在我的笔记有:系统:编译系统原理、系统属性(SystemProperty)、Project Treble原理等。应用: S...

2018-07-29 01:03:52 891

原创 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 2708 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 1578 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 1604 1

原创 Android 系统编译技巧

本文介绍Android的通用编译技巧。手机厂商或者芯片平台可能都封装了编译脚本命令,但是基本都没有脱离Google的原始编译逻辑。Google在开发者网站对相关命令有介绍。

2021-02-01 11:39:38 2282 4

原创 Android Studio导入Android平台源码

作为Android平台开发者,需要阅读和编写Android平台源码,一个好的工具可以事半功倍。本文介绍如何通过Android Studio 导入Android平台源码

2021-01-06 10:46:49 3454 2

原创 Android Watchdog机制原理分析

如我们所知,当应用超过一定时间无响应的时候,系统为了不让应用长时处于不可操作的状态,会弹出一个“无响应”(ANR)的对话框,用户可以选择强制关闭,从而关掉这个进程。ANR机制是针对应用的,对于系统进程来说,如果长时间“无响应”,Android系统设计了WatchDog机制来管控。如果超过了“无响应”的延时,那么系统WatchDog会触发自杀机制

2018-07-28 23:53:22 10419 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 34285 11

原创 Windows模拟linux终端工具Cmder+Gow

习惯了ubuntu的终端,Windows自带的终端很难用,现推荐终端 Cmder+ Gow工具来模拟ubuntu下面的操作。1. 说明Cmder:Windows下的终端模拟器。Gow: Windows下模拟Linux命令行工具集合。可以在windows执行linux下的大部分命令,如ls、grep、xargs等。2. 下载Cmder官网:http://cmder.net

2017-12-15 11:03:45 15329 2

原创 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 6966

原创 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 5260

原创 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 7373 3

原创 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 16993 5

原创 Android Native Looper机制

Android Native Looper机制在分析Native层代码的时候,很多地方都用到了Looper机制,本文将深入分析一下,方便理解相关机制,在Android系统中,Native层提供了类似于java层的消息循环机制。机制的核心是通过epoll机制,主要就是优化轮询操作,本文不做讲解。Native层的消息Looper机制代码,主要实现位于:system/core/libutil

2017-06-30 13:55:07 4149

原创 RuntimePermisson介绍

1. 控制界面在设置–》应用–》Email–》权限,然后可以看到最直观的界面显示 AppPermissionsFragment.java这个界面是在packages/apps/PackageInstaller 里面来进行控制。 1. com.android.packageinstaller.permission.ui.AppPermissionsFragment#onCreate

2016-01-03 10:47:42 717

Android应用开发

Android 应用开发揭秘 android 基础

2011-12-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除