自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个学渣走向android之路

坚持做自己懒得做但是正确的事情,你就能得到别人想得到却得不到的东西。

  • 博客(90)
  • 资源 (7)
  • 论坛 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 2018年博客之星评选,需要您宝贵的一票!非常感谢!

我正在参加CSDN 2018年博客之星评选,希望大家能投我一票,我在NO.018。感谢大家宝贵的一票,投票地址:https://bss.csdn.net/m/topic/blog_star2018/index

2018-12-31 16:59:22 615 2

原创 2019请对2018的我好一点

回顾细细回顾这一年,不知不觉,就要2019了,2018发生了太多太多事了。依旧记得去年给自己定了三个方向的目标。现在想来,只完成了一个半。感觉这一年都是忙忙碌碌的度过的,却又不知道都忙些了啥。那就写个总结吧。今年也是第三年写年终总结了。工作与技术在去年的年终总结中,我也有说,今年要换一份工作,的确是换了份工作,而且还是两份,很多人都没想到,其中也包括我自己。可以说今年是毕业以来,换工作最频繁...

2018-12-29 19:59:19 2032 3

原创 回首2017,展望2018

前言回首2017,展望2018。心里有很多话想多,有些却没法用语言表达出来。这也是第二年开始写年终总结。记得去年的总结,没有好好的规划今年,导致今年都不知道干了什么。所以决定今天在此总结自己的一年的收获以及来年的规划。回首工作早期了解我的读者,都知道我前年因为工作的事在家休假了半年。今年正月十六来到魔都上海,开始了找工作的旅行。也许是机缘巧合,半个月之后,我的一篇博客通过郭霖公众号投放出来的时候,我

2018-01-02 08:58:25 1547 4

原创 为什么我要坚持写博客?

题记2017转眼即逝,这周已经是2017的最后一周了,今天我聊聊为什么要写博客。我从接触Android到现在,差一个月的时间就满三年了,写博客也写了两年半的时间了。从15年四月到现在。从阅读量很低,然后慢慢高起来,我记得今年年初的时候,我CSDN的访问量是3w左右,今年快结束了,我今天又看了一下,咦,突破15w了。2年3w和大半年12w的数据,使我很吃惊的。下面我就谈谈为什么要写,如何写以及写博客的

2017-12-27 09:34:53 2129 1

原创 我的微信公众号开通了

突发奇想,一个想法诞生了。于是乎,这个公众号就这么冲天而降了。10年接触c, 14年接触java,这都不是重点,15年年初接触Android。16年年初走向Android的不归路。我希望在本公众号分享一些我所学的心得。已经当初填的一些坑。当然,本公众号支持投稿。刚开始维护公众号或多或少有一些不懂的地方。忘大家理解。我就是马云飞,希望可以把自己技术、思想成长的过程分享与你,感谢你的鼓励与陪伴,谢谢!欢

2017-07-29 18:54:13 1486 5

原创 2016,不忘初心;2017,方得始终!

前言本人文笔很差,重来都是想到哪写到哪。如果写的不是很好,见谅。至于这次总结。就打算从技术、工作以及生活来做个年终总结。生活篇群里每次有新人进群的时候都会问我工作多久。嗯,我工作才勉强一年。不要认为我是工作了很久,我才是一个刚进社会的小萌新。今年刚毕业。 在无锡呆了快一年了。熟悉了那里的生活。熟悉了小区外的烧烤。熟悉了那边的拉条。每周都会吃那么一顿。每日每夜。总的来说。不是很喜欢。感觉和在乡下差不

2017-01-26 22:12:08 2070 7

原创 如何在工作中快速成长?致工程师的十条建议。

前言本文是我最近刚看完的一本《阿里工程师的自我修养》书中的部分内容,我做了简单的梳理。侵删。思考脑与反射脑简单介绍下什么是思考脑和反射脑。思考脑管理性,反射脑管直觉,存储脑管记忆,直觉依赖习惯,用直觉做出反应,快速,但未必正确;思考脑管理性,理性依赖逻辑,缓慢,但更加正确。有科学家通过研究,发现一个人一天的行为中,5%是非习惯性的,用思考脑的逻辑驱动,95%是习惯性的,用反射脑的直觉驱动...

2019-10-09 11:37:29 170

原创 设计模式之模块模式

概述在模板模式中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。使用场景多个子类有公共方法,并且逻辑基本相同时。重要的、复杂的方法,可以考虑作为模板方法。重构时,模板模式一般是最常用的,把相同的代码抽取到父类中,通过子类约束其行为。###例子我们将创建一个定义操作的 Game 抽象...

2018-12-17 10:18:59 331 1

原创 设计模式之外观模式

概述外观模式中开发过程中使用率非常高。它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。使用场景为复杂的模块或子系统提供外界访问的模块。子系统相对独立。预防低水平人员带来的风险。具体实现public interface Shape { void draw();}public clas...

2018-12-17 10:18:33 186

原创 设计模式之装饰模式

概述装饰模式也称包装模式,其使用一种对客户端透明的方式来动态扩展对象,同时它也是继承关系的一种替代方式之一。举个例子:孙悟空有 72 变,当他变成"庙宇"后,他的根本还是一只猴子,但是他又有了庙宇的功能。使用场景扩展一个类的功能。动态增加功能,动态撤销。具体实现//Component 英雄接口 public interface Hero { //学习技能 void...

2018-12-17 10:18:04 282

原创 设计模式之桥接模式

概述桥接模式是把抽象化和实现化进行解耦,使二者可以独立变化。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。使用场景如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使它们在抽象层建立一个关联关系。对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧...

2018-12-17 10:16:18 179

原创 设计模式之享元模式

概述享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。使用场景系统中存在大量的相似对象。需要缓冲池的场景。具体实现public interface Ticket { public void showTicketInfo(String bunk);}// 火车票cla...

2018-12-14 15:59:00 119

原创 设计模式之适配器模式

概述适配器模式中开发中可以说是使用率最高的设计模式了。在listview、recyclerview中都需要使用适配器模式,并且在开发中遇到最多的问题也往往是在adapter中。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。使用场景系统需要...

2018-12-14 15:58:31 108

原创 设计模式之组合模式

概述组合模式又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。使用场景部分、整体场景,如树形菜单,文件、文件夹的管理。具体实现 public class Employee { pri...

2018-12-14 15:57:59 104

原创 设计模式之代理模式

概述代理模式也称为委托模式,这种模式在开发和生活中都很常见,比如猪八戒去找高翠兰结果是孙悟空变的,可以这样理解:把高翠兰的外貌抽象出来,高翠兰本人和孙悟空都实现了这个接口,猪八戒访问高翠兰的时候看不出来这个是孙悟空,所以说孙悟空是高翠兰代理类。 还有让同学,同事带饭也是一种代理。总而言之,代理模式几乎可以说是无处不在了。那么我们看看代理模式有多普遍。使用场景当无法或不想直接访问某个对象或者访...

2018-12-14 15:57:34 130

原创 设计模式之访问者模式

概述访问者模式是一种将数据结构和数据操作分离的设计模式,它是设计模式中最复杂的一个,一般来说,它的使用概率并不高,但当你真当使用它时,你就真的需要它了。元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。使用场景对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作。需要对一...

2018-12-14 15:57:05 95

原创 设计模式之中介者模式

概述中介者模式是用来降低多个对象和类之间通信的复杂性。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立变化。使用场景系统中对象之间存在比较复杂的引用关系,导致它们之间的依赖关系结构混乱而且难以复用该对象。想通过一个中间类来封装多个类中的行为,而又不想生成太多的子类。具体实现我们通过聊天室实例来演示中介者模式。实例中,多个用户可以向聊天室...

2018-12-14 15:56:35 124

原创 设计模式之迭代器模式

概述迭代器模式又称游标模式,是行为性模式之一。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。使用场景访问一个聚合对象的内容而无须暴露它的内部表示。需要为聚合对象提供多种遍历方式。为遍历不同的聚合结构提供一个统一的接口。具体实现我们将创建一个叙述导航方法的 Iterator 接口和一个返回迭代器的 Container 接口。实现了 Container 接口的实体...

2018-12-14 15:55:54 102

原创 设计模式之备忘录模式

概述备忘录模式是一种行为模式,该模式用于保存当前对象,并且在之后可以再次恢复到此状态。这有点像我们平时说的“后悔药”。备忘录模式实现的方式需要保证被保存的对象不能被对象从外部访问,目的是为了保护好被保存的这些对象的状态的完整性以及内部实现不像外暴露。使用场景需要保存/恢复数据的相关状态场景。提供一个可回滚的操作。具体实现备忘录模式使用三个类 Memento、Originator 和...

2018-12-14 15:55:25 152

原创 设计模式之观察者模式

概述观察者模式是一个使用频率非常高的设计模式。不过这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得他们的依赖性变小,甚至做到毫无依赖。它是一种定义对象间一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。使用场景关联行为场景,需要注意的是,关联是可拆分的,而不是“组合”关系。跨系统的消息交换场景,如消息队列,事件机制。需要在系统中创建一个...

2018-12-14 15:54:51 150

原创 设计模式之命令模式

概述命令模式相对于其他模式没有那么多的规定,因为它不是一个很规矩的模式。不过,正因为这一点,命令模式对比其他设计模式更为灵活。我们接触比较多的命令模式无非开关机。我们点击关机命令时,它会先暂停事件,然后结束所有进程,最后关机。也就是说我只需要点击一个关机按钮就可以做到这一系列的命令。而我们的命令模式其实也和这一样。讲一系列的动作进行请求封装,用户只需要调用一个方法,这些动作会被挨个执行。使用场...

2018-12-14 15:54:18 113

原创 设计模式之解释器模式

概述解释器模式一般来说,我们用的比较少,它提供了一种解释语言的语法或者表达式的方式,比如说1+2,我们可以通过解释器模式告诉你这是一个加法。使用场景如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。可以将一个需要解释执行的语言中的句子表示为一个抽象语法树。一些重复出现的问题...

2018-12-14 15:53:50 75

原创 设计模式之责任链模式

概述责任链模式,顾名思义,它是一个链式模型,这种模式给予请求的类型,对请求的发送者和接收者进行解耦。对于这种结构,每个节点可以拆分在链接,所以,这种模式有着较好的灵活性。使用场景多个对象处理同一个请求在请求处理者不明确的情况下向多个对象中的一个提交一个请求。需要动态指定一组对象处理请求。具体实现众所周知,Android中最常见的责任链模式。现在我们来实现一个简单的责任链模式。我...

2018-12-14 15:53:14 246

原创 设计模式之状态模式

概述在状态模式中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。状态模式是把所有的行为包装在不同的状态对象中,意在是让一个对象在其内部改变的时候,他的行为也跟着改变。使用场景1、行为随状态改变而改变的场景。2、代码中包含大量的条件语句,比如if-else和switch-case,且这些条件依赖于该对象的状态。具体实现这边我以播放器的开始和停止举例。首先我们创建一个状...

2018-12-14 15:52:40 92

原创 设计模式之策略模式

概述策略模式在我们日常开发中也是经常遇见的。比如实现某一个功能有多种算法或者策略。我们根据具体情况去实现它。例如:排序算法,我们可以使用插入、冒泡、快排等等。针对这种情况,我们一般将多个策略写在一个工具类中去方便调用。我们需要A策略就是调用A方法,需要B策略就调用B方法。如果将这些算法或者策略抽象出来,变成一个接口,不同的策略有不同的实现类。这样我们就可以通过注入不同的对象去实现策略的动态替...

2018-12-14 15:52:07 72

原创 设计模式之抽象工厂模式

概述前面我们已经说到了工厂模式,现在我们扯扯抽象工厂模式。从字母意思理解下,工厂也就是会生产指定的产品。那么抽象工厂就意味着生产出来的产品不是指定的。往简单点说,抽象工厂就是为创建一组相关或者相互依赖的对象提供一个接口,而不需要指明他们的具体类。使用场景一个产品族有相同的约束时可以使用抽象工厂模式。是不是听起来很抽象?比如android、ios下都有短信软件和拨号软件,两者同属于软件。但是,...

2018-12-14 15:51:27 63

原创 设计模式之工厂模式

概述工厂模式在我们平常开发中应用比较广泛,或许你不知道,但你已经使用了很多次了。我们明确地计划不同条件下创建不同实例时,就会使用到工厂模式。工厂模式分为简单工厂模式和抽象工厂模式。这边我们先说简单的工厂模式。使用场景在任何需要生成复杂的对象的地方,都可以使用工厂模式。复杂对象适合使用工厂模式。而直接通过new就可以完成创建的对象无需使用工厂模式。具体实现首先,我们创建一个实体类的接口:...

2018-12-14 15:50:54 59

原创 设计模式之原型模式

概述原型模式是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。使用场景1、资源优化...

2018-12-14 15:50:23 51

原创 设计模式之建造者模式

概述建造者模式又称Builder模式,它是一步步创建一个复杂的对象然后进行构建。可以精准的控制对象的构造过程。此模式是将构建复杂对象的过程与它的部件解耦,使得构建过程和部件的表示隔离开来。一个对象有很多复杂的信息,比如人,有身高,体重,性别,姓名,年龄等等。如何将这些信息给组合起来,然后形成这个对象。比如男生很多,20岁的男生也很多。这个信息组成的过程很漫长。对于这种情况,构建过程中对外部影藏...

2018-12-14 15:49:42 60

原创 设计模式之单例模式

概述单例模式是应用最广的设计模式之一。也可能是很多初级工程师唯一会使用的设计模式。从字面意思,单例模式就是单例对象的类必须保证只有一个实例的存在,而且自行实例化并向整个系统提供这个实例。例如,创建一个对象需要消耗太多的资源,如要访问IO和数据库等资源,这时需要考虑单例模式。懒汉单例模式线程不安全当提到单例模式的时候,我们第一反应就是如下代码:public class Singleton ...

2018-12-14 15:49:10 83

原创 设计模式之六大设计原则

概述设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。而设计原则则是设计模式所遵循的规则,设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。在开发过程中...

2018-12-14 15:47:13 86

原创 Android的消息机制

概述说到Android的消息机制,我们肯定会想到Handler。是的,Android的消息机制主要是指Handler的运行机制以及Handler所附带的MessageQueue和Looper的工作过程。当我们工作的时候我们只要接触到Handler就可以了。Android的消息机制主要是指handlr的运行机制,handler的运行需要底层的messagequeue和looper来支撑。mess...

2018-09-25 16:05:01 147

原创 android的线程和线程池

概述线程中Android中是很重要的一个概念。从用途上来说,线程分为主线程和子线程。主线程主要用于界面上的交互,而子线程主要用于一些耗时操作。除了thread之外,在Android中可以扮演线程角色的还有很多。例如Asnyctask、IntentService以及handlerthread。对于asnyctask,它的底层用了线程池,对于intentservice和handlerthread来说...

2018-09-25 16:03:14 204 1

原创 彻底理解Window的添加,删除,更新过程

概述Window表示一个窗口,但在日常开发中我们接触的不多。我们常见的如Toast和PopWindow都是属于Window。Window是一个抽象类,而Window的具体实现类是PhoneWindow。如果我们需要创建一个Window,只需要通过WindowManager去实现。而它的具体实现是在WindowManagerService中。我们需要知道Android所有的视图都是附加在Wind...

2018-09-17 14:42:23 807

原创 我们熟悉的Context到底是什么?

Context基本概念先看一下Context源码,代码如下: /** * Interface to global information about an application environment. This is * an abstract class whose implementation is provided by * the Android system. ...

2018-09-14 17:44:54 192

原创 红黑树真的没你想的那么难

概述TreeMap是红黑树的java实现,红黑树能保证增、删、查等基本操作的时间复杂度为O(lgN)。 首先我们来看一张TreeMap的继承体系图: 还是比较直观的,这里来简单说一下继承体系中不常见的接口NavigableMap和SortedMap,这两个接口见名知意。先说NavigableMap接口,NavigableMap接口声明了一些列具有导航功能的方法,比如: /...

2018-07-06 23:42:18 18760 3

原创 找工作时,我们应该思考的几件事情。

现在身为跳槽高峰季,作为即将跳槽的我,在这里分享几点建议给大家。简历怎么投?众所周知,找工作的前提是面试,面试的前提是过了简历,过了简历的前提是你怎么投。这边我不分析简历怎么写。来说说怎么投。在座的各位,有在校生,有毕业生,还有工作几年的。 先说说在校生。其实,现在的在校生可能不比哪些工作了1-2年的人差。因为现在教学资料多了。老师也不是那种只知道个四大组件的了。不像我之前学Andro...

2018-04-27 16:29:00 294 1

原创 我所经历的Android面试

概述时隔一个多月,我又回来了。这段时间有不少人问我最近在干嘛,面经什么时候写,怎么这么久没更文了等等等等。当然了,最近我一直在执行了一次我计划了近半年的跳槽。总得而言还不错。说下我的情况。我是去年九月份开始计划,十一月份开始准备,投了100+家公司,拿到了20+个面试,总共面试了四家,拿到了3个offer,周期差不多是一个月时间。这个面经可能不是适合所有人,毕竟这次不是一线大厂的面经。不过...

2018-04-21 16:07:53 1052 2

原创 Activity生命周期详解

Activity是什么?Activity是用户和应用程序交互的界面,用户可以在Activity上进行点击、滚动、触摸等操作。一般来说,一个应用是由多个Activity组成,首次进入的Activity称为主Activity。至于如何判断一个Activity是不是主Activity。本篇文章我们先不讨论。后面会讲到。Activity的活动状态当我查阅关于Activity的官方文档的时候,我

2018-01-29 16:45:04 639

原创 View的绘制流程源码分析

概述View的绘制流程主要是指测量、布局以及绘制显示,在View中,measure是测量View的宽高,layout是控制View四个顶点的位置,而draw就是将布局直接绘制出来。Measure流程measure的流程氛围View的measure流程以及ViewGroup的measure的流程。之所以把View和ViewGroup分开就是因为ViewGroup不仅仅要测量自身的宽高,而

2018-01-16 14:38:26 816

Progress的实现

Progress的实现

2016-03-28

Progress功能的实现

Progress功能的实现

2016-03-29

Progress实现

2016-03-30

独一无二的loading

独一无二的loading

2016-08-18

Diffutils详解

详解了recyclerview局部刷新那点事

2017-04-11

VLayout实例

这是关于阿狸开源项目vlayout的介绍

2017-03-28

独一无二的loadingview

出自博客:http://blog.csdn.net/sw950729/article/details/52239548。有问题博客留言

2016-08-18

android关于自定义view

发表于 2016-08-05 最后回复 2016-08-05

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

TA关注的人 TA的粉丝

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