自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

转载 今日头条的屏幕适配

今日头条的屏幕适配在Android 开发中,由于Android 碎片化严重,屏幕分辨率千奇百怪,而想要在各种分辨率的设备上显示基本一致的效果,适配成本越来越高。虽然Android官方提供了dp单位来适配,但其在各种奇怪分辨率下表现却不尽人意,因此下面探索一种简单地侵入烦人适配方式。探索新的适配模式1.支持以宽或者高一个维度去适配,保持该维度上和设计图一致; 2.支持dp和sp单位,控...

2018-09-04 16:19:05 1112 1

原创 JAVA设计模式之单例模式

概念:  java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:  懒汉式单例、饿汉式单例、登记式单例。  单例模式有以下特点:  1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。一、懒汉式单例//懒汉式单例类.在第一次调用的时候实例化自己 public class Singleton ...

2018-09-18 00:08:38 136

原创 Recycleview 与 listview 的区别

这里写图片描述 listview : Recycleview :区别两者:mainActivity:这里写代码片 private void initView() { recycle = (RecyclerView) findViewById(R.id.recycle); recycle = (RecyclerView) findVi...

2018-09-06 20:06:49 650

原创 Service 的生命周期

先来看一下service 的生命周期的架构:1.为神魔要有两种生命周期呢?那是因为 手动调用生命周期 系统会自动调用对应的生命周期 ,两者是一起的。 相信还有很多小伙伴不太明白,下来我们来看一下这张图,手动调用生命周期又分为{ startService 启动服务 ,bindService 绑定服务 这两种}startService和bindService的区别:...

2018-09-05 21:07:39 337

原创 接口和抽象类的区别

首先,在涉及接口和抽象类的区别时,先来介绍一下接口是什么?,抽象类是什么?接口:(interface)含义: 用interface修饰的类,里面的方法都是抽象方法1 因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但可以实现多个接口, 接口本身也可以继承多个接口。2 接口里面的成员变量默认都是public static final类型的。必须被显示的初始化。...

2018-09-04 18:46:33 127

原创 Retrofit的动态代理

Retrofit是通过动态代理来生成代理对象作为网络请求的发起者。今天就来看下动态代理是怎么操作的。或者说是怎么让一个貌似接口的对象调用它的抽象方法呢?实现代码这里写代码片public static void main(String[] args) { Factory factory = new Factory(); Bird bird = factory.creat...

2018-09-04 18:39:30 354

原创 内存泄漏

一. 为什么会内存泄漏?一个不会被使用的对象,因为另一个正在使用的对象持有该对象的引用,导致它不能正常被回收,而停留在堆内存中,内存泄漏就产生了;二. 引用分类:1.强引用我们使用的大部分引用实际上都是强引用,这是使用最普遍的引用。例如使用new创建对象 ,匿名内部类/非静态内部类和异步线程,默认都会持有外界的引用;2.软引用(SoftReference)如果内存空间足...

2018-09-04 16:32:18 111

原创 apk 瘦身

**为了app的更加优化,使的用户体验更加人性化,以下是对apk进行瘦身的实现。**在Android Studio工具栏里面打开——》build->Analyze APK 选择要分析发APK包 在这里可以看到占用空间的主要是: (1) 代码 (2) 图片 (3):资源 (4) :lib和assert文件 主要方向精简是 精简代码 压缩图片 去除无用的库,减少 ...

2018-09-04 16:27:03 179

原创 Handler的原理

Handler是线程与线程之间进行通信的一套机制Handler是常被开发者拿来跟新UI的一种消息机制,它的运行机制需要底层的 Looper和MessageQueue的支撑Handler的原理Handler机制是由Looper和MessageQueue来构建消息机制的MessageQueue :消息队列 ,虽然名字为队列,但事实上它的内部存储结构并不是 真正的队列,而是采用单链表...

2018-09-04 16:12:08 206

转载 直播的流程

直播它主要分为三个端一个互动系统推流端:采集:从外界获取他的声音和图像前处理:就是对声音和图像做一些处理,比如说美颜等。编码:通过编码器去编码,编码完成之后通过固定的协议去推流,比如说RTMP推流:推流到服务端服务端:转码:转码就可以给各个平台进行通用。录制和截图:有些服务端可能还需要录制这些推过来的流,同时还要进行截图,录制主要是为了保存,便于以后的回放。截图...

2018-09-04 15:51:38 222

原创 环信即时通讯

环信是目前比较主流的一个通讯服务平台。他的底层是基于socket来实现的Socket 又称为”套接字”,,它与网络相关,学网络必学的一个知识 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的每一端都称为一个socket (1)TCP (传输控制协议) 1.建立连接,形成传输数据的通道 2.在连接中进行大数据传输(数据不受限制) 3.通过3次握手完成连接:目的是可靠协议...

2018-09-04 15:48:44 653

原创 视频录制与视频压缩

1.录制两种方法 (1)通过intent隐式跳转,打开相机进行录制,播放使用videoview但是videoview它不自带监听,需要从写一个类来继承videoview,重写暂停,播放方法。通过接口回调来监听它是暂停还是播放。 (2)通过MediaRecorder来进行视频录制,用SurfaceView来进行绘制,绘制的时候会开启一个线程,不会与主线程进行堵塞。2.视频压缩(1)通过f...

2018-09-04 15:46:19 307

原创 三级缓存

 一 、 概览引入为神魔要做缓存呢? 为了提高效率,节省流量. 那为什么要做三级呢?为什么不只存在内存或者只存在文件中呢?这是因为内存的读取速度快,但是容易被回收,容量小,文件的读取速度次之,不过容量大,不到不得已不会被回收。   二、出现的原因 假如每次启动的时候都从网络拉取图片的话,势必会消耗很多流量。在当前的状况下,对于非wifi用户来说,流量还是很贵的,...

2018-09-04 07:34:35 298

原创 性能优化

一个上线的App软件,首先要讲究良好的用户体验,如果一款软件卡顿现象严重,不流畅,经常崩溃,那么将给用户带来极不良好的体验,从而损失用户。 下面来介绍一下性能优化,大家可以广提建议。一.Android性能优化主要包括布局优化、绘制优化、内存泄露优化、响应速度优化、ListView优化、Bitmap优化、线程优化以及一些优化建议.绘制优化(onDraw)主要是避免执行大量的操作.不要...

2018-08-30 15:22:52 142

空空如也

空空如也

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

TA关注的人

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