自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android布局优化的几个点

一、概述:布局优化的方式有很多,使用抽象布局标签(include、ViewStub、merge)、去除不必要的嵌套和View节点、减少不必要的inflate及其他Layout方面可调有点,顺带提及布局调优相关工具(hierarchy viewer和lint)二、抽象布局标签<include>标签​​​​include标签常用于将布局中的公共部分提取出来供其他layout...

2019-08-26 14:47:41 135

原创 重新认识HTTP协议

一、概述:HTTP是计算机通过网络进行通信的规则,是一个基于请求与响应、无状态的、应用层的协议,常基于TCP/IP协议传输数据。目前任何终端之间的任何一种通信都必须按照HTTP协议进行,否则无法连接。二、四个基于:请求与响应:客户端发送请求,服务器响应请求; 无状态:客户端与服务器建立连接时需要进行一系列的安全认证匹配等,因此会增加等待时间;当服务器响应完请求后,就会立即断开两者的连...

2019-08-26 14:47:29 198

原创 Bitmap的质量压缩与尺寸压缩的区别

一、概述一个应用中,存在大量的图片的布局,那我们必须要小心翼翼地处理,不然OOM就像一个定时炸弹一样出现。由于大量位图加载导致的内存溢出是Android中内存溢出常见场景之一。关于图片的处理,一般情况下就是对bitmap进行合适的处理跟优化。在Android中,图片的主要存在方式:以File的形式存在于SD卡中; 以Stream的形式存在于内存中; 以Bitmap的形式存在于内...

2019-08-26 14:47:21 1123

原创 死锁的原因、产生条件与处理

一、概述:死锁是指多个进程在运行过程中,因为争夺资源而造成的一种僵局,如果没有外力推进,处于僵局中的进程就无法继续执行。二、死锁的原因:竞争资源:请求同一有限资源的进程数多于可用资源数; 进程推进顺序非法:进程执行中,请求和释放资源顺序不合理,如资源等待链。三、死锁产生的必要条件:互斥条件:资源不能被共享,只能有一个进程使用; 请求和保持条件:进程已获得了一些资源,但因请求其...

2019-08-26 14:47:15 253

原创 系统进程的状态转换

运行状态:进程正在处理机上运行。在单处理机环境下,每一时刻最多只有一个进程处于运行状态。就绪状态:进程已处于准备运行的状态,即进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行。阻塞状态(等待状态):进程在等待某一事件而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即处理机空闲,该进程也不能运行。运行状态 -> 就绪状态:处于运行状态的进程在时...

2019-08-26 14:47:09 489

原创 TCP的可靠性与拥塞控制

一、TCP的可靠性为了保证数据包的可靠性,发送方必须把已发送的数据包保留在缓冲区; 并为每个已发送的数据包启动一个超时定时器; 如在定时器超时之前收到了对方发来的应答信息(可能是对本包的应答,也可以是对本包后续包的应答),则释放该数据包占用的缓冲区; 否则,重传该数据包,直到收到应答或重传次数超过规定的最大次数为止; 接收方收到数据包后,先进行CRC检验,如果正确则把数据与交给上层协议...

2019-08-26 14:46:55 127

原创 安卓Activity异常生命周期

一、正常状态下正常状态下的生命周期如下图,这张图大家都应该看腻了,我就不一一赘述了二、异常状态下情况 1 :资源相关的系统配置发生改变导致Activity被杀死并重新创建比如说当前Activity处于竖屏状态,如果突然旋转屏幕,由于系统配置发生了改变,在默认情况下,Activity就会被销毁并且重新创建,我们也可以阻止系统重新创建该Activity。在默认情况下...

2018-07-04 13:33:50 631

原创 android从本地导入第三方包依赖的正确姿势,不提示第三方控件属性的异常

添加依赖有好几种方法,如果开发者把代码放到Maven中,那么我们就可以直接在gradle中配置导入,这是最简单粗暴的方法,也不会出现什么问题;然而作者没把代码放到Maven中,那么我们就得手动把包下载下来再导入,而这个方法可能会出现各种异常,根据我自己的经验,写一下这个导入方法的正确姿势 =.=首先导入你要用到的包,这里是使用Import Module如果名字有冲突,就点impor...

2018-01-21 14:51:27 924

原创 通过服务+广播+通知实现的一个通知栏音乐控制器

之前的一段时间在学习服务和广播这两个知识点,然后在网上看到一些对于后台操作需要通过服务与广播的一些例子,便索性做一个小demo对这些知识点进行巩固;通过服务+广播+通知对后台音乐进行播放、暂停、停止这三样简单的控制。创建demo后的第一步便是创建服务,创建一个名为MusicService的类,继承Service类;然后在MusicService里实现音乐文件的初始化,同时创建各种方...

2017-10-15 17:08:55 1127

空空如也

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

TA关注的人

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