- 博客(8)
- 收藏
- 关注
原创 Handler的工作原理,为什么在子线程中执行new Handler()会抛出异常?
Handler的工作主要包含消息的发送和接受过程。发送过程通过post的一系列方法和send的一系列方法来实现,post的一系列方法最终是通过send的一系列方法来实现的。发送一条消息的典型过程如下: public final boolean sendMessage(Message msg){ return sendMessageDelayed(msg, 0); } p...
2018-08-20 18:16:16 2189
原创 Android 软引用和弱引用
如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。 比如在图片加载框架中,通过弱引...
2018-08-15 17:37:29 141
原创 TCP/IP网络分层
网络分层有不同的模型,有的模型分七层,有的模型分五层,今天学习一下分五层的。从上到下依次是: 应用层、 传输层、 网络层、 数据链路层、 物理层。 接下来我们从下而上来分别来了解这些分层。 物理层 该层负责比特流在节点间的传输,即负责物理传输。该层的协议即与链路有关,也与传输介质有关。其通俗来讲就是把计算机连接起来的物理手段。 数据链路层 该层控制网络层与物理层之间的通信,其主要功...
2018-08-15 09:31:43 948
原创 TCP的三次握手和四次挥手
1、三次握手 (1)三次握手的详述 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。 最初两端的TCP进程都处于CLOSED关闭状态,A主动打开连接,而B被动打开连接。(A、B关闭状态CLOSED——B收听状态LISTEN——A同步已发...
2018-08-14 18:14:06 125
原创 Kotlin Android环境搭建
Kotlin Android 环境搭建 安装 Kotlin 插件 Android Studio 从 3.0(preview)版本开始将内置安装 Kotlin 插件。 打开 File->Settings ( Mac 为 Preferences) 面板,在左侧找到 Plugins 选项,搜索框输入 "Kotlin" 查找,点击 Install JetBrains plugins,会看到An...
2018-08-07 17:27:53 520
原创 Android 中 px、dp、dip、sp总结
平时做Android开发的时候会经常遇到dp、dip、dpi、px、sp这些单位,今天就跟大家一起学习下这些单位。 屏幕尺寸是指屏幕对角线长度,单位是英寸,1英寸=2.54厘米。 屏幕分辨率:在橫纵向上的像素点数。单位:px即1px=1个像素点。 一般以纵向像素*横向像素表示,如1920*1080 Dpi:屏幕像素密度,指每英寸上的像素点数,dot per inch的缩写,与屏幕尺寸和屏幕...
2018-08-06 22:19:34 178
原创 单例模式
单例模式的介绍 单例模式是应用最广的模式之一,也是面试的时候经常问的。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为。如在一个应用中,应该只有一个ImageLoader实例,这个ImageLoader中又含有线程池、缓存系统、网络请求等,很消耗资源,因此,没有理由让它构造多个实例。这种不能自由构造对象的情况,就是单例...
2018-08-04 23:18:59 97
原创 线程知识小结
Android沿用了Java的线程模型,一个Android应用在创建的时候会开启一个线程,我们叫它主线程或者UI线程。如果我们想要访问网络或者数据库等耗时操作时,都会开启子线程去处理,从Android3.0开始,系统要求网络访问必须在子线程中进行,否则会抛出NetworkOnMainThreadException异常。 说到了线程,我们得讲讲线程的基础知识: 什么是进程: 进程是操作系统的基础,...
2018-08-03 00:26:48 124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人