自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (3)
  • 收藏
  • 关注

原创 LeakCanary 原理分析

LeakCanary 原理分析 LeakCanary的初始化 LeakCanary2.3的引入: debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.3' 2.3版本无需在Application中做额外操作。 深入了解一下具体是如何初始化的,我的是2.3版本的,2.0以下版本应该和这个不一样: https://github.com/square/leakcanary/blob/main/leakcanary-objec

2020-09-20 10:53:16 216

原创 EventBus的一些分析

EventBus 使用 implementation 'org.greenrobot:eventbus:3.1.1' 在接收消息的地方注册该类: EventBus.getDefault().register(this); 定义发送事件的类:相当于要发送的消息内容 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventLoginBindState(final LoginBindStateEvent event)

2020-09-20 10:51:32 143

原创 Android 桌面应用启动APP的流程

桌面应用启动APP的流程 一:概图 具体代码分析 zygote进程fork一个进程后调用ActivityThread的systemMain方法,也就是上图中的步骤3: ActivityThread 相关代码,systemMain是app真正的入口方法: public static ActivityThread systemMain() { // The system process on low-memory devices do not get to use hardware

2020-09-20 10:48:23 690

原创 排序专项训练

排序专项训练 排序算法概括: 排序算法: 算发复杂度: 冒泡 /*** * 冒泡排序 时间复杂度o(n的平方) 空间复杂度 * @param num * @return */ public int[] bubbleSort(int[] num) { if (num == null || num.length < 2) { return num; } int length

2020-09-20 10:45:11 198

原创 查询算法

查询算法 顺序查询 顺序查询可以是有序也可以是无序 二分查询 二分查询必须是有序 /*** *时间复杂度最好o(logn),最差o(log(n+1)) * 空间复杂度 o(1) * @return */ public int binearySearch(int[] num, int val) { int low = 0; int hight = num.length - 1; while (low &l

2020-09-20 10:42:50 122

原创 kotlin - Coroutine 协程

#kotlin - Coroutine 协程 协程的创建 kotlin 里没有 new ,自然也不像 JAVA 一样 new Thread,另外 kotlin 里面提供了大量的高阶函数,所以不难猜出协程这里 kotlin 也是有提供专用函数的。kotlin 中 GlobalScope 类提供了几个携程构造函数: 1.launch - 创建协程 2.async - 创建带返回值的协程,返回的是 Deferred 类 3.withContext - 不创建新的协程,在指定协程上运行代码块 4.runBlocki

2020-09-20 10:39:33 137

原创 kotlin的基础知识

kotlin kotlin变量声明 val 与var val 定义不可更改的属性 类似于Java的final修饰过的字段 var 定义可变的的属性 完整的定义: var <propertyName>[: <PropertyType>] [= <property_initializer>] [<getter>] [<setter>] var vertexCount: Int set(value) { vertexCount

2020-09-20 10:38:26 422

原创 内部类隐式持有外部类

内部类隐式持有外部类 源码 package com.example.testdemo; public class OutClass { int out =2; public class InnerClass{ int in=1; } } 编译成.class文件,有两个文件 内部类InnerClass // // Source code recreated from a .class file by IntelliJ IDEA // (powered by F

2020-09-20 10:35:21 209

自定义ViewPageIndicator

滑动屏幕实现指示器只是效果

2016-05-23

AIDL进程间通信

通过AIDL 实现Client求1+2的和,服务端实现具体的做法,并通过Ibinder来获取服务端的ADIL对象来操作。

2016-05-13

Android多线程下载断点续传

Android多线程下载断点续传, 详情移步:http://blog.csdn.net/u014674558/article/details/51394290

2016-05-13

空空如也

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

TA关注的人

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