newtonker blog

Thinking will not overcome fear but action will.

详解android gradle生成字节码流程

本文首发于知乎专栏:详解Android Gradle生成字节码流程 一、背景 当前绝大部分的Android工程都是使用Gradle框架搭配Android Gradle Plugin(以下简称AGP)和Kotlin Gradle Plugin(以下简称KGP)进行编译构建的。虽然市面上有很多入门介绍,但是分析其中实现细节的文章并不多。这篇文章主要介绍了AGP和KGP生成字节码的核心流程,通过这...

记一次fresco加载图片失败的分析

记一次Fresco加载图片失败的分析 问题描述 最近在开发过程中,QA同学反馈了一个bug:在华为荣耀6(Android 4.4.2)上,有些页面的图片加载不出来,只能展示默认的占位图,效果如下所示: 在项目中,图片展示用的是Fresco的SimpleDraweeView组件。第一次看到这个问题时,以为是Fresco的缓存出了问题,于是首先在手机的应用管理里,找到了对应的APP并清空了缓...

Recyclerview的adapter中attach和detach探索

RecyclerView的Adapter中attach和detach探索 问题描述 今天App的日志捕获中收到了一条这样的crash日志: 刚看到这个日志的时候,分析了一下,复现的场景应该是这样的:RecyclerView的Item中一个按钮,点击了之后会发起一个异步请求,开始前会弹出一个ProgressDialog等待,如果这个时候按home键回到了后台,此时不巧被Activity被...

Recyclerview+viewpager实现轮播时的问题

RecyclerView+ViewPager实现轮播时的问题 问题描述 RecyclerView中嵌套ViewPager做轮播,最开始的思路是ViewPager要展示的数据作为一种type类型,在Adapter中展示数据的时候,按照类型展示出来。 但是在使用的过程中遇到了两个问题: 每次启动后,当首次加载出整个页面时,不论是向左滑动还是向右滑动,动画都无法出现。由于轮播在View...

Android性能优化总结(一)

Android性能优化总结(一) 1 什么是性能 Android性能大致可以概括为快、稳、省、小四个方面。在开发过程中,我们可以从这四个方面分析,判断App还有优化的空间。接下来我们就从上述四个方面来分析,看下应该如何优化我们的App。 2 优化方向 2.1 布局和绘制 2.1.1 原理 布局和绘制的原理如下图所示: 其中CPU主要负责测量和布局,已经创建下一步栅格化所需要的Dis...

图片模糊的实现原理及方案

Android端图片模糊的实现原理及方案 前言 图片模糊是Android客户端开发中一种比较常见的特效,诸如对话框背景半透明效果,头像背景模糊效果都是通过图片模糊技术实现的。本文主要介绍图片模糊的实现原理及实现方案。 图片模糊原理 卷积 卷积(Convolution)是图像处理中最基本的操作,就是一个二维原图像素矩阵A(MxN)和一个二维图像滤波矩阵B(mxn)做若干操作,生成一个滤波后...

利用 Github Pages 快速搭建个人博客

搭建个人博客 这是第一篇博客,介绍如何利用Github Pages搭建个人博客。 整个搭建的过程主要是参考这篇博客