阅读之前,不妨先思考一个问题,在Android系统中,APP端View视图的数据是如何传递SurfaceFlinger服务的呢?View绘制的数据最终是按照一帧一帧显示到屏幕...
阅读之前,不妨先思考一个问题,在Android系统中,APP端View视图的数据是如何传递SurfaceFlinger服务的呢?View绘制的数据最终是按照一帧一帧显示到屏幕...
前言 与很多Android小伙伴一样,接触到Okio也是在接触Okhttp之后。在Okhttp中,每个请求通过拦截链处理,而Okio则在CallServerIntercept...
上一篇《聊聊同步、异步、阻塞与非阻塞》[https://www.jianshu.com/p/aed6067eeac9]已经通俗的讲解了,要理解同步、异步、阻塞与非阻塞重要的两...
Author:杨空明 Date:2018-8-17 一、前言 Android开发者常常面临的一个问题就是防破解、 防二次打包。现如今安全问题越来越重要,越来越多的Androi...
一、反编译未加固的apk 1、反编译用到的工具 apktool:资源文件获取,可以提取出图片文件和布局文件进行使用查看dex2jar:将apk反编译成java源码(class...
Smali是什么 Smali是Android虚拟机的反汇编语言。我们都知道,Android代码一般是用java编写的,执行java程序一般需要用到java虚拟机,在Andro...
需求:在应用内显示一个悬浮按钮,可以跨页面显示,页面切换时不闪。本以为这个需求很正常的,应该问题不大,因为不需要在桌面显示,不需要覆盖其他应用,仅仅只在自己应用内部显示,但是...
普通View截图 获取View截图 获取ViewGroup截图 获取Activity截图 对于ListView、RecyclerView等控件、长截图自行搜索截图方法。 Su...
本文的调查基于Android P的原生源代码。 本周在处理某一款应用的问题时,遇到一处名为ServiceConnectionLeaked的运行时异常,异常信息如下: Serv...
前两篇文章 放弃RxBus,拥抱RxJava(一):为什么避免使用EventBus/RxBus ,放弃RxBus,拥抱RxJava(二):Observable究竟如何封装数据...
现在市面上很多框架都有使用到注解,比如butterknife库、EventBus库、Retrofit库等等。也是一直好奇他们都是怎么做到的,注解的工作原理是啥。咱们能不...
前言 在之前的文章Android编译时注解--入门篇(AbstractProcessor、APT)中介绍了通过APT技术实现仿ButterKnife编译时注解的功能。虽然尽可...
前言 对于注解的使用,想必大家都不陌生,它出现在我们的源码中,以及大部分框架中,比如ButterKnife、Arouter、Retrofit,但它们是有区别的,其中前2个是编...
前言 从android 6.0(API 级别 23)开始,android引入了运行时权限,用户开始在应用运行时向其授予权限,而不是在应用安装时向其授予权限,如果应用的某项功能...
此文包含android.view.WindowManager$BadTokenException的4种情形: 1.Unable to add window --token n...
前言 在很久之前写过一篇发布开源库到jcenter[https://blog.csdn.net/Rain_9155/article/details/90948189]的文章,...
资源冲突 公司在不断推进组件化,多个Module开发,当然也存在许多需要注意的问题。是无法保证多个Module中的资源命名完全不同,就可能会出现资源引用问题,造成资源冲突。 ...
摘要: 本文发现了一类OOM(OutOfMemoryError),这类OOM的特点是崩溃时java堆内存和设备物理内存都充足,探索并解释了这类OOM抛出的原因。 关键字: O...
当ANR 发生时,查看系统生成的traces 文件有助于我们定位ANR 产生的原因,那么我们该如何从手机中导出traces 文件呢?可以使用下面的方式1. 老版本Androi...
Shallow Size和Retained Size详解 参考文章How much memory do I need (part 1) – What is retained ...