首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Android
订阅
sos0707
更多收藏集
微信扫码分享
微信
新浪微博
QQ
53篇文章 · 0订阅
Glide加载Gif的卡顿优化思路分析
Glide图片框架是可以直接加载GIF图的,但是做一个银行合作项目的时候,由于有需要出货页面需要加载一个GIF图,但是发现在使用Glide框架加载Gif图片,明显发现有延迟. 经过查看glide加载Gif图片的源码得知:Glide在加载Gif的图片帧的时候,上一帧的渲染以及下一…
Andorid加载大图,双击放大,手势缩放
Android开发中,有时候会有加载巨图的需求,如何加载一个大图而不产生OOM呢,使用系统提供的BitmapRegionDecoder这个类可以很轻松的完成。 BitmapRegionDecoder:区域解码器,可以用来解码一个矩形区域的图像,有了这个我们就可以自定义一块矩形的…
比较一下requestLayout和invalidate方法
注:本文基于Android 10源码,为了文章的简洁性,引用源码的地方可能有所删减。 在更新 View 时我们常用到 requestLayout 和 invalidate 这两个方法,本文会根据源码分析一下这两个方法的区别和工作逻辑。在开始阅读之前可以先看看 Android-V…
invalidate、postInvalidate与requestLayout浅析
我们可以直接在view里使用invalidate()刷新页面,其内部实际是调用invalidate(true)。其方法调用为: skipInvalidate:确认该View是否需要跳过绘制,需要跳过绘制的条件包括:View不是可见的,存在动画对象,父视图不是ViewGroup或…
Android进阶基础系列:Window和WindowManager ,全面理解!
Window是View的管理者,当我们说创建Window时,一方面指实例化这个管理者,一方面指 用WindowManager.addView()添加view,以view的形式来呈现Window这个概念。 实际就只有一句windowManager.addView(view, la…
App启动优化-Google官方指导
App启动有三种状态,每种状态都会影响App对用户可感知的时间:冷启动,热启动和温启动。 要优化应用以实现快速启动,了解系统和应用层面的情况以及它们在各个状态中的互动方式很有帮助。 冷启动是指应用从头开始启动:系统进程在冷启动后才创建应用进程。发生冷启动的情况包括应用自设备启动…
性能优化:为什么要使用SparseArray和ArrayMap替代HashMap?
在Android开发中,性能优化是一个非常重要的模块,其中数据结构的性能优化是相当重要的,对于常用的HashMap来说,官方推荐我们使用SparseArray和ArrayMap替代它。 首先我们来介绍一下HashMap,了解它的优缺点,然后再对比一下其他的数据结构以及为什么要替…
播放器性能优化之路
下面是播放的完整流程:播放器加载一个网络url,首先要进行网络请求,网络如何优化,涉及到网络优化的方方面面。网络拉取回来数据之后,识别一下当前视频的具体封装格式,这个可以正式流式视频,也可以是普通视频
Android Jetpack架构组件 — Navigation入坑详解
Navigation 直接翻译即为导航,它是 Android Jetpack 组件之一,让单 Activity 应用成为首选架构。应用内Fragment页面的跳转则由 Navigation 来处理,开发者无需在处理 FragmentTransaction 的复杂性以及相关的转场…