SF
专注于技术的研究
专注于技术的研究
注册登录
关注博客
注册登录
主页
关于
RSS
Bitmap优化详谈
杨充
2018-11-26
阅读 17 分钟
3k
目录介绍 01.如何计算Bitmap占用内存 1.1 如何计算占用内存 1.2 上面方法计算内存对吗 1.3 一个像素占用多大内存 02.Bitmap常见四种颜色格式 2.1 什么是bitmap 2.2 Android常见是那种 2.3 常见四种颜色格式介绍 2.4 Bitmap到底有几种颜色格式 03.Bitmap压缩技术 3.1 质量压缩 3.2 采样率压缩 3.3 缩放法压缩 04.Bitmap回...
App启动页面优化
杨充
2018-11-24
阅读 4 分钟
2.1k
目录介绍 01.存在白屏问题 1.1 问题描述 1.2 问题分析 02.解决白屏的办法 2.1 解决方案分析 2.2 第一种解决方案 2.3 第二种解决方案 2.4 注意要点 03.Application启动速度优化 04.启动页面屏蔽返回按键 好消息 博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括...
自定义版本更新弹窗
杨充
2018-11-22
阅读 16 分钟
1.5k
目录介绍 1.Animation和Animator区别 2.Animation运行原理和源码分析 2.1 基本属性介绍 2.2 如何计算动画数据 2.3 什么是动画更新函数 2.4 动画数据如何存储 2.5 Animation的调用 3.Animator运行原理和源码分析 3.1 属性动画的基本属性 3.2 属性动画新的概念 3.3 PropertyValuesHolder作用 3.4 属性动画start执行流程 3....
Notification通知栏
杨充
2018-11-21
阅读 22 分钟
5.8k
目录介绍 1.Notification简单概述 2.Notification通知用途 3.Notification的基本操作 3.1 Notification创建必要的属性 3.2 Notification简单创建步骤 3.3 关于setSmallIcon()与setLargeIcon()区别 3.4 Notification的Action属性【交互作用】 3.5 更新Notification 3.6 取消Notification 3.7 设置flag属性 3.8 设置Notifi...
SnapHelper源码深度解析
杨充
2018-11-09
阅读 20 分钟
1.9k
目录介绍 01.SnapHelper简单介绍 1.1 SnapHelper作用 1.2 SnapHelper类分析 1.3 LinearSnapHelper类分析 1.4 PagerSnapHelper类分析 02.SnapHelper源码分析 2.1 attachToRecyclerView入口方法 2.2 SnapHelper的抽象方法 2.3 onFling方法源码分析 03.LinearSnapHelper源码分析 3.1 LinearSnapHelper实现功能 3.2 calculat...
App启动流程
杨充
2018-11-06
阅读 19 分钟
1.6k
目录介绍 1.什么是Zygote进程 1.1 简单介绍 1.2 各个进程的先后顺序 1.3 进程作用说明 2.Zygote进程的启动流程 2.1 源码位置 2.2 ZygoteInit类的main方法 2.3 registerZygoteSocket(socketName)分析 2.4 preLoad()方法分析 2.5 startSystemServer()启动进程 3.SystemServer进程启动流程 3.1 SystemServer进程简介 3.2 Sy...
异常机制详解
杨充
2018-11-05
阅读 7 分钟
1.6k
目录介绍 1.什么是异常 2.异常 2.1 异常的概述和分类【了解】 2.2 JVM默认是如何处理异常的【理解】 2.3 异常处理的两种方式【理解】 2.4 try...catch的方式处理异常【掌握】 2.5 编译期异常和运行期异常的区别【理解】 2.6 throw的概述以及和throws的区别【掌握】 2.7 异常的注意事项及如何使用异常处理【了解】 2.8 Th...
类的加载机制
杨充
2018-11-02
阅读 9 分钟
1.7k
目录介绍 01.Java对象的创建过程 1.0 看下创建类加载过程 1.1 对象的创建 1.2 对象的内存布局 02.Java内存区域 2.0 运行时数据区域 2.1 程序计数器 2.2 虚拟机栈 2.3 本地方法栈 2.4 Java堆 2.5 方法区 2.6 运行时常量池 2.7 直接内存 03.Java对象的访问定位方式 3.1 句柄 3.2 直接指针 04.Java对象销毁分析 4.1 JVM内存...
AsyncTask异步任务类
杨充
2018-10-30
阅读 11 分钟
2.1k
目录介绍 01.先看下AsyncTask用法 02.AsyncTask源码深入分析 2.1 构造方法源码分析 2.2 看execute(Params... params)方法 2.3 mWorker和mFuture的创建过程 03.异步机制的实现 04.不同的SDK版本区别 05.AsyncTask的缺陷和问题 5.1 AsyncTask对应线程池 5.2 AsyncTask生命周期问题 5.3 AsyncTask内存泄漏问题 5.4 AsyncTas...
Retrofit源码分析
杨充
2018-10-29
阅读 28 分钟
2.2k
目录介绍 1.首先回顾Retrofit简单使用方法 2.Retrofit的创建流程源码分析 2.1 Retrofit对象调用Builder()源码解析 2.2 Retrofit对象调用baseUrl(url)源码解析 2.3 addConverterFactory(Converter.Factory factory)源码分析 2.4 addCallAdapterFactory(RxJava2CallAdapterFactory.create())源码分析 2.5 client(okHttpCli...
Android异步消息机制
杨充
2018-10-27
阅读 17 分钟
1.5k
目录介绍 1.Handler的常见的使用方式 2.如何在子线程中定义Handler 3.主线程如何自动调用Looper.prepare() 4.Looper.prepare()方法源码分析 5.Looper中用什么存储消息 6.Handler发送消息如何运作 7.Looper.loop()方法源码分析 8.runOnUiThread如何实现子线程更新UI 9.Handler的post方法和view的post方法 10.得出部分结论...
崩溃bug日志总结3
杨充
2018-10-23
阅读 13 分钟
2.4k
1.1 OnErrorNotImplementedException【 Can't create handler inside thread that has not called Looper.prepare()】
崩溃bug日志总结2
杨充
2018-10-22
阅读 11 分钟
3.7k
1.4 java.lang.IllegalStateException: Fragment not attached to Activity
崩溃bug日志总结1
杨充
2018-10-22
阅读 10 分钟
3.3k
目录介绍 1.1 java.lang.UnsatisfiedLinkError找不到so库异常 1.2 java.lang.IllegalStateException非法状态异常 1.3 android.content.res.Resources$NotFoundException 1.4 java.lang.IllegalArgumentException参数不匹配异常 1.5 IllegalStateException:Can't compress a recycled bitmap 1.6 java.lang.NullPointerE...
Synchronize和ReentrantLock区别
杨充
2018-10-18
阅读 10 分钟
2.6k
目录介绍 1.Synchronize和ReentrantLock区别 1.1 相似点 1.2 区别 1.3 什么是线程安全问题?如何理解 1.4 线程安全需要保证几个基本特性 2.Synchronize在编译时如何实现锁机制 3.ReentrantLock使用方法 4.ReentrantLock锁机制测试案例分析 4.1 代码案例分析 4.2 什么时候选择用ReentrantLock 4.3 公平锁和非公平锁有何区...
Dialog源码分析
杨充
2018-10-17
阅读 22 分钟
2.3k
目录介绍 1.简单用法 2.AlertDialog源码分析 2.1 AlertDialog.Builder的构造方法 2.2 通过AlertDialog.Builder对象设置属性 2.3 builder.create方法 2.4 看看create方法中的P.apply(dialog.mAlert)源码 2.5 看看AlertDialog的show方法 3.Dialog源码分析 3.1 Dialog的构造方法 3.2 Dialog生命周期 3.3 Dialog中show方法展...
Snackbar源码分析
杨充
2018-10-15
阅读 15 分钟
1.2k
目录介绍 1.最简单创造方法 1.1 Snackbar作用 1.2 最简单的创建 1.3 Snackbar消失的几种方式 2.源码分析 2.1 Snackbar的make方法源码分析 2.2 对Snackbar属性进行设置 2.3 Snackbar的show显示与点击消失 2.4 显示和隐藏中动画源码分析 3.经典总结 3.1 Snackbar和SnackbarManager类的设计 4.思考问题分析 4.1 Snackbar的...
Toast源码深度分析
杨充
2018-10-13
阅读 18 分钟
2.3k
目录介绍 1.最简单的创建方法 1.1 Toast构造方法 1.2 最简单的创建 1.3 简单改造避免重复创建 1.4 为何会出现内存泄漏 1.5 吐司是系统级别的 2.源码分析 2.1 Toast(Context context)构造方法源码分析 2.2 show()方法源码分析 2.3 mParams.token = windowToken是干什么用的 2.4 scheduleTimeoutLocked吐司如何自动销毁的 ...
DialogFragment源码分析
杨充
2018-10-12
阅读 11 分钟
1.6k
目录介绍 1.最简单的使用方法 1.1 官方建议 1.2 最简单的使用方法 1.3 DialogFragment做屏幕适配 2.源码分析 2.1 DialogFragment继承Fragment 2.2 onCreate(@Nullable Bundle savedInstanceState)源码分析 2.3 setStyle(@DialogStyle int style, @StyleRes int theme) 2.4 onActivityCreated(Bundle savedInstanceState)...
PopupWindow源码分析
杨充
2018-10-11
阅读 10 分钟
2.5k
目录介绍 1.最简单的创建方法 1.1 PopupWindow构造方法 1.2 显示PopupWindow 1.3 最简单的创建 1.4 注意问题宽和高属性 2.源码分析 2.1 setContentView(View contentView) 2.2 showAsDropDown()源码 2.3 dismiss()源码分析 2.4 PopupDecorView源码分析 3.经典总结 3.1 PopupWindow和Dialog有什么区别? 3.2 创建和销毁的...
博客笔记大汇总
杨充
2018-10-08
阅读 19 分钟
5.7k
关于我的博客大汇总整理 目录介绍 Java博客大汇总 01.Java基础 02.面向对象 03.数据结构 04.IO流知识 05.Java多线程 06.网络编程 07.类的加载 08.反射原理 09.数据算法 10.Java异常 11.Java深入 Android博客大汇总 01.开源项目 02.基础组件 03.View事件 04.动画机制 05.View事件 06.消息机制 07.多媒体 08.滑动冲突 09....
加密和解密
杨充
2018-10-08
阅读 20 分钟
2.7k
目录介绍 1.加密和解密 1.1 问答环节 1.2 加解密概况 2.对称加密和非对称加密 2.1 什么是对称加密 2.2 什么是非对称加密 2.3 常见对称加密有什么 2.4 常见非对称加密有什么 2.5 非对称加密用途 3.关于单向加密 3.1 MD加密 3.2 什么叫做加盐 4.加密和解密代码展示 4.1 DES加密和解密 4.2 AES解密和解密 5.RSA非对称加解密...
RecyclerView用法和源码深度解析
杨充
2018-09-30
阅读 33 分钟
4.3k
目录介绍 1.RecycleView的结构 2.Adapter 2.1 RecyclerView.Adapter扮演的角色 2.2 重写的方法 2.3 notifyDataSetChanged()刷新数据 2.4 数据变更通知之观察者模式 a.首先看.notifyDataSetChanged()源码 b.接着查看.notifyChanged()源码 c.接着查看setAdapter()源码中的setAdapterInternal(adapter, false, true)方法 d....
View之Canvas,Paint,Matrix,RectF等介绍
杨充
2018-09-28
阅读 19 分钟
2.4k
目录介绍 1.Paint画笔介绍 1.1 图形绘制 1.2 文本绘制 2.Canvas画布介绍 2.1 设置属性 2.2 画图【重点】 2.3 Canvas对象的获取方式 2.4 Canvas的作用 2.5 Canvas绘制圆和椭圆 2.6 Canvas绘制矩形、圆角矩形 2.7 Canvas绘制文字 2.8 Canvas绘制弧形、封闭弧形 2.9 Canvas绘制Path路径 3.Matrix变换矩阵介绍 3.1 translate...
Aidl进程间通信详细介绍
杨充
2018-09-27
阅读 12 分钟
1.5k
目录介绍 1.问题答疑 2.Aidl相关属性介绍 2.1 AIDL所支持的数据类型 2.2 服务端和客户端 2.3 AIDL的基本概念 3.实际开发中案例操作 3.1 aidl通信业务需求 3.2 操作步骤伪代码 3.3 服务端操作步骤 3.4 客户端操作步骤 3.5 测试 4.可能出现的问题 4.1 客户端在子线程中发起通信访问问题 4.2 什么情况下会导致远程调用失败 ...
Annotation注解详细介绍
杨充
2018-09-23
阅读 7 分钟
2k
目录介绍 1.Annotation库的简单介绍 2.@Nullable和@NonNull 3.资源类型注释 4.类型定义注释 5.线程注释 6.RGB颜色纸注释 7.值范围注释 8.权限注释 9.重写函数注释 10.返回值注释 11.@Keep注释 12.@SuppressWarnings注解 13.其他 1.Annotation库的简单介绍 包含一系列有用元注释,帮助开发者在编译期间发现可能存在的bug ...
内存泄漏优化
杨充
2018-09-18
阅读 13 分钟
2.7k
目录介绍: 1.什么是内存泄漏 2.内存泄漏造成什么影响 3.内存泄漏检测的工具有哪些 4.关于Leakcanary使用介绍 5.Leakcanary捕捉常见的内存泄漏及解决办法 5.0.1 错误使用单例造成的内存泄漏 5.0.2 错误使用静态变量,导致引用后无法销毁 5.0.3 [常见]Handler使用不当造成的内存泄漏 5.0.4 线程造成的内存泄漏[比较少见] ...
IntentService源码分析
杨充
2018-09-17
阅读 8 分钟
1.1k
目录介绍 1.IntentService的作用 2.IntentService使用场景 3.IntentService使用步骤 4.IntentService源码分析 4.1 整体源码展示及归纳 4.2 如何单独开启1个新的工作线程 4.3 IntentService如何将Intent传递给服务并且依次插入到工作队列中 5.IntentService与其他线程对比 6.问题答疑解答 0.问题答疑 0.0.1 IntentService...
Android屏幕适配方案
杨充
2018-09-14
阅读 19 分钟
6.2k
目录介绍 1.屏幕适配定义 2.相关重要的概念 2.1 屏幕尺寸[物理尺寸] 2.2 屏幕分辨率[px] 2.3 屏幕像素密度[dpi] 2.4 dp、dip、dpi、sp、px 2.5 mdpi、hdpi、xdpi、xxdpi 2.6 获取屏幕分辨率[宽高] 3.Android屏幕适配出现的原因 3.1 什么是像素点 3.2 dp与百分比 4.Android适配问题及本质 4.1 尺寸适配 4.2 代码适配 4.3 ...
Retrofit基本使用和源码解析
杨充
2018-09-14
阅读 19 分钟
4.4k
目录介绍 1.关于Retrofit基本介绍 2.最简单使用【配合Rx使用】 3.注解的种类 请求方法注解 请求头注解 标记注解 参数注解 其它注解 4.Retrofit相关请求参数 @Query()【备注:get请求/ 接上参数 】 @QueryMap()【备注:get请求/ 接上参数 】 @Path()【备注:get请求/ 替换url中某个字段】 @Body()【备注:post请求/ 指定...
1
…
More
3
4
5
(current)
6
下一页
上一页
5
(current)
下一页