自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 View的显示过程

本章我们来分析从Activity.setContentview()到Activity.onResume()的源码,先来个总结: 1 setContentView(): 初始化DecorView,并没有添加到Window上 2 onResume()时,Activity并没有添加到屏幕上,onResume()之后才会添加到屏幕上,所以在onResume()里面获取View的宽高不一定能获取到 3 由于本章不涉及Activity的启动过程,我们假设已经创建了Window、Context等前置的东西 不B.

2021-07-14 17:34:40 291

原创 Android 架构之隔离层设计(实现一键切换主流网络框架) 上

前言 本篇文章主要讲解 Android 比较常用的网络框架封装,以及实现一句代码随意切换主流网络框架。读者也可根据该本章思路实现其他效果,比如说,随意切换权限请求框架等。 特点 按这思路写,代码重构非常简单! 什么是隔离层设计? 先来个图解释下 我们就拿现实生活举例。 将买房的人(客户)看成是我们写的APP; 将有房的人(业主)看成是我们接触的主流网络框架(XUtils、OkHttp、OkGo....); 将房地产公司(比如说链家)看成是客户(我们app)所需要的服务

2021-07-14 09:32:11 138

原创 优化Android工程中的图片资源

场景 在一些上古工程中,由于年久失修,架构演进跟不上业务发展需要,会衍生出非常多比较明显的性能问题,其中就包括工程中图片资源的问题。 最明显的例子就是,工程中的图片资源未经任何压缩,直接使用来自设计稿中的原图,非常占用安装包体积;其次,显示效果不理想,在对应分辨率的图片资源文件夹中放入了错误尺寸的图片,导致应用运行时 UI 图片出现模糊、大颗粒等情况。 优化方案 压缩图片资源文件夹的大小 优化工作往往要从业务入手,在业务发展方向明确的前提下,并不是所有的 UI 效果都需要用图片文件的方式进行显示,

2021-07-13 16:51:57 95

原创 ASM插桩--多线程运行监测

最近需要优化App启动的时间,现有代码存在以下问题: 线程未复用(使用new Thread\HandlerThread),创建线程数过多 使用HandlerThread,使用后未销毁(Looper一直等待),占用内存 提早start线程,却未使用 部分业务方过早初始化业务代码(虽然是异步),影响启动时间 由于存在上述问题,需要扫描App从冷启动开始到首页展示出来,中间执行的子线程和主线程执行的情况。 需要监测的数据如下: 创建的线程情况,包括数量和使用情况 执行的runnable.run、As

2021-07-13 09:48:10 190

原创 Navigation之详细聊聊Fragment的实现原理

1. 前言 Fragment真是一个非常老的家伙,它的第一条提交记录是在2010年,而最近的一条记录则是在2021年6月11号,足足11岁了,但是它却老当益壮,在Jetpack中大放异彩,Navigation组件就是基于Fragment的一个跳转组件,Google的单Activity项目结构就是一个Activity和多个Fragment项目结构。多年以来,一提到Fragment,大家脑海中的第一印象可能还停留在平板应用开发中了,它曾经在手机项目中高频使用Fragment的机会还真没那么多。一方面是因为手机

2021-07-12 14:37:42 348

空空如也

空空如也

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

TA关注的人

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