读书笔记-android基础
文章平均质量分 81
疯狂Max
https://github.com/cxMax
展开
-
《Android开发艺术探索》读书笔记 (4) 第4章 View的工作原理
自定义View View常见的回调方式: 构造方法:(比较常见,经常通过构造方法完成初始化对象等操作); onVisibilityChanged: 自定义view里面提供了一个状态模式的实现,允许在View 的visibility 发生改变时,引发执行onVisibilityChanged 方法中的动作。 onAttach(Activity):当Fragment与Activity发生关联原创 2016-01-18 23:49:39 · 494 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (13) 第13章 备忘录模式
前言 备忘录模式也是一种行为模式,用来保存对象的当前状态. 定义 定义:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态. 优点: 1.给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态 2.实现信息的封装,使得用户不需要关心状态的保存细节 缺点:消耗资源,如果累成员变量过多,势必会占用比较大的资源,而且每一次保存都能消耗一定的内存 使用场景:原创 2016-02-21 15:49:39 · 563 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (15) 第15章 模板方法模式
前言 这个模式也是之前见得比较少的. 用一句话来形容就是:流程封装,具体实现由子类来完成.但是任意一个抽象类,都符合具体实现细节由子类完成的要求,关键在于是否有流程,有流程的叫模板方法模式,没有流程,就是抽象类的实现. 定义 定义:定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 可以联想下我们平时用到的OKhttpUtils网络连原创 2016-02-21 16:28:32 · 403 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (20) 第20章 适配器模式
适配器模式定义 定义:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 使用场景: 1.想要建立一个重复使用的类,用于一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作. 2.需要一个统一的输出接口,而输入端的类型不可预知. UML类图 Target:目标角色,也就是所期待得到的接口 /** * Target原创 2016-03-08 01:27:14 · 403 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (16) 第16章 访问者模式
前言 访问者模式,是一种将数据操作和数据结构分离的设计模式. 大多数情况下,你并不需要使用访问者模式,但是当你一旦需要使用它时,那你就是真地需要它了. 定义 定义:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作. 优点: 1.各角色职责分离,符合单一职责的原则 2.具有优秀的扩展性 3.使得数据结构和作用于结构上的操作解耦,使得操作集原创 2016-02-21 22:35:43 · 728 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (17) 第17章 中介者模式
前言 中介者模式面向的是多类对象 定义 定义:包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用.将多对多相互作用转化为一对多的相互作用. 优点:可以对依赖关系的类进行解耦使逻辑结构清晰 使用场景:对象之间交互操作,为防止在修改一个对象的行为时,同时涉及修改很多其他对象的行为,来解决耦合问题. UML类图 Mediator:抽象中介者角色,定义了同事对象到中介者对象的接口,一般以抽象类方式原创 2016-02-21 23:31:28 · 632 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (25) 第25章 Android架构之MVC,MVP,MVVM
前言 在说MVC和MVP,MVVM架构之前,我们先得理清楚什么是框架模式,什么时设计模式. 框架模式:通常是对代码的重用,用来对软件的设计进行分工. 设计模式:通常是对设计的重用,是小技巧,对具体的问题提出解决方案,以提高代码复用率,降低耦合度.MVP模式简单总结就是:Presenter与view和数据Dao层先建立链接实现抽象接口,内部实现业务逻辑和数据处理; View只负责数据显示和初始化.数据原创 2016-02-22 00:47:40 · 770 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (12) 第12章 观察者模式
前言最近在做IM即时通讯语音录制发送这个模块的时候,用到了观察者模式,因此结合书上内容在加深了一遍,不得不说观察者模式是一个使用率非常高的模式.定义 定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新 作用:将观察者和被观察者解耦.最常用在GUI系统,订阅-发布系统.笔者遇到的场景是聊天语音播放和控制. 应用场景:关联行为场景,多级触发场景,原创 2016-02-17 23:50:33 · 540 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (6) 第6章 抽象工厂模式
前言相比于工厂模式,工厂模式是生产不同的复杂的具体的产品对象,而抽象工厂模式呢,抽象工厂生产出抽象产品,抽象产品通过不同组合返回不同具体的产品的对象.说起来有点抽象,我们看下UML图,在看下具体的代码可能你就清楚了定义 定义:为一组相关或者相互依赖的对象提供一个接口,而不需要指定他们具体的类. 使用场景: 优点:相比于工厂模式,灵活,跟builder模式类似,通过不同产品的不同部件,组成新的产品.而原创 2016-02-18 00:54:54 · 603 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (19) 第19章 组合模式
前言 组合模式:部分和整体的模式,结构型设计模式之一.他将一组相似的对象看做一个对象处理,并根据一个树状结构来组合对象. 在android开发过程中,使用得并不多,更适用于对一些界面UI的架构设计上, 组合模式和解释器模式有一定的类同,两者在迭代对象时都涉及递归的调用. 定义 定义:将对象组合成属性结构以表示”部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性. 使用场景:表示对象原创 2016-03-03 22:52:07 · 382 阅读 · 0 评论 -
《Android开发艺术探索》读书笔记 (15) Android性能优化
前言 笔者在新公司,前两个月做的最多的就是改BUG,熟悉项目,性能优化,其中也经历了不少坑。昨日翻书才发现,其实原来书里面都已经为你总结好了。 不过在有了一番性能优化经验后,对于书上所描述的问题领悟便更深刻了一点。其实一般性能优化在笔者遇到的情况看来,无外乎就是解决ANR(也包含由于OOM导致的ANR)和OOM的问题,这其实就是因为一些书写代码质量问题,比如说:嵌套布局过于复杂,bitmap使用的时原创 2016-07-03 16:03:02 · 431 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (11) 第11章 命令模式
前言 命令模式也是一种行为型的设计模式 定义 定义:将一系列的方法调用封装,用户只需调用一个方法执行,那么所有这些被封装的方法就会挨个执行调用. 优点:更弱的耦合性,更灵活的控制性,以及更好的扩展性. 缺点:类的膨胀,大量衍生类的创建 UML类图 commond:命令角色,定义所有具体命令类的抽象接口 /** * 命令接口 * @author max * */ public interfac原创 2016-02-21 14:13:08 · 466 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (10) 第10章 解释器模式
前言解释器模式如同责任链模式一样,也是一种行为型模式,只是在平时使用较少. 不过想想android计算器四则运算:加减乘除和数字表达式的解释,其实恰恰就是这种设计模式的表现定义 定义:提供一种解释语言的语法或者表达式的方式 优点:灵活的扩展性,在构建抽象语法树时,使用到新增的解释器对象进行具体的解释即可. 缺点:对于每一条文法对应至少一个解释器,会生成大量的类.对于过于复杂的文法,并不推荐使用解释原创 2016-02-21 13:16:01 · 412 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (9) 第9章 责任链模式
前言 该模式是行为设计模式之一.如果说android中该模式应用最具代表性的例子的话就是android的触摸机制.大家此时可以想想android的点击事件传递和拦截机制那幅图,就能更好的理解这个模式啦.如果想不起来也没关系,这里贴出来这个图.(以前自己画的,有点丑,大家也可以自行百度哈,不影响理解(^__^) ). 定义 定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系原创 2016-02-21 00:39:06 · 382 阅读 · 0 评论 -
android-Activity读书笔记
这段时间,上班和下班都在加点做公司两个不同的项目,忙得昏天黑地,也没来得及更新博客,距离上次写博客都过了快接近1个月了吧.最近又累计了一些自定义View的使用,以及开发过程中一些异常出来以及一些开发心得体会.会陆续更新到博客上面. 最近打算把android大部分基础都按照自理的理解整理下,因此建了这个博客分类.因为随着笔者做android的时间越长,项目接触的越多,才意识到自己有些原创 2015-12-21 22:33:59 · 506 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (4) 第4章 原型模式
前言定义 定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象. 用途:多用于创建复杂的或者构造耗时的实例. 使用场景: 1.类初始化需要消耗非常多的资源(数据\硬件),通过原型拷贝,避免这些消耗. 2.通过new产生一个对象需要非常繁琐的数据准备或访问权限, 3.一个对象提供给其他对象访问,各个调用者可能都需要修改其值时候 UML类图 - client:表示客户端用户原创 2016-02-03 00:42:43 · 517 阅读 · 0 评论 -
《Android开发艺术探索》读书笔记 (1) 第1章 Activity的生命周期和启动模式
前言 activity作为一个新\老android开发人员是熟悉不过了,不过细节决定成败,笔者把自己在实际开发中的遇到的问题总结下.鉴于之前已经记录了一片activity的日志,这边就只简单做知识点的归纳. Activity生命周期 正常情况下: 1.从APP中点击home键返回到系统桌面,在返回到activity,调用的是onRestart()这个方法. 2.onStart()和onStop(原创 2016-01-30 02:01:42 · 698 阅读 · 4 评论 -
《Android源码设计模式》读书笔记 (5) 第5章 工厂模式
前言定义 定义:定义一个用户创建对象的接口,让子类决定实例化哪个类 使用场景:需要生成复杂对象的地方,使用该模式,如果用new的对象,就无需使用.例如:activity生命周期,onCreate()等 缺点:每次为工厂方法模式添加新的产品时,就要编写一个新的产品类,同时还要引入抽象层,势必会导致类结构复杂化. UML类图 根据UML类图,可以把工厂模式分为4大模块: 抽象工厂:抽象父类,提供返回具体原创 2016-02-14 00:11:49 · 781 阅读 · 0 评论 -
《Android开发艺术探索》读书笔记 (2) 第2章 IPC机制
前言 在作为一个android新入门的菜鸟的时候,对于android进程内各组件之间通信就有点混淆不清了.更别说进程间通信和跨进程通信了.但随着项目的深入和经验的丰富,回过头来再看,会发现其实IPC机制也没有那么高深莫测,接下来就是我实际应用和读书笔记. 概念 IPC:Inter-Process Communication,表示进程间通信或者跨进程通信.是指两个进程之间进行数据交换的过程. (一般原创 2016-02-01 01:02:21 · 622 阅读 · 0 评论 -
《App研发录》读书笔记 (4) 第4章 Android命名规范和编码规范
前言 作为一名开发人员,如果具有良好的命名习惯和编码规范,于人于己都是一件非常有利的事情,方便快速阅读公司项目框架,快速上手代码.曾几何时,初出茅庐的我们曾经是否因接收到乱糟糟的代码而感觉到头疼和愤怒. 因此,本篇文章的意义:主要在于记录书上一提供的一套命名规范,方便我们及时查阅.因为在下了解到,有些童鞋居然用拼音命名还自我感觉良好,实在令人汗颜= =b. 当然每个公司都有自己的规范要求,各位因地制原创 2016-02-02 22:49:10 · 472 阅读 · 0 评论 -
Java注释@interface的用法【转】
java用 @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类。 @Override,@Deprecated,@SuppressWarnings为常见的3个注解。 注解相当于一种标记,在程序中加上了注解就等于为程序加上了某种标记,以后, JAVAC编译器,开发工具和其他程序可以用反射来了解你的类以及各种元素上有无任何标记,看你有什么标记,就转载 2016-02-17 01:02:18 · 353 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (18) 第18章 代理模式
前言 代理模式也是一种结构型的设计模式, 定义 定义:为其他对象提供一种代理以控制对这个对象的访问. 使用场景:当无法或不想直接访问某个对象或访问某个对象困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,委托对象与代理对象需要实现相同的接口. UML类图 UML类图通用模式代码: Subject:抽象主题类,主要作用:声明真是主题与代理的共同接口方法. /** * 抽象主题类 *原创 2016-02-24 22:45:16 · 415 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (7) 第7章 策略模式
前言 每天这个点,带了一天的隐形眼睛,看电脑实在有点疲劳了,不过当我看到这个策略模式简介的时候,我一下来了精神. 我相信很多初级程序员想在代码质量上有所提升的时候,我们会发现我没之前封装的一些方法类,是否过于冗余??如果有新的需求,我们是否是直接在该类里面直接创建一个新的方法,不断使这个类变得臃肿,难以维护. 其实策略模式总结起来还是java接口的善用,java特性抽象\封装\继承\多态也在该模式有原创 2016-02-18 01:29:12 · 424 阅读 · 0 评论 -
《Android源码设计模式》读书笔记 (8) 第8章 状态模式
前言 状态模式跟策略模式跟相似,从他们两个UML类图中就可以看出. 状态模式其实就是一个将if-else用多态来实例的一个具体示例. 定义 定义:当一个对象的类在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 使用场景: 1.一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为. 2.代码中包含大量与状态有关的if-else语句,并且它必须是在运行时根据状态的改变改变它原创 2016-02-20 22:27:21 · 548 阅读 · 0 评论 -
<数据结构与算法> 学习记录
正文 表、栈、队列: 表: 1.表的简单实现:数组。 2.为了避免插入和删除的线性开销,表可以不连续存储。 链表,由一系列节点组成,这些节点不必再内存中相连。每一个节点均含有表元素和到包含该元素后继元素的链,也称为next链。 双链表,让每一个节点持有一个指向它在表中的前驱节点的链。 List类,ArrayList类和LinkedList类: ArrayList与LinkedList原创 2016-09-02 10:06:08 · 647 阅读 · 0 评论