0%

http协议

三次握手:

第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;
第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

Read more »

排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度
冒泡排序 O(n2) O(n2) 稳定 O(1)
快速排序 O(n2) O(n*log2n) 不稳定 O(log2n)~O(n)
选择排序 O(n2) O(n2) 稳定 O(1)
二叉树排序 O(n2) O(n*log2n) 不一顶 O(n)
插入排序 O(n2) O(n2) 稳定 O(1)
堆排序 O(n*log2n) O(n*log2n) 不稳定 O(1)
希尔排序 O O 不稳定 O(1)
Read more »

前言

算法很重要,但是一般情况下做移动开发并不经常用到,所以很多同学早就将算法打了个大礼包送还给了老师了,况且很多同学并没有学习过算法。这个系列就让对算法头疼的同学能快速的掌握基本的算法。过年放假阶段玩了会游戏NBA2K17的生涯模式,没有比赛的日子也都是训练,而且这些训练都是自发的,没有人逼你,从早上练到晚上,属性也不涨,但是如果日积月累,不训练和训练的人的属性值就会产生较大差距。这个突然让我意识到了现实世界,要想成为一个球星(技术大牛)那就需要日积月累的刻意训练,索性放下游戏,接着写文章吧。

Read more »

前言

数据在存储设备中的组织形式。
在开发过程中针对不同的业务逻辑以及数据特典选择更高效的数据结构
本文只是进行概念性简述, 未避免篇幅过长没有进行更深层的表述.

Read more »

实现方法

1) 为Window添加一个flag, 让状态栏变成透明 , 注意4.4之后才支持的

Activity的Theme中添加.

1
<item name="android:windowTranslucentStatus">true</item>
Read more »

前言

Handler 相信开发过程中都用到过,大部分都是用来线程间通讯,异步操作避免UI线程阻塞,但是具体的原理没注意过,查询了一些网络上的资料后,整理一下,也希望看到的人能更好的理解

Read more »

前言

正常情况下,一个apk启动后只会运行在一个进程中,其进程名为AndroidManifest.xml文件中指定的应用包名,所有的基本组件都会在这个进程中运行.但是如果需要将某些组件(如Service、Activity等)运行在单独的进程中,就需要用到Android:process属性了.我们可以为android的基础组件指定process属性来指定它们运行在指定进程中.

Read more »

设计架构目的

通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点,提高程序开发的效率,并且更容易进行后续的测试以及定位问题。但设计不能违背目的,对于不同量级的工程,具体架构的实现方式必然是不同的,切忌犯为了设计而设计,为了架构而架构的毛病。

Read more »

前言

Android对于性能的测试,基本就是两块,执行效率以及内存的占用,执行效率常见的界面绘制,内存的使用常见的图片加载和内存泄漏,BlockCanary 是对界面绘制性能检测的工具, LeakCanary是对内存泄漏进行检测的工具

Read more »