- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 装饰设计模式
装饰模式也称为包装模式,其使用一种对客户端透明的方式来动态地扩展对象的功能,同时它也是继承关系的一种替代方案之一。在实际的开发中被广泛的运用,接下来我们就一起来看看吧! 定义:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更加灵活 使用场景:需要透明且动态地扩展类的功能时。 小事例: /** *...
2018-12-18 13:48:33 290
原创 适配器模式
适配器模式在我们工作开发的过程中经常碰到,从我们的代码中随处可见。像我们之前使用的ListView,GridView以及现在使用的RecyclerView到处都有Adapter的影子,那么我们今天来一起看看我们的适配器模式 定义:适配器模式把一个类的接口变换为客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 使用场...
2018-12-17 11:37:44 146
原创 HTTP概述(一)
从本章起 ,我们就开始讲解关于HTTP的一些基础知识,很多时候,由于语言的高级性,导致我们对于这些基础的知识点一知半解,当你达到一定的深度时候,你就会发现基础知识是多么的重要,所以,从本章起,我开始会讲解一系列的关于HTTP的基础知识,希望对你有所帮助。 HTTP HTTP定义:http可以理解为因特网的多媒体信使,它是一种可靠的数据传输协...
2018-12-14 10:52:15 215
原创 Android中的IPC方式(二)
在Android中,IPC的方式有多种多样,有很多的方式其实我们已经用到了,只是很多时候我们自己并没发觉这是IPC方式的一种。比如:通过在Intent中附加extras来传递信息,或者通过共享文件的方式来共享数据,还可以采用我们之前讲过的binder方式来跨进程通信等等,那么下面我们就来看一下Android中的IPC方式 Android中的IPC方式 使用Bun...
2018-12-13 14:48:19 180
原创 android 中的IPC机制(一)
一直以来都想写篇关于IPC的博客,但是一直都不敢下手,究其原因感觉IPC机制里面水太深,怕自己在里面淹死,但是人嘛总不可能总呆在安逸区里面,是时候好好整理一下IPC的有关内容了,哪里不对的地方还望各位大佬在下面指出。 IPC简介首先我们需要弄懂什么是IPC,IPC是Inter Process Communication的缩写,即进程间通信。那么什么是进程呢?所谓进...
2018-12-07 19:11:20 586
原创 代理设计模式
在众多的设计模式当中,代理设计模式算的上是一种比较重要的设计模式,而且在很多地方都可以找到它的身影,同样的在现实生活当中,我们也随处可见它的踪影。比如,你需要找房子,通过中介能够快速的找到你自己想要的房子,其中中介就充当了一种代理的功能;又比如,老板拖欠工资,你找律师帮你打官司拿回工资也是一种代理模式(这个例子在接下来可以看见)。好了,废话不多说了,我们直接进入主题吧。...
2018-12-05 13:41:45 160
原创 工厂设计模式
在我们的开发过程中,工厂模式是应用最广泛的设计模式之一,当然也是最容易理解的设计模式之一;而对于工厂设计模式而言,它有以下的几个表现形式 工厂方法模式 定义:创建一个用于创建对象的接口,让子类决定实例化哪个类使用场景:在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。简单事例:...
2018-11-27 14:38:48 102
原创 Builder设计模式
在日常的开发过程中,builder设计模式我们会经常见到,同时它也是设计模式比较重要的设计模式之一,那么今天我们就一起来看看,体会一下builder的设计模式的魅力吧 定义:将一个复杂对象的构建与它的表示进行分离,使得同样的构建过程可以创建不同的表示 场景:(1)相同的方法,不同的执行顺序,产生不同的事件结果(2)多个部件或零件,都可以装配到一个对象中,但是产...
2018-11-22 11:20:18 296
原创 android 中的线程和线程池
在android中除了传统的Thread以外,还包含AsyncTask、HandlerThread以及IntentService,这三者的底层实现也是线程,但是它们具有特殊的表现形式,同时在使用上也各有优缺点。下面我们一起来分析一下 AsyncTask AsyncTask是一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进...
2018-11-13 15:09:43 106
原创 Android 打造属于自己的流式布局
在平时的开发过程中,系统为我们提供了五大布局,基本上可以解决在工作中遇到的问题。但是,随着公司对产品的要求越来越高,界面也变的越来越好看,对应的写起来就变的越来越复杂,这个时候系统提供的布局也就不够用了,特别是对于下面的这种格式。因此,到了这个时候,我们只能通过自定义来实现了今天我们要实现的就是这个功能首先写一个StreamLayout类继承自ViewGroup重写...
2018-11-12 14:25:08 196
原创 观察者模式
在android的开发过程中,观察者模式是一个使用非常频繁的模式,而且在很多的源码当中也可以找到他们的身影,这个模式的一个重要作用就是解耦,将被观察者和观察者进行解耦,使得它们之间的依赖性更小,也有利于代码的维护和扩展。 定义 定义对象间一种一对多的依赖关系,使得每当一个对象状态发生改变,则所有依赖于它的对象都会得到通知并被自动更新 使用场景 ...
2018-11-12 11:57:12 137
原创 View的绘制流程
一般在面试的时候,View的绘制流程是必问题,大部分的人都知道onMeasure(),onLayout(),onDraw这三个方法,但是很多时候我们并不知道View到底是怎么绘制的,比如布局嵌套的时候如何测量摆放,MeasureSpec到底是怎么来的,Activity的启动流程中视图是在哪里进行绘制的等等这些问题。所以,自己亲自走一遍View的绘制流程是很有必要的。好了,废...
2018-11-09 13:41:19 134
原创 android Window和WindowManager
前言:Window表示一个窗口的概念,在日常的开发过程中我们很少用到它,但是在某些特定的场景下我们会使用到。查看源码我们知道Window是一个抽象类,而它的实现类是PhoneWindow。而PhoneWindow又是在哪里实例化的呢?不明白的同学可以去我这篇文章看看https://blog.csdn.net/qq_27970997/article/details/8365820...
2018-11-06 18:02:59 437
原创 Activity的启动流程
很早之前就想写一篇关于Activity启动流程的文章,但是很多时候都很难坚持下来,一个是因为工作比较忙的原因,第二个是因为Activity的启动流程太过复杂,不敢轻易下手。最近一段时间公司不忙,加上自己有大把的时间去研究源码,所以便把Activity的启动流程再次好好看了一遍,顺便记录下来供以后自己复习。 一般开始进入Activity的源码分析是从Act...
2018-11-02 17:45:54 1606
原创 责任链设计模式
责任链设计模式,顾名思义就是通过一条链来处理某个请求,当请求满足某个节点的条件时就在这里被处理,否则的话就会继续向下执行 定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 使用场景:多个对象可以处理同一个请求,但具体由哪个对象处理则在运行时动态决定。在请...
2018-11-01 17:54:46 210
原创 android setContentView源码分析
Activity是android的四大组件之一,其重要性不言而喻,而且在我们的开发过程中打交道最多的也是它。在设置视图的时候,我们一般都是通过setContentView来加载我们的布局资源的,看起来很简单的一行代码setContentView(),但是实际上里面都做了哪些事情你真的知道吗? 在开始讲解setContentView的源码之前,你首先要弄懂上...
2018-11-01 10:13:02 346
原创 单例设计模式
单例设计模式是应用最广的模式之一,也是最简单的设计模式,很多初学程序员首先接触的就是它。当然,使用它的时候也非常简单。下面我们就一起来看看吧 定义: 确保某一个类在整个系统中只有一个实例使用场景:针对比较耗时的操作,比如访问数据库,请求网络等等 模式:1.懒汉式2.饿汉式3.静态内部类 在开始介绍单例模式的模式之前...
2018-10-31 10:25:15 126
原创 Handler源码分析
Handler的源码分析在CSDN上面已经烂大街了,为什么我还要去写呢?因为我觉得那毕竟是别人的东西,要想记忆深刻,还是自己写一遍会更好。废话不多说了,下面我们就一起开始吧。在使用Handler之前,我们须了解几个关键词:1.Message(消息) 相信大家对这个都不陌生,Message简称消息,是数据进行传递的载体,也是Handler接收与处理的消息对象。下面我们从源码角度来看...
2018-10-29 18:46:51 190
原创 EventBus 源码分析
俗话说,好记性不如烂笔头。特别是程序这一块,你自己不动手敲敲永远感觉迷迷糊糊的,所以,我们在学习一个新知识点的时候,首先要知道它怎么用,然后还要去研究它为什么这么用,即它里面的原理到底是什么样子的。关于EventBus,我想就不用去说怎么用了,因为它用起来确实很方便。但是,如果我问你,你真的懂EventBus吗?你知道里面用到了哪些设计模式吗?可能很多人会一脸懵逼状态,不要怕...
2018-10-26 16:12:44 364
原创 android中的截图
在做项目的时候,产品提出了一个需求就是分享图片到微信或者朋友圈。乍一眼看到这个需求,觉得so easy呀,第三方都提供了对应的API并且自己也封装好了的。谁知道真正在做的时候一堆问题,本来1个小时应该搞定的需要害我整整搞了两天。算了,废话不多说了,直接上代码。注意:我要分享出去的图在界面上不可见,同时要自己加上二维码和一些文字说明在提供解决方案前,我先贴几个实现其他功...
2018-09-25 18:21:05 476 2
原创 面向对象的六大原则
单一职责原则:Single Responsibility Principle顾名思义:就一个类而言,应该仅有一个引起它变化的原因。简单来说,一个类中应该是一组相关性很高的函数,数据的封装。举个很简单的例子:我们在使用Retrofit+okhttp请求的时候,一般都会这么写//创建okHttpClient对象OkHttpClient mOkHttpClient = new OkHt
2018-01-23 19:12:54 248
原创 打造万能的RecyclerView的Adapte
自从Google推出MD之后,受到了广大程序员的喜爱。其中,最常用的莫过于RecyclerView,相对于传统的ListView而言,RecyclerView的功能更加的强大,其自身提供的LayoutManager可以对Item所显示的样式进行快速切换。好了,废话不多讲,我们就一起来看看吧。注意:我今天并不会讲RecyclerView的基本用法,我相信RecyclerView的基本用法是每个人都会
2018-01-14 12:16:27 319
原创 自定义View 加载之进度条加载
在之前的电商APP中,要实现一个年化收益的效果图,废话不多说,先上个实际效果图来瞧瞧 效果很简单有木有,但是对于初学者而言,有时候就不知道从哪里下手,所以这里我将带大家去思考并实现效果。思考:在我们做任何的自定义View的效果之前,我们都需要在脑子里面有一个明确的思路,千万别走一步想一步,这样很容易导致最后效果实现不了。所以,最好的办法就是先把所有要实现的步骤
2018-01-08 15:15:15 541
原创 android glide com.networkbench.agent.impl.instrumentation.NBSTraceEngine
在使用Glide的框架的时候,碰到一个奇葩的问题,报错信息如下:Process: com.juwang.androidglide, PID: 22694 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/networkbench/agent/impl/instrumentation/NBSTraceEngin
2017-10-31 13:47:28 1361
原创 JAVA中的内存分配
对于JAVA的初学者而言,搞懂JAVA的内存分配并不是一件简单的事情,特别是对于里面的一些概念和逻辑更是让人头痛。针对这种情况,我将自己在学习JAVA内存中的一些心得写下来与大家一起探讨。 在讲解JAVA的内存之前我们先要了解JAVA的编译过程,首先我们编写的java代码通过javac转换成class文件,然后通过类加载器,字节码校验器和解释器生成二进制文件最终被操
2017-10-09 17:02:47 866
原创 android activity的全新解析
今天是国庆的最后一天,在这里先祝大家国庆过的happy呀。国庆过后,我们又要开始全新的搬砖生活了,那么就让我们扬帆起航,开始新的征程吧。 谈起android,大家脑子里反映出来的第一个组件是什么呢?没错,就是今天的主题activity。在网上有很多篇博客关于activity的,但是我看来很多都是片段式的,所以很多时候总有一种让人看罢不能的感觉,所以这几
2017-10-08 19:22:33 263
原创 android中的动画大全
一直以来就想写篇关于android动画的博客,正好趁着这次的项目重新把动画整理了一篇,在以前的基础上重新梳理了一篇,颇有心得,现在写下来一起与大家分享一下。android动画主要分为三种:补间动画,帧动画和属性动画。现在就一个一个讲解一下。补间动画:补间动画很简单,就是对作用的对象进行透明度(alpha),缩放(scale),位移(translate)以及旋转(rotate)的
2017-08-27 18:00:24 293
原创 android 5.0的新控件 RecycleView
android 5.0发布已经过去好久了,之前一直都没有怎么注意它。最近闲来无事,所以来学习学习。android 5.0新加了两个新的控件,RecycleView和CardView,今天,我们就一起来看看这两个控件的使用吧。RecycleView:用于在有限的窗口集显示大量的数据可能有的同学就要问了,我们不是已经有了ListView,GridView了吗?为什么还要新增Recycl
2017-04-21 16:20:10 213
原创 android 5.0新特性之Material Design 使用Material主题
在android 5.0之前,android的界面是很粗糙的,所以在android 5.0的时候,google出了一套针对android的风格样式,称之为 Material Design。本篇博客是Material Design的第一篇:Material主题新的Material主题提供了:· 系统Widgets可设置它们的调色板· 系统Widgets的触摸反馈动画· A
2017-04-18 17:49:15 646
原创 android中的broadcastReceiver
作为android的四大组件之一,broadcastReceiver在某些地方有其独特的用法,下面我们就一起来学习一下broadcastReceiver的基本用法吧1.概念broadcastReceiver包括两个概念:广播发送者和广播接收者。这里的广播其实就是指的Intent,程序可以自己发送广播自己接收,也可以接收系统或其他应用的广播或是发送广播给其他应用程序。2.
2017-04-18 13:31:35 238
转载 Android Service完全解析,关于服务你所需知道的一切
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻
2017-04-17 14:03:40 188
原创 android 控件之HorizontalScrollView
之前由于工作的原因,需要实现一个类似于网易新闻的标签栏样式的布局,乍眼一看,可以使用Gallery,但是由于Google已经放弃了gallery,所以查阅资料后发现可以使用HorizontalScrollView来实现。今天,就让我们一起来探究一下HorizontalScrollView吧。话不多说,先上效果图
2017-04-14 15:18:55 469
原创 fragment的使用注意问题
在上一篇主要讲解了fragment的一些基础用法,有兴趣的同学可以看看http://blog.csdn.net/qq_27970997/article/details/70036940。那么这一篇主要讲解在使用fragment中的一些注意事项。注意一:fragment回退栈的问题。 如何实现回退栈,回退栈有什么作用呢?首先实现回退栈很简单,只需要在进行c
2017-04-13 11:38:13 390
原创 android中的fragment
在android 3.0的时候,google推出了fragment,深受大家的喜爱。究其原因,是因为fragment极大部分解决了android中的碎片化问题,它使得android的屏幕适配更简单。那么,fragment到底有和魅力呢?下面就让我们一起来看看吧。 fragment的生命周期: fragment作为对activity的补充,其生命周期与activity
2017-04-10 21:08:37 461
原创 android 6.0 新特性权限管理(二)
在上一篇中我着重讲解了android 6.0 运行时权限的由来以及分类,没有看过的童靴可以看http://www.baidu.com进行查看,那么这一篇我将着重讲解如何在项目里面进行权限的管理。(1)注册该权限 不管是Normal Permission还是Dangerous Permission我们第一步都是在androidMainfest里面对该权限进行声明,系
2017-04-01 11:52:48 246
原创 android 6.0 新特性之权限管理(一)
android中的运行时权限 前言:随着android 6.0的普及,android 6.0的新特性逐渐被大家所重视。其中权限模式的变化更加引起了开发人员的注意,那么就让我们一起来看看android中的运行时权限吧。为什么要引入运行时权限: 在android 6.0以前,权限的授予很简单,只需要在android的清单文件(AndroidManifest.
2017-03-28 18:09:15 308
原创 开启博客之旅
前言: 老话说:好记性不如烂笔头。特别是对于我们做技术开发的人来说,一个东西不经常使用的话很容易被遗忘,甚至于忘了之后再也没有一点点印象。因此,对于一些我们学习的东西很有必要通过文字的形式记录下来。所以,为了不让我在学习的过程中做无用功,也为了提高自己的技术水平,我开始把所有学习的东西通过以博客的形式记录下来。博客内容:博客以JAVA和Android开发为主,因
2017-03-09 15:35:17 484
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人