Toast源码深度分析

2018-10-13
阅读 18 分钟
2.1k
目录介绍 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.5k
目录介绍 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.4k
目录介绍 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.5k
关于我的博客大汇总整理 目录介绍 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.5k
目录介绍 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.2k
目录介绍 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.2k
目录介绍 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.3k
目录介绍 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 分钟
1.9k
目录介绍 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.5k
目录介绍: 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 分钟
6k
目录介绍 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.1k
目录介绍 1.关于Retrofit基本介绍 2.最简单使用【配合Rx使用】 3.注解的种类 请求方法注解 请求头注解 标记注解 参数注解 其它注解 4.Retrofit相关请求参数 @Query()【备注:get请求/ 接上参数 】 @QueryMap()【备注:get请求/ 接上参数 】 @Path()【备注:get请求/ 替换url中某个字段】 @Body()【备注:post请求/ 指定...

单Activity多Fragment动态修改状态栏颜色功能

2018-09-01
阅读 4 分钟
7.3k
目录介绍 1.关于如何集成 2.关于如何使用 3.关于鸣谢 4.关于版本更新说明 5.关于其他介绍 0.说明 状态栏工具类,应该可以满足绝大多数的使用场景。具体可以参考代码案例,欢迎star!! 1.技术博客汇总 2.开源项目汇总 3.生活博客汇总 4.喜马拉雅音频汇总 5.其他汇总 1.关于如何集成 在gradle中添加:compile 'cn.yc:YCSt...

int和Integer深入分析

2018-08-27
阅读 8 分钟
3.1k
目录介绍 1.关于int和Integer的问题区别分析 2.Integer的值缓存的原理 2.1 Java 5 中引入缓存特性 2.2 Integer类中的IntegerCache类 2.3 其他整型类型的缓存机制 3.理解自动装箱和拆箱 3.1 什么是装箱?什么是拆箱? 3.2 装箱和拆箱是如何实现的 3.3 装箱和拆箱在编程实际中注意点 4.原始类型线程安全问题 4.1 那些类型...

Scheme协议详细介绍

2018-08-03
阅读 4 分钟
7.4k
目录介绍 1.URL Scheme使用场景介绍 2.URL Scheme基础介绍 2.1 什么是URL Scheme? 2.2 URL Scheme协议格式解释 2.3 Scheme链接格式样式 3.URL Scheme如何使用 3.1 设置Scheme 3.2 获取Scheme跳转的参数,并添加跳转方式 3.3 调用方式 3.4 如何判断一个Scheme是否有效 3.5 Scheme在短信息中注意要点 关于Scheme应用案例 ...

Java反射详细介绍

2018-07-31
阅读 11 分钟
1.7k
反射 目录介绍 1.反射概述 1.1 反射概述 1.2 获取class文件对象的三种方式 1.3 反射常用的方法介绍 1.4 反射的定义 1.5 反射的组成 1.6 反射的作用有哪些 2.反射的相关使用 2.1.1 通过反射获取无参构造方法并使用 2.1.2 通过反射获取带参构造方法并使用 2.1.3 通过反射获取私有构造方法并使用 2.1.4 通过反射获取成员变...

Aidl进程间通信详细介绍

2018-07-21
阅读 12 分钟
3.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 什么情况下会导致远程调用失败 ...

Json解析与使用

2018-07-12
阅读 11 分钟
3.7k
目录介绍 0.提问环节 1.基本使用 1.1 Gson对象创建 1.2 生成Json字符串 1.3 fromJson之Json数组转化为字符串数组 1.4 toJson之字符串数组转为Json数组 1.5 fromJson之Json数组转为List<String> 1.6 toJson之List<String>转为Json数组 1.7 toJson之List<Model>转为Json数组 1.8 fromJson之Json数组转为...

Android 图片相关整理

2018-07-05
阅读 11 分钟
2k
目录介绍 0.思考问题及解决方案 1.加载图片的压缩处理技术 2.网络url图片转换Bitmap保存到本地 2.1 直接通过http请求网络图片通过流转化成Bitmap 2.2 使用第三方库glide将网络图片转化为Bitmap 3.保存bitmap图片到本地文件夹 4.实现带有圆角的图片 4.1 使用glide处理图片圆角的逻辑 4.2 自定义带有圆角的ImageView 5.毫...

Android 系统日志写入文件

2018-07-04
阅读 29 分钟
3.7k
目录介绍 1.业务需求 2.目前有那些做法及问题 3.自定义log工具类,一边打印日志一边写入文件 4.在application开启线程池进行日志打印 5.写一个service将系统日志写到文件 关于链接 1.技术博客汇总 2.开源项目汇总 3.生活博客汇总 4.喜马拉雅音频汇总 5.程序员聊天笔记汇总 5.其他汇总 1.业务需求 要求将app的系统日志都...

多线程2,线程池深入理解

2018-04-17
阅读 6 分钟
2k
目录介绍 1.ThreadPoolExecutor类介绍 1.1 构造函数 1.2 参数解析 1.3 遵循的规则 1.4 使用线程池管理线程的优点 2.关于线程池的分类 2.1 FixedThreadPool 2.2 CachedThreadPool 2.3 ScheduledThreadPool 2.4 SingleThreadExecutor 3.线程池一般用法 3.1 一般方法介绍 3.2 newFixedThreadPool的使用 3.3 newSingleThread...

YCBaseAdapter封装控件

2018-04-11
阅读 10 分钟
1.7k
目录介绍 1.关于需求介绍 1.1 需求有这些 1.2 封装理念 2.简单封装【V1.0版本】 2.1 封装简单的ViewHolder 2.2 封装简单RecyclerView.Adapter 2.3 如何使用通用adapter 2.4 如何使布局多样化 做法 原理 a.定义一个接口,判断返回数据类型 b.修改封装adapter中getItemViewType中代码 c.修改adapter,实现自定义接口 d.在A...

YCBanner轮播图

2018-04-10
阅读 4 分钟
5.1k
YCBanner轮播图 主要引导界面滑动导航 + 大于1页时无限轮播 + 自定义指示器 项目地址:[链接] 目录介绍 1.功能说明 2.使用说明 3.图片展示 4.其他介绍 1.功能说明 1.1 自定义轮播图,可以设置轮播红点或者轮播数字,多种指示器,并且灵活设置位置 1.2 支持多种轮播图适配器,无限轮播adapter,静态管理adapter,和动态管...

02.MediaPlayer和VideoView,TextureView的使用

2018-03-23
阅读 7 分钟
5.8k
目录介绍 1.关于此视频封装库介绍 1.1 MediaPlayer简单介绍 2.相关方法详解 2.1 获得MediaPlayer实例 2.2 设置播放文件 2.3 其他方法 3.生命周期 3.1 生命周期图[摘自网络] 3.2 周期状态说明 4.播放视频 4.1 播放res/raw音频文件 4.2 播放本地Uri 4.3 播放网络文件 5.MediaPlayer + SurfaceView播放视频 5.1 为什么要这...

复杂recyclerView封装库

2018-03-20
阅读 11 分钟
2.6k
**自定义支持上拉加载更多,下拉刷新,支持自由切换状态【加载中,加载成功,加载失败,没网络等状态】的控件,拓展功能[支持长按拖拽,侧滑删除]可以选择性添加

状态栏工具类

2018-03-16
阅读 2 分钟
1.5k
目录介绍 1.关于如何集成 2.关于如何使用 3.关于鸣谢 4.关于版本更新说明 5.关于截图说明 6.关于其他介绍 1.关于如何集成 在gradle中添加:compile 'cn.yc:YCStatusBarLib:1.3' 项目地址:[链接] 2.关于如何使用 2.1 DrawerLayout设置状态栏 {代码...} 2.2 设置状态栏颜色 {代码...} 2.3 设置状态栏和toolbar颜色 {代码....

Android 懒加载优化

2018-02-28
阅读 6 分钟
4k
目录介绍 1.什么是懒加载 1.1 什么是预加载 1.2 懒加载介绍 1.3 懒加载概括 2.实际应用中有哪些懒加载案例 2.1 ViewPager+Fragment组合 2.2 分析源码 3.ViewPager中setOffscreenPageLimit(int limit)相关源码 4.关于ViewPager与Fragment懒加载 4.1 遇到的问题 4.2 主要的思路做法 4.3 代码案例展示 4.4 onLazyLoad()加载...

Android编码规范

2018-02-08
阅读 5 分钟
2.4k
目录介绍 1.命名 1.为什么需要编码规范 2.包命名 3.类和接口命名 4.方法的命名 5.变量命名 6.成员变量命名 7.常量命名 8.异常命名 9.layout 命名 10.id 命名 11.资源命名 2.注释 1.文件注释 2.类注释 3.方法注释 4.类成员变量和常量注释 5.其他注释 6.XML注释 3.代码风格 1.缩进 2.空行 3.行宽 4.其他问题说明 4.1 版本...

锁屏页面实现及原理深入分析

2018-02-05
阅读 20 分钟
8k
目录介绍 1.类似酷狗等锁屏页面实现步骤 1.1 什么是锁屏联动媒体播放器 1.2 如何实现锁屏页面 1.3 关于自定义锁屏页面左右滑动的控件 1.4 注意要点分析 1.5 具体完整代码的案例 1.6 效果图展示案例 2.自定义锁屏页的基本原理 2.1 基本原理 2.2 原理图形展示 2.3 讨论一些细节 3.锁屏Activity配置信息说明 3.1 去掉系统锁...