自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android组件之LeakCanary2.0解析

文章目录前言LeakCanary使用引用模拟内存泄漏LeakCanary 原理1.0 原理2.0 原理安装注册原理内存泄漏判定hprof文件生成与解析前言leakcanary 的官方网址:https://square.github.io/leakcanary/LeakCanary使用引用升级到2.0之后,使用起来非常简单,只需要在build.gradle中添加依赖注意这里不要直接使用implementation,使用implementation虽然不会在正式版中弹出内存泄漏的弹窗(因为Leak

2023-02-22 09:50:53 411

原创 OkHttp 与 Retrofit

OkHttp一、 流程解读(1)创建okHttpClient对象与request对象 ,使用了了建造者模式。(2)client通过newCall创建RealCall类实例,由RealCall负责进行网络请求操作(3)异步请求 RealCall.enqueue()RealCall.java @Override public void enqueue(Callback responseCallback) { //TODO synchronized (this) {

2022-05-23 10:48:24 146 1

原创 RxJava

RxJava1、谈谈对RxJava的理解是一种事件驱动的基于异步数据流的编程模式,整个数据流就像一条河流,它可以被观测(监听),过滤,操控或者与其他数据流合并为一条新的数据流2、RxJava的功能与原理实现功能:RxJava很好的把完成一件事情的所有步骤都解藕,使得代码之间是可以插拔的。如果新需求进来时,只需要在合适的地方添加新的“数据加工厂”即可,或者去到相应的“数据加工厂”,而且完成这件事情的整个过程是很清晰的。原理流程:(1)订阅:所有的被观察者的订阅入口都是subscribeA

2022-05-23 09:55:14 351

原创 JVM 知识点

JVM简述 JVM 内存模型和内存区域?简述垃圾回收器的工作原理?如何判断对象的生死?垃圾回收算法?新生代,老生代?哪些情况下的对象会被垃圾回收机制处理掉?垃圾回收机制与调用 System.gc() 的区别?强引用、软引用、弱引用、虚引用之间的区别?强引用设置为 null,会不会被回收?简述 ClassLoader 类加载机制?对双亲委派模型的了解?String a = “a”+“b”+“c” 在内存中创建几个对象?对 Dalvik、ART 虚拟机的了解?对动态加载(OSGI)的了解

2022-05-13 17:34:10 111

原创 Java 之 基础知识

Java基础知识点1、什么是面向对象(OOP)?(1)面向过程(C语言):理解将解决这个问题的过程拆成一个个方法(是没有对象去调用的),通过一个个方法的执行来解决问题。优点性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素缺点没有面向对象易维护、易复用、易扩展(2)面向对象(C++,Java)理解面向对象编程就是先抽象出对象,然后用对象执行方法的方式解决问题。优点易维护、易复用

2022-05-13 15:18:50 336

原创 性能优化二之启动优化

性能优化 之 App启动优化(一)启动页白屏/黑屏解决1、现象打开app,往往会先白屏停顿一下后再进入启动页面(Splash)2、原因在启动Acitivty的onCreate()方法里面,系统先绘制窗体,再执行setContentView(R.layout.activity_splash),窗体绘制后布局资源还没加载,于是就使用默认背景色。如果主题使用Theme.AppCompat.Light(亮色系)则显示白色闪屏,若使用ThemeOverlay.AppCompat.Dark(暗色系)则显示黑

2022-05-10 13:32:02 132

原创 Android之性能优化一之内存优化

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2022-05-10 12:47:24 43

原创 Android之EventBus源码解析

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-10-08 15:25:46 951

原创 Android之 网络基础

文章目录一、网路基础知识1.1、域名解析1.1.1 域名与Ip地址1.1.2、域名解析 DNS1.1.3、一次请求域名解析过程1.1.4 以Chrome浏览器为例,Chrome解析域名对应的IP地址1.2、 TCP / UDP1.2.1、 准备知识1.2.2、三次握手1.2.3、四次握手面试问题1、三次握手中为什么Client最后还要发送一次确认呢?可以二次握手吗?=TCP三次握手的主要目的2、为什么需要握手?3、为什么需要三次握手?4、三次握手的理解5、四次挥手的理解6、Server端易受到SYN攻击?什

2021-09-28 16:05:36 504

原创 Android之图片处理 Glide4源码解析

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-17 14:27:24 1111

原创 Android之自定义View与事件分发

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-10 14:21:43 442

原创 Android之Webview交互

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-07 11:31:12 2509

转载 Android之 约束布局ConstraintLayout

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-06 18:23:19 50

原创 Android之 动画

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-06 18:05:50 132

原创 Android之数据持久化存储

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-06 16:23:29 151

原创 Android之 Fragment

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-06 15:25:03 355

原创 Android之四大组件

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-06 14:51:01 250

原创 Java之数据结构

数据结构与算法List接口ArrayListLinkedListQueMap三级目录List接口ArrayListLinkedListQueMap三级目录

2021-09-03 10:33:16 433

原创 Java之JVM 与垃圾回收GC

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-02 16:42:09 149

原创 Java/Android 进程与线程之 多进程通信IPC(四)

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-01 18:42:58 254

原创 Java/Android 进程与线程之 Handle机制(三)

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-09-01 18:06:17 333

原创 Java/Android 进程与线程之 多线程开发(二)

多线程开发Java多线程开发1、线程状态线程阻塞线程协作作用**wait() / notify****join()****Thread.sleep()**wait 与 sleep 的区别与联系2、线程控制方法2.1 Synchronized定义原子性与可见性锁的升级内部机制**1. 对象头和monitor****2、偏向锁****3、轻量级锁(自旋锁)****4、重量级锁(互斥锁)**可重入锁 ()和 不可重入锁(自旋锁)类锁与对象锁2.2 volatile定义原理特性2.3 ReentrantLock定义

2021-09-01 15:14:37 261

原创 Java/Android 进程与线程之 多线程基础(一)

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-08-31 16:23:35 255

原创 Java之泛型,反射,注解,代理

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-08-31 14:46:40 193

原创 Java之设计模式

文章目录一、 设计模式优点二、设计模式七大原则1、单一职责原则2、开放封闭原则3、 里氏代替原则4、依赖倒置原则5、接口隔离原则6、合成复用原则7、最少知识原则(迪米特法则)三、设计模式分类(23种)1、创建型3.1.1 单例模式模式1、作用2、工作原理3、单例分类4、饿汉式与懒汉式区别5、单例模式的发展6、单例实现方式饿汉式懒汉式双重校验锁静态内部类枚举方式3.1.2 简单工厂模式定义:优点缺点使用步骤示例3.1.3 工厂方法模式定义优点缺点示例:3.1.4 抽象工厂模式定义优点缺点示例简单工厂模式、工厂

2021-08-30 16:22:05 116

原创 Java之序列化与Json解析

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-08-25 16:28:33 2635

原创 Java之 类(内部类,抽象类,接口)

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-08-24 17:29:48 231

原创 Java之 字符串String、数据类型转换

这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录

2021-08-24 16:07:34 238

原创 Java特性,封装,继承,多态

Java特性一级目录二级目录三级目录一级目录二级目录三级目录

2021-08-24 14:37:59 109

原创 kotlin运算符

kotlin运算符算术运算符关系运算符赋值运算符一元运算符按位运算逻辑运算符算术运算符示例:fun main(args : Array<String>) { var a=10; var b=5; println(a+b) = a.plus(b) = 15 println(a-b) = a.minus(b) = 5 println(a*b) = a.times(b) = 50 println(a/b) = a.div(b)

2021-08-24 10:47:45 31

原创 kotlin字符串操作

kotlin字符串操作字符串属性字符串函数查找获取第一个元素获取最后一给元素查找对应元素下标截取用subSequence()函数截取替换分割连接/反转/统计/验证字符串属性length: Int : 它返回字符串序列的长度。indices: IntRange : 它返回当前char序列中有效字符索引的范围lastIndex: Int :它返回char序列中最后一个字符的索引字符串函数查找获取第一个元素主要包含first() | firstOrNull()和first{} | fir

2021-08-24 10:47:20 421

原创 kotlin-逻辑控制语句

kotlin-逻辑控制语句if..else传统的if..else语句if-else表达式if-else if-else阶梯表达式for如果for循环体仅包含一行语句,则花括号{}可以省略。基于数组的索引(索引)迭代数组的元素。 例如:迭代范围while/do..whilewhiledo..whilewhenbreak,return,continuebreak表达式continue表达式if…else在Kotlin中,if表达式返回一个值。它用于控制程序结构的流程。 在Kotlin中有各种类型的if表达

2021-08-13 17:04:32 75

原创 kotlin-数据类型,类型转换

kotlin数据类型数据类型数值类型布尔类型字符型字符串类型数组类型使用库函数arrayOf()创建数组使用Array()构造函数创建数组数值比较装箱,拆箱类型转换数据类型数值类型Byte=> 字节 => 8位Short => 短整型 => 16位Int => 整型 => 32位Long => 长整型 => 64位Float => 浮点型 => 32位Double => 双精度浮点型 => 64位布尔类型关键字

2021-08-13 15:36:13 1051

原创 Kotlin变量,常量,注释

kotlin变量,常量,注释变量变量声明基础用法声明可空变量:后期初始化与延迟初始化后期初始化属性延迟初始化var 与 val 区别常量常量声明注释变量变量声明kotlin变量的声明方式与Java中声明变量有很大的区别,而且必须使用var或val关键字。其中:var: 用此关键字声明的变量表示可变变量,即可读且可写。相当于Java中普通变量val: 用此关键字声明的变量表示不可变变量,即可读且不可写。相当于Java中用final修饰的变量基础用法形式 :关键字 变量名: 数据类型 = x

2021-08-13 15:01:37 24

原创 Kotlin配置

AS中Kotlin环境配置安装kotlin插件配置视图绑定(ViewBinding)开启ViewBinding功能Activity中ViewBinding的使用布局中直接使用的控件布局中使用includeFragment中使用ViewBinding自定义Dialog中使用ViewBindingAdapter中使用ViewBinding关于封装BaseActivity :BaseFragmentBaseFragment:HomeFragment:依赖org.jetbrains.ankoAnko Commons

2021-08-13 14:30:04 755

原创 shape的使用

shape的使用:                                                                android:startColor="#ff8c00"                android:endColor="#FFFFFF"                android:angle="270" /> 

2015-02-04 10:54:42 151

安卓拖动控件资源

安卓拖动控件, 自定义样式, 可自己按需修改样式。

2017-12-07

空空如也

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

TA关注的人

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