自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

夏雨

你永远不知道,未来的你会有多么强大

  • 博客(29)
  • 资源 (3)
  • 收藏
  • 关注

原创 嘿,程序猿,你该学点经济学了!

前言笔者一直认为,一个好的程序猿,不仅仅是代码敲得好,其他方面的知识和能力同样很重要。懂得一些经济学的知识,不仅能在工作中运用,还有一个大家很关心的作用,那就是理财!

2017-04-06 23:51:35 7910 34

原创 渐进式加载-基础讲解

前言:我们在PC端用浏览器看图片的时候,经常是先看到一张模糊图,然后再渐渐的变得清晰,这种情况在看漫画的时候尤其常见(模糊图如下),这种效果就叫做渐进式加载.渐进式加载能够大大的提升体验感

2017-03-13 11:51:28 9206

原创 Glide-源码详解

前言:之前的文章中,笔者介绍了很多Glide的使用方法,但是由于Glide框架封装得太好了,很多人在使用的时候,只是知其然不知其所以然,为了不要仅仅成为”cv工程师”,只会复制粘贴,所以这篇文章我们就一起来研究一下Glide的源码,看看Glide到底是怎么将一张图片加载出来的~

2017-03-04 16:41:48 20570 5

原创 进程间通信--IPC

前言:进程间通信(Inter-Process Communication),简称IPC,就是指进程与进程之间进行通信.一般来说,一个app只有一个进程,但是可能会有多个线程,所以我们用得比较多的是多线程通信,比如handler,AsyncTask.但是在一些特殊的情况下,我们app会需要多个进程,或者是我们在远程服务调用时,就需要跨进程通信了1.设置多进程Android设置多进程的步骤很简单,只用在

2017-02-23 17:08:58 11184 3

原创 最近计划

前言由于最近太忙,博客一个多月没有新文章了,所以接下来一段时间下班后回到家会抽出一段固定的时间来写博客。具体内容有大概的想法,但是还没确定,后续将会在本文中补充。

2017-05-31 21:23:39 719

原创 如何在library中使用productFlavors

前言:前面笔者介绍过,如果用一套代码,定制化多个app。那就是使用productFlavors。一般情况下都没有问题,但是在library的gradle里面,直接使用productFlavors是不允许的。所以下面我们就来介绍一下如何在library中使用productFlavors。1.基础前面介绍过如何使用productFlavors,不了解的朋友需要先看看这篇文章活用productFlavor

2017-04-20 12:10:01 8537 6

原创 进程间通信--IPC

*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布前言:进程间通信(Inter-Process Communication),简称IPC,就是指进程与进程之间进行通信.一般来说,一个app只有一个进程,但是可能会有多个线程,所以我们用得比较多的是多线程通信,比如handler,AsyncTask.但是在一些特殊的情况下,我们app会需要多个进程,或者是我们在远程服务调用时,就需要...

2017-04-12 08:54:34 668 1

原创 面试时,你被问到过 TCP/IP 协议吗?

前言:精通 TCP/IP,熟练使用 Socket 进行网路编程。看到这句话,有没有感到很熟悉呀?相信很多人在投递简历的时候都看到过这条要求,很多人会觉得我们在实际开发中一般用不到这些知识,所以对这些东西不屑一顾.但是笔者认为想要做出更好的 APP,那么对这些基础知识必须要有一定的了解,这样你才能考虑得更加全面和完善,下面就让我们一起来了解一下,什么是 TCP/IP?

2017-04-04 13:43:24 84472 16

原创 Glide-渐进式加载初尝试

前言前面我们讲解了渐进式加载的基础,接下来我们就讲一下在app中具体如何实现渐进式加载

2017-03-14 17:02:38 9228

原创 活用productFlavors,实现意想不到的功能

前言:在我们平时做项目时,总会遇到一些奇葩的要求,多渠道打包算是比较简单和常见的了,例如同时安装测试版和发布版,以及一套代码维护十几个不同的APP,这种需求也不少人遇到过,如果你不懂一些技巧,那么这些需求实现起来一定非常痛苦,所以我们接下来就介绍一下如何活用productFlavors,实现这些奇葩的需求1. 简单使用productFlavors直译过来就是特色的产品,所以他的主要作用就是让你同一套

2017-03-01 17:02:16 16087 1

原创 研究requestDisallowInterceptTouchEvent失效的原因

前言:前面我们讲到过onTouch事件的传递的原理,那么我们遇到事件冲突的时候就可以通过这个原理来设法处理了,一般来说我们分为父控件处理和子控件处理,其中子控件处理的时候会用到一个requestDisallowInterceptTouchEvent方法,接下来我们就一起来分析一下这个方法的原理以及使用时容易遇到的坑1.基础我们之前讲到过onTouch事件的传递的原理,如果对这块不熟悉的朋友可以先看一

2017-03-01 10:05:47 10261 4

原创 onTouch事件传递

前言在我们的项目中,遇到比较复杂布局的时候,最常见的就是布局嵌套和自定义控件,那么滑动冲突与点击冲突你一定是遇到过的,解决的方法有很多,但是总的来说都是对onTouch事件传递做处理.那么我们就来了解一下onTouch事件到底是怎么传递的1.基本知识我们先看看相关的几个方法(View是没有onInterceptTouchEvent方法的)ViewGroup1. dispatchTouchEvent

2017-02-24 17:44:40 7836 5

原创 序列化--Serializable与Parcelable

前言:序列化:就是将对象的状态信息转换为可以存储或传输的形式的过程在我们平时开发中.我们用到序列化最多的地方就是通过intent传递对象,如果你要在intent中传递基本数据类型以外的对象,那么该对象必须实现Serializable或者Parcelable,否则会报错注意:1:通过intent传递过去的对象是经过了序列化与反序列化的,虽然传送的对象和接收的对象内容相同,但是是不同的对象,他们的引用

2017-02-22 11:23:37 8071 2

原创 如何解决内存溢出以及内存泄漏

前言:很多人在项目中都遇到过内存溢出问题,其实说白了就是内存不够用了,那么要解决这一个问题,我们就需要”开源节流”了1.开源(增加内存分配)每台手机给每个程序分配的内存都是固定的,那么是否有办法使我们的程序获取到更大的内存呢?其实是有的,而且很简单你只需要在清单文件中的application的节点中加入 android:largeHeap=”true” 即可, 是不是很简单?<applicati

2017-02-18 17:48:47 12833 3

原创 Glide-图片的剪裁(ScaleType)

前言:这一节里面我们将讲到关于Glide的图片的剪裁Glide 系列目录1.Glide-入门教程2.Glide-占位图以及加载动画3.Glide-加载本地图片4.Glide-加载Gif5.Glide-绑定生命周期6.Glide-内存缓存与磁盘缓存7.Glide-通过Modules定制Glide8.Glide-自定义缓存9.Glide-图片的压缩10.Glide-

2017-02-16 17:20:52 40361 1

原创 Glide-图片预处理(圆角,高斯模糊等)

前言:之前已经讲解过如何简单的显示图片,但是有时候项目中会有很多特殊的需求,比如说圆角处理,圆形图片,高斯模糊等,Glide提供了方法可以很好的进行处理,接下来我们就介绍一下Glide 系列目录1.Glide-入门教程2.Glide-占位图以及加载动画3.Glide-加载本地图片4.Glide-加载Gif5.Glide-绑定生命周期6.Glide-内存缓存与磁盘缓存7.Glide-通过

2017-02-16 17:16:45 22608 1

原创 Glide-图片的压缩

前言:这一节里面我们将介绍Glide如何对图片进行压缩,这一点在加载图片较多或者加载的图片像素很高的程序里面至关重要1.Android图片显示相关知识这里会讲一下图片显示相关的基础知识,如果不关心的可以直接跳到第二点,不过建议是最好看一下1.1图片质量分类安卓图片显示的质量配置主要分为四种:ARGB_8888 :32位图,带透明度,每个像素占4个字节ARGB_4444 :16位图,带透明度,每个

2017-02-15 20:11:00 40480 5

原创 Glide-自定义缓存

前言:在前面的文章中,我们介绍了如何对Glide进行默认配置的基础知识,现在我们就来介绍如何配置自定义缓存1.如何使用GlideModule首先我们要对Glide进行默认配置,需要了解如何使用GlideModule,前面文章已经做了详细介绍了,这边就不再介绍了如何使用GlideModulehttp://blog.csdn.net/yulyu/article/details/55194237前面还介绍

2017-02-15 16:18:00 16928

原创 Glide-通过Modules定制Glide

前言:我们一般情况下使用Glide都很简单,只用简单的调用几个方法就能够很好的显示图片了,但其实Glide在初始化的时候进行了一系列的默认配置,比如缓存的配置,图片质量的配置等等.接下来我们就介绍一下一个比较高级的功能,通过Modules定制自己的个性GlideGlide 系列目录1.Glide-入门教程2.Glide-占位图以及加载动画3.Glide-加载本地图片4.Glide-加载Gif

2017-02-15 13:08:36 15908

原创 Glide-内存缓存与磁盘缓存

前言:这一节我们将讲到Glide的内存缓存和磁盘缓存(网上流传的比较广的几篇文章都是直接从是一篇译文中拷贝过去的,那篇译文在许多地方都翻译错误了,其中很大的一个错误就是关于缓存一块的问题)Glide 系列目录1.Glide-入门教程2.Glide-占位图以及加载动画3.Glide-加载本地图片1.缓存的资源Glide的缓存资源分为两种:1.原图(SOURCE) :原始图片2.处理图(RE

2017-02-14 11:48:39 34531 26

原创 Glide-绑定生命周期

前言:这一节我们将讲到Glide请求如何与activity和fragment绑定生命周期Glide 系列目录1.Glide-入门教程2.Glide-占位图以及加载动画3.Glide-加载本地图片1.with其实Glide与activity和fragment绑定生命周期很简单,只用在with的时候传入想绑定生命周期的Context就行.比如通常在MainActivity中传入this,或者Ma

2017-02-14 11:47:00 10659

原创 Glide-加载Gif

前言:这一节我们将讲到Glide如何加载gif图(我最开始使用的图片框架其实是Imagerloader和Picasso,但是他们都不支持gif的加载,所以后来我才开始尝试使用Glide,慢慢的发现Glide许多的强大功能)Glide 系列目录1.Glide-入门教程2.Glide-占位图以及加载动画3.Glide-加载本地图片4.Glide-加载Gif1.简单加载如果只是简单加载gif,其

2017-02-14 10:20:04 32826 3

原创 Glide-加载本地图片

前言:这一节我们将介绍Glide如何加载本地图片Glide 系列目录1.Glide-入门教程2.Glide-占位图以及加载动画3.Glide-加载本地图片1.在清单文件中增加权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>2.加载其实Glide加载本地图片和加载网络图片调用的方法是一样

2017-02-13 21:22:33 79755 4

原创 Glide-占位图以及加载动画

前言:这一节我们将讲到Glide如何使用占位图,错误图,以及使用加载动画Glide 系列目录Glide入门教程[Glide-占位图以及加载动画]1.设置占位图(placeholder)有时候加载的图片过大时,或者网络不好时,我们经常希望控件在加载过程中有一张默认的占位图Glide.with(this).load(url).placeholder(R.mipmap.place).into(iv)

2017-02-13 21:02:29 29596 5

原创 Glide-入门教程

Glide入门教程前言:Glide作为google推荐的图片加载框架,他不仅性能高,功能强大,而且调用起来非常简单,现在我们到底有多么简单吧 Glide 系列目录Glide入门教程1.添加依赖compile 'com.github.bumptech.glide:glide:3.7.0'2.添加网络权限<uses-permission android:name="android.permissi

2017-02-13 20:23:23 14274

原创 Okhttputils终极封装

前言:项目源码https://github.com/yulyu2008/XiayuOkHttpOkhttputils是张鸿洋基于okhhttp封装的一个框架,使用起来很方便,相信很多人都用到过,这里我们在这个框架的基础上二次封装,让我们用起来更加方便.主要功能:可以添加统一的头信息统一处理异常自动注入加载动画(可选)自动解析bean对象结合Stetho,调试更方便

2017-02-13 15:01:36 23134 2

原创 Picasso源码解析

Picasso源码解析本文基于Picasso2.4.0版本Picasso加载图片最简单的调用方法是Picasso.with(mContext).load(url).into(iv);我们一起来看看这三个方法里面做了什么方法解析1.with这个方法首先会返回一个单例的Picasso对象(里面用了两个判断一把锁的单例模式)public static Picas

2017-02-13 10:47:24 5326

原创 Android代码优化工具

1.前言:在我们平时项目开发中,经常会写一些不严谨的代码或者一些比较低级的错误代码,但是这些错误往往很难被发现,这样就导致了我们的项目中会隐藏了很多影响性能甚至是导致闪退的错误代码,于是许多响应的检测工具就出现了.在这里我就介绍一下我比较常用的几个检测工具吧项目DEMO源码2.FindBugs顾名思义,FindBugs是一个寻找bug的工具,更具体的说FindBugs是一个静态检测java代码的工具

2017-02-10 19:53:18 8866

原创 使用TextView解析a标签

我们经常遇到过这样的需求 后台传了一段html过来,比如我是夏雨,这是<a href="http://blog.csdn.net/yulyu">我的博客</a>,<br/>更多android技术分享<a href="http://blog.csdn.net/yulyu">就在这里</a>我们要显示这段文字,并且获取里面的a标签的点击事件,效果如下 其实android自带的textview就能够

2016-08-18 21:09:38 9668

ProductFlavorsDemo.zip

在library中使用productFlavors

2017-04-20

Hex Editor Neo

Hex Editor Neo,可以对文件的二进制进行阅读或者修改

2017-03-13

onTouch事件的传递思维导图(完整版)

onTouch事件的传递思维导图(完整版)

2017-02-24

空空如也

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

TA关注的人

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