李江东

用代码书写这个世界。

排序:
默认
按更新时间
按访问量

Java类加载机制

综述 在前面两篇文章主要分析了Java的内存以及Java的垃圾回收机制。在这篇文章中分析一下类是如何加载的。 类加载时机 类从被加载到虚拟机内存开始,到卸载出内存为止。它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolu...

2018-10-24 16:26:13

阅读数:77

评论数:0

Java垃圾回收机制

综述 在上篇文章中我们分析了Java内存空间的划分和分配,在这篇文章中我们来了解一下Java对于不再使用的对象是如何回收的。 回收的内存区域 在Java内存运行时,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭。栈中的栈帧随着方法的进入和退出有条不紊的执行着出栈和入栈的操作。每...

2018-10-19 17:09:41

阅读数:47

评论数:1

Java内存划分和分配

综述 在这边文章中我们将了解一下Java的内存区域是怎么划分的以及每个区域的功能。在了解Java每个内存区域的功能之后,进一步分析Java对象如何的创建和对象的内存分配,以及如何访问对象中的内存。最后学习一下Java堆内存的分代划分和内存分配。 Java内存区域划分 首先通过一张图来看一下Java...

2018-10-18 15:03:41

阅读数:835

评论数:1

使用Kotlin优雅的添加Fragment

综述 在上面文章聊一聊Kotlin扩展函数run,with,let,also和apply的使用和区别中讲解Kotlin的几个扩展函数的使用和区别。那么在这篇文章中去自己定义一些扩展函数来更加优雅的去将添加Fragment到Activity中。 回顾Fragment使用 在使用Kotlin...

2018-03-24 18:47:59

阅读数:1539

评论数:3

聊一聊Kotlin扩展函数run,with,let,also和apply的使用和区别

综述 和Java相比,在Kotlin中提供了不少新的特性。这次我们就来聊一聊Kotlin的一些通用的扩展函数run,with,let,also和apply。对于这五个扩展函数它们都存在于Kotlin的源码标准库当中,也就是在Standard.kt文件当中。它们都是适用于任何对象的通用扩展函数。但...

2018-03-16 01:02:43

阅读数:1675

评论数:1

Lifecycles源码解读

对于Activity和Fragment的生命周期都不会陌生,同样在我们自己的项目中也会需要做一需要依赖Activity和Fragment生命周期的操作。例如在onSaveInstanceState执行后不可在对Fragment进行操作,又比如我们需要在Activity的onDestroy中做一些释...

2017-09-14 01:13:36

阅读数:1223

评论数:7

Android稳定性测试工具Monkey的使用

Monkey是一个命令行工具,它可以运行在我们的模拟器或者设备当中。它可以发送一些伪随机(pseudo-random)的用户事件流,例如点击,触摸,手势等。我们能够使用Monkey工具来对我们所开发的应用进行压力测试。Monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。Monkey...

2017-01-15 13:07:12

阅读数:6873

评论数:2

Android性能优化之内存泄漏

内存泄漏(memory leak)是指由于疏忽或错误造成程序未能释放已经不再使用的内存。那么在Android中,当一个对象持有Activity的引用,如果该对象不能被系统回收,那么当这个Activity不再使用时,这个Activity也不会被系统回收,那这么以来便出现了内存泄漏的情况。

2016-12-11 16:34:40

阅读数:5644

评论数:3

Retrofit2源码解读

Retrofit2的用法在Retrofit2.0使用详解这篇文章中已经详细介绍过了。那么在这就来看一下Retrofit2它是如何实现的。Retrofit2中它的内部网络请求是依赖于OKHttp,所以Retrofit2可以看做是对OKHttp的一次封装,那么下面就开看下Retrofit2是如何对OK...

2016-06-18 15:20:16

阅读数:9489

评论数:0

Android视图的绘制流程(下)——View的Layout与Draw过程

在上篇文章中Andtoid视图的绘制流程——View的测量对View的Measure过程进行了详细的说明。对于在View的绘制的整个过程中,在对View的大小进行测量以后,便开始确定View的位置并且将其绘制到屏幕上。也就是View的Layout与Draw过程。那么就来看一下是如何实现这两个过程的...

2016-06-11 13:26:55

阅读数:7380

评论数:1

Android视图的绘制流程(上)——View的测量

View的绘制流程可以分为三大步,它们分别是measure,layout和draw过程。measure表示View的测量过程,用于测量View的宽度和高度;layout用于确定View在父容器的位置;draw则是负责将View绘制到屏幕中。下面主要来看一下View的Measure过程。

2016-06-10 22:34:32

阅读数:2997

评论数:0

Java注解在Android中使用

注解(Annotation)也被称为元数据(Metadata),是在Java SE 5中提供的一个新特性。Annotation可以用来修饰类,属性,方法。在Java中,除了使用系统内置的Annotation以外,用户还能够通过自定义Annotation来实现所需要的功能。下面就来看一下如何使用自定...

2016-06-04 21:40:41

阅读数:5004

评论数:5

Android官方MVP架构解读

对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的。而对于Android应用的开发中本身可视为一种MVC架构。通常在开发中将XML文件视为MVC中的View角色,而将Activity则视为MVC中的Control...

2016-05-22 22:24:28

阅读数:51342

评论数:21

EventBus3.0源码解读

EventBus是我们在项目当中最常用的开源框架之一。对于EventBus的使用方法也是非常的简单。然而EventBus内部的实现原理也不是很复杂。在这里便针对EventBus3.0的源码进行一下详细的分析。对于EventBus的详细使用可以参考EventBus3.0使用详解这篇文章。

2016-05-21 15:43:21

阅读数:10281

评论数:0

Java设计模式之代理模式

代理模式(Proxy Pattern)也称作为委托模式。在生活中我们也是处处可见,例如通过设置代理进行上网,委托律师来打官司,又或者是代理某个品牌来创业等等。而在开发中也是被经常被使用到的一种设计模式。对于代理模式的定义为:为其他对象提供一种代理以控制对这个对象的访问。对于代理模式可以分为两大类,...

2016-05-17 23:56:28

阅读数:2120

评论数:0

Android中的事件分发机制(下)——View的事件处理

在上篇文章Android中的事件分发机制(上)——ViewGroup的事件分发中,对ViewGroup的事件分发进行了详细的分析。在文章的最后ViewGroup的dispatchTouchEvent方法调用dispatchTransformedTouchEvent方法成功将事件传递给ViewGro...

2016-05-15 19:23:27

阅读数:14363

评论数:0

Android中的事件分发机制(上)——ViewGroup的事件分发

Android中的事件分发机制也就是View与ViewGroup的对事件的分发与处理。在ViewGroup的内部包含了许多View,而ViewGroup继承自View,所以ViewGroup本身也是一个View。对于事件可以通过ViewGroup下发到它的子View并交由子View进行处理,而Vi...

2016-05-13 13:31:43

阅读数:11625

评论数:1

ProGuard详解

综述   对于ProGuard工具想必我们都不陌生,它能够通过移除无用代码,使用简短无意义的名称来重命名类,字段和方法。从而能够达到压缩、优化和混淆代码的目的。最终我们会获取一个较小的apk文件,并且我们这个通过ProGuard处理的apk文件更难于进行逆向工程。 ProGuard工作原理...

2016-05-03 23:46:35

阅读数:27246

评论数:13

Java中的线程池

在我们的开发中经常会使用到多线程。例如在Android中,由于主线程的诸多限制,像网络请求等一些耗时的操作我们必须在子线程中运行。我们往往会通过new Thread来开启一个子线程,待子线程操作完成以后通过Handler切换到主线程中运行。这么以来我们无法管理我们所创建的子线程,并且无限制的创建子...

2016-04-28 23:26:40

阅读数:12909

评论数:2

Java设计模式之观察者模式

观察者模式(Observer Pattern)也叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式。这个模式的一个最重要的作用就是解耦。也就是将被观察者和观察者进行解耦,使得他们之间的依赖性更小,甚至做到毫无依赖。在观察者模式中它定义了一种一对多的依赖...

2016-04-27 17:17:49

阅读数:8664

评论数:3

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