自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MVC与MVP

MVC与MVP1、MVC1)、简介:MVC全称是Model-View-Controller,也就是模型---视图---控制器,目的就是为了将数据模型和视图分离开来,并以控制器作为连接两者的桥梁以实现解耦。MVC的优点:①、理解起来比较容易,技术含量并不高,这对开发和维护来说成本较低也易于维护和修改②、耦合性不高,表现层与业务层分离实现各司其职,对开发来说也很有利。缺点:

2016-04-05 10:13:16 502

原创 WebView实战与设计

WebView实战笔记1、简述现在纯Native的应用越来越少,即使一个使用Native开发的应用,有些模块也需要用WebView加载h5页面,比如新年活动之类生命周期很短的模块,那么使用WebView+H5的模式开发将成为首选,一来可以节约成本,再者,h5页面可以频繁更改,非常适合做活动类的模块。当然hybrid应用中,WebView的使用更是频繁。WebView是Android S

2016-04-02 16:06:47 397

原创 模块间通信EventBus

模块间通信EventBus1、简述在真实项目中,模块之间需要通信的业务场景非常常见。比如:个人中心页面显示头像,但是在更改头像的页面更改头像之后,个人中心页面的头像要同步更新。模块之间的通信可以通过:接口回调、广播、第三方框架EventBus。接口回调:耦合性高,如果接口多了,不利于后期的维护,可能过几个月之后代码连自己都不想看了,回调地狱。广播:广播是系统内置的组件,消息型组

2016-04-01 10:34:38 2497 1

原创 各种字符的限制输入

各种字符的限制输入1、简述在真实的商业项目中,一个EditText常常需要对输入字符进行限制,不可能输入任何字符,然后我们客户端直接把这些数据传给后台,现实数据的交互。很典型的场景就是:接收手机号码的EditText只接收0到9的数字;接受密码的EditText不接收汉字、不常见的符号。2、代码示例①、限制EditText只接收0到9的数字public class PhoneK

2016-03-31 15:49:47 1870 1

原创 短信验证码自动填充

短信验证码自动填充1、简述不知道大家有没觉得,注册一个app的时候,还要手动输入短信验证码,挺烦的?反正我觉得是挺烦的!其实这也不是什么高深的技术,我们可以通过代码的形式,完成短信验证码的自动填充。思路:①、继承系统的ContentObserver类,当内容发生变化时,那么系统就会回调ContentObserver的onChange方法,观察者模式,这些都是系统帮我们完成的,我们需

2016-03-31 14:29:38 2910

原创 Android学习资源

1、Java设计模式:2、Android源码设计分析3、Android官方培训中文版4、CommonAdapter5、Android代码示例大全6、换肤与夜间模式7、面试题大全8、码农周刊知识整理9、

2016-03-23 14:18:54 231

原创 9_四大组件的工作过程

四大组件的工作过程1、四大组件的运行状态2、Activity的工作过程3、Service的工作过程4、

2016-03-18 17:54:09 340

原创 10_Android的消息机制

Android的消息机制1、Android的消息机制概述2、Android的消息机制分析3、主线程的消息循环

2016-03-18 17:52:23 262

原创 11_Android的线程和线程池

Android的线程和线程池1、主线程和子线程线程在Android中是一个很重要的概念,从用途上来说,线程分为主线程和子线程,主线程主要处理和界面相关的事情,而子线程则往往用于执行耗时操作。由于Android的特性,如果在主线程中执行耗时操作那么就会导致程序无法及时响应,因此耗时操作必须放在直线成功中去执行。撤了Thread本身以外,在Android中扮演线程角色的还有AsynTask、I

2016-03-18 15:43:52 337

原创 12_Bitmap的加载和Cache

Bitmap的加载和Cache1、Bitmap的高效加载Bitmap在Android中指的是一张图片,可以是png格式也可以是jpg等其他常见的图片格式。可以通过BitmapFactory类提供的四类方法:decodeFile、decodeResource、decodeStream、decodeByteArray,分别用于加载文件、资源、输入流和字节数组中加载一个Bitmap对象。如何

2016-03-18 10:24:48 333

原创 13_综合技术

综合技术1、使用CrashHandler来获取应用的crash信息不管程序怎么写都很难避免不crash,当程序crash后虽然无法让其继续运行,但是如果能够知道程序crash的原因,那么就可以修复错误。其实可以通过CrashHandler来监视应用的crash信息,给程序设置一个CrashHandler,这样当程序crash时就会调用CrashHandler的uncaughtExcep

2016-03-18 09:24:19 331

原创 15_Android性能优化

Android性能优化Android性能优化Android设备作为一种移动设备,不管是内存还是GPU的性能都收到了一定的限制,无法像PC设备那样具有超大的内存和高性能的CPU。Android程序不可能无限制地使用内存和CPU资源,过多地使用内存会导致内存溢出,即OOM;过多地使用CPU资源,一般是指做大量耗时任务,会导致手机变得卡顿甚至导致程序无法响应,即ANR。内存泄露,内存泄露并不

2016-03-17 16:03:09 284

原创 8_理解Window和WindowManager

理解Window和WindowManager1、Window和WindowManagerWindow是一个抽象类,它的具体实现是phoneWindow。创建一个Window只需要通过WindowManager即可完成。WindowManager是外界访问Window的入口,Window的具体实现位于WindowManagerService中,WindowManager和WindowMana

2016-03-17 15:02:04 304

原创 7_Android动画深入分析

Android动画深入分析Android的动画分为三类:View动画、帧动画和属性动画。View动画通过对场景里的对象不断做图像变换(平移、缩放、旋转、透明度)从而产生动画效果,它是一种渐进式动画,并且View动画支持自定义。帧动画通过顺序播放一系列图像从而产生动画效果,可以简单理解为图片切换动画,如果图片过多过大就会导致OOM。属性动画通过动态地改变对象的属性从而达到动画效果。1、V

2016-03-17 10:46:12 344

原创 6_Android的Drawable

Drawable1、Drawable简介2、Drawable分类3、自定义Drawable

2016-03-16 17:10:05 289

原创 5_理解RemoteView

理解RemoteViews1、RemoteViews的应用RemoteViews表示的是一个View结构,它可以在其他进程中显示,由于它在其他进程中显示,为了能够更新它的界面,RemoteViews提供了一组基础的操作用于跨进程更新它的界面。RemoteViews在实际开发中,主要用于在通知栏和桌面小部件的开发中。通知栏和桌面小部件的开发过程都会用到RemoteViews,它们在更新界

2016-03-16 15:19:59 330

原创 4_View的工作原理

View的工作原理1、初识ViewRoot和DecorView2、理解MeasureSpec3、View的工作流程4、自定义View

2016-03-15 17:29:29 367

原创 3_View的事件体系

View的事件体系View的事件体系很多情况下我们的应用都需要支持滑动操作,当处于不同层级的View都可以响应用户的滑动操作时,就会带来一个问题---滑动冲突。1、View基础知识1)、View在Android的设计中,ViewGroup也继承了View,这就意味着View本身就可以是单个控件也可以是由多个控件组成的一组控件,通过这种关系就形成了View树的结构。2)、Vi

2016-03-15 11:30:11 340

原创 2_Android中的IPC机制

IPC机制1、Android IPC简介IPC是inter-Process Communication的缩写,含义为进程间通信或者跨进程通信,指两个进程之间进行数据交换的过程。最简单的情况下,一个进程中可以只有一个线程,即主线程,在Android里面主线程也叫UI线程,在UI线程里才能操作界面元素。很多时候,一个进程中需要执行大量耗时的任务,如果这些任务放在主线程中去执行就会造成界面无

2016-03-14 15:40:38 370

原创 1_Activity的生命周期和启动模式

Activity的生命周期和启动模式1、Activity的生命周期解析所谓的典型情况下的生命周期,是指用户参与的情况下,Activity所经过的生命周期的改变;而异常情况下的生命周期是指Activity被系统回收或者由于当前设备的Configuration发生改变从而导致Activity被销毁重建。1.1、典型情况下1)、针对一个特定的Activity,第一次启动,回调如下

2016-03-14 09:46:32 340

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

适配器模式1、定义适配器模式把一个类的接口变换成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两类能够在一起工作。2、使用场景1)、系统需要使用现有的类,而此类的接口不符合系统的需要,即接口不兼容2)、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作3)、需要一个统一的输出接口,而输入端的类型不可预

2016-03-13 18:26:46 222

原创 设计模式_模板方法模式

模板方法模式1、定义定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义该算法的特定步骤。2、使用场景在面向对象的开发过程中,通常会遇到这样一个问题,知道一个算法说需要的关键步骤,并确定了这些步骤的执行顺序,但是某些步骤的具体实现是未知的。1)、多个子类有公有的方法,并且逻辑基本相同时2)、重要、复杂的算法,可以把核心算法设计为模

2016-03-13 15:53:19 259

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

迭代器模式1、定义提供一个方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示2、使用场景迭代器模式又称游标模式,是行为设计模式之一。迭代器模式是一种比较古老的设计模式,其源于对容器的访问。对容器对象的访问必然会涉及到遍历算法,我们可以将遍历算法封装在容器中,或者不提供遍历算法。如果将遍历算法封装到容器中,那么对于容器类来说就承担了过多的功能。容器类不仅要维护自

2016-03-13 14:45:10 238

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

备忘录模式1、定义2、使用场景3、UML类图

2016-03-13 14:38:36 394

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

观察者模式1、定义定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。2、使用场景观察者模式是一个使用频率非常高的模式,它最常用的地方是GUI系统、订阅---发布系统,因为这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得它们之间的依赖性更小,设置做到毫无依赖。1)、关联行为场景,需要注意的是,关联行为是可拆分的,而

2016-03-11 21:59:48 263

原创 设计模式_状态模式

状态模式1、定义当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式的行为是由状态来决定的,不同的状态下有不同对的行为。状态模式和策略模式的结构几乎完全一样,但它们的目的、本质却完全不一样。状态模式的行为是平行的、不可替换的,策略模式的行为是彼此独立、可相互替换的。2、使用场景1)、一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的

2016-03-11 14:22:01 300

原创 设计模式_策略模式

策略模式1、定义策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替代。策略模式让算法独立于使用它的客户而独立变化。实现某一个功能可以有多种算法或者策略,我们根据实际情况选择不同的算法或者策略来完成该功能。常规的方法是将多种算法写在一个类中。通过if---else或者case语句判断具体的算法。这种实现方式为硬编码。当很多算法集中在一个类中,这个类就会变得臃肿

2016-03-11 11:52:03 298

原创 设计模式_工厂方法模式

工厂方法模式1、定义定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。2、使用场景在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。3、UML类图角色介绍:Factory:抽象工厂,其为工厂方法模式的核心ConcreteFactory:具体工厂,其实现了具体的业务逻辑Prod

2016-03-11 11:49:34 240

原创 设计模式_原型模式

原型模式1、定义定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型是一个创建型的模式。原型二字表明了该模式应该有一个样板实例,用户从这个样板对象中复制出一个内部属性一致的对象,这个过程也就是我们俗称的“克隆”。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复制的或者构造耗时的实例,因为这种情况下,复制一个已经存在的实例可使程序运行更

2016-03-11 09:24:55 371

原创 设计模式_Builder模式

Builder模式1、定义定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Builder模式是一步一步创建一个复杂对象的创建型模式,允许用户在不知道内部构造内部构建细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离出来。使用Builder模式将部件和组装过程分离,使得构建过程和部

2016-03-10 17:18:57 295

原创 设计模式_单例模式

单例模式1、定义:确保在一个系统中一个类只能有一个实例,而且自行实例化并向整个系统提供这个实例。2、使用场景确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一个。例如:创建一个对象需要消耗的资源过多,如要访问IO和数据库等资源,这时就考虑使用单例模式。3、UML类图4、代码示例5、总结

2016-03-10 11:31:31 340

原创 2_面向对象的六大原则

面向对象的六大原则1、单一职责单一职责的英文全称是Single Responsibility Principle,缩写为SRP。定义:就一个类而言,应该仅有一个引起它变化的原因。简单来说,一个类中应该是一组相关性很高的函数,数据的封装。两个完全不一样的功能就不应该放在一个类中。单一职责是代码优化的第一步!2、开闭原则开闭原则的英文全称是Open Close Prin

2016-03-10 09:50:27 321

原创 1_UML六种关系

UML的六种关系UML:Unified Modeling Language(UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 在UML类图中,常见的有以下几种关系:泛化(Generalization)、实现(Realization)/关联(A

2016-03-09 17:41:32 509

空空如也

空空如也

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

TA关注的人

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