Android
Mr_Zhongquan
大四移动狗
展开
-
三级缓存 Volley /Lrucache/DiskLrucache + AndroidStudio导出jar包 + upload to github
想了半天都没想出来写什么作为第一篇博客比较好,突然发现这次项目的版本控制是github,三级缓存和屏幕适配又是一个跑不掉的话题,就以这些话题开始我的博客之旅吧,同时总结一下在AndroidStudio中如何导出jar包。([参考郭霖的blog](http://blog.csdn.net/guolin_blog/article/details/28863651))([参考李晨玮的blog](http原创 2015-11-23 14:24:27 · 1859 阅读 · 1 评论 -
设计模式_状态模式
状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类。意图是让一个对象在其内部状态改变的时候,行为也随之改变。使用场景一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为代码中包含大量与对象状态有关的条件语句,例如if-else, switch-case且这些分支依赖于该对象的状态状态模原创 2016-03-16 14:36:09 · 744 阅读 · 0 评论 -
MVP 深引用方式的简单实现
每个框架都有各自的使用领域,要根据项目的实际情况合理的选择对应的框架以及设计模式。原创 2016-03-02 09:55:05 · 944 阅读 · 0 评论 -
Rxjava原理探索:切换线程,变换
在之前的几篇博客中,我编写了一篇有关Rxjava学习笔记的,还有一个是RxJava使用示例(一): 实现Rxbus代替eventbus(这篇博文其实还不算完善,因为没有对被观察者发出的时间进行一个筛选,一次发送所有订阅者都会收到,这样不太好,可以再新加一个筛选器,等以后有空或者是遇到的时候再来改一改,现在不急)。之前在写那边Rxjava学习笔记的时候,就突出了一点是只涉及使用,不涉及原理,现在就对R原创 2016-03-25 16:11:30 · 12935 阅读 · 0 评论 -
RxJava使用示例: 实现Rxbus代替eventbus
之前学习了Rxjava(RxJava学习笔记),但是一直找不到使用它的地方。最近做项目的时候遇到需要使用eventbus的时候,突然想起来Rxjava的一个拓展面就是Rxbus,果断用来试试什么是EventbusEventBus定义:是一个发布 / 订阅的事件总线。 这么说应该包含4个成分:发布者,订阅者,事件,总线。 那么这四者的关系是什么呢? 很明显:订阅者订阅事件到总线,发送者发布事件。原创 2016-01-24 19:14:06 · 12924 阅读 · 4 评论 -
总结及梳理 : Fragment
开始的话Fragment,中文译为碎片。被设计为在一定程度上可代替activity部分功能的组件(但是必须依赖于某一activity)。较之于Activity来说,Fragment更为轻量级,也可以适应不同平板和手机的分辨率,实现响应式UI。这也是谷歌比较推崇的一种方式->一个Activity对应多个fragment来构建app。 虽然现在fragment存在着许多的坑,但是在一定程度上是一种趋势吧原创 2016-02-24 15:46:13 · 837 阅读 · 0 评论 -
Android推送(长连接)探索
android推送的方式存在几种,包括轮询,长连接等方式,由于其他的方式用户体验并不是特别好(耗电或者是消耗资源),所以现在大部分的推送都使用的是socket长连接的方式。原创 2016-03-23 13:01:12 · 7106 阅读 · 0 评论 -
RxJava学习笔记
学习自扔物线的文章http://gank.io/post/560e15be2dca930e00da1083。粗略学习了最近越来越火的RxJava,进行一个简单的学习总结,这篇博客只涉及使用,不涉及原理 Github: https://github.com/ReactiveX/RxJava https://github.com/ReactiveX/RxAndroid 使用方式:原创 2015-12-20 22:31:28 · 1991 阅读 · 0 评论 -
设计模式_单例模式
顾名思义,单例对象的类必须保证只有一个实例存在,这有利于我们协调系统整体的行为。例如在Volley框架中,存在一个RequestQueue队列,这个队列中含有线程池,缓存系统,网络请求等,很消耗资源,因此我们最好不要让它构造多个实例。使用场景确保某个类有且只有一个对象的场景,避免多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一个。例如:要创建的对象消耗过多的资源,访问IO和数据库等资源等等原创 2016-03-16 11:56:34 · 1654 阅读 · 0 评论 -
设计模式_原型模式
原型模式: Prototype Module顾名思义,这个模式有一个样板实例,用户从这个样板对象中复制出一个内部属性一致的对象,这个过程也就是我们俗称的克隆。被复制的实例就被成为“原型”。定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象使用场景类初始化需要消耗非常多的资源,包括数据,硬件资源,通过原型拷贝可以避免这些消耗通过new产生一个对象需要非常繁琐的数据准备或访问权限一个原创 2016-03-16 13:46:07 · 562 阅读 · 0 评论 -
设计模式_Builder模式
Builder模式是一步一步创建一个复杂对象的创建型模式,他允许用户在不知道内部构造细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。使用场景例如,在创建一个对象时,如果该对象的构造方法需要多个参数,而多个参数势必会增加开发者调用该构造方法时的难度,一两个参数还好,如果说参数有5个,甚至是更多的时候,开发者在调用方法的原创 2016-03-16 12:13:50 · 602 阅读 · 0 评论 -
自定义控件(一) EditText自定义
自定义控件分三种: 1. 自绘控件 2. 组合控件 3. 继承控件代码已上传到 github 以后的自定义控件就都放这个仓库需求这里由于项目的需要实现一个自定义EditText,主要实现的为两点,一个是工具图标toolIcon,例如点击清除EditText内容。一个为EditText左边的提示图标hintIcon, 例如输入账号密码时前面的图标。为了让这个控件的拓展性更高,设置了两个点击事件原创 2016-01-12 18:25:08 · 3369 阅读 · 1 评论 -
三种屏幕适配的方式
第一篇博客总结了三级缓存/AndroidStudio打包jar包/上传基本文件到github, 第二篇就接着总结一下三种屏幕适配的方式。在这里也推荐一下张鸿洋的博客,关注挺久了,和郭霖的都很好。第一种方式,dimens中设置不同dx值,来达到适配的目的 第二种方式,利用第三方百分比库 第三种方式,利用第三方库:AutoLayout 第一种方式 更改dimens 这种方式也是以前使用的最多的原创 2015-11-23 19:49:42 · 2528 阅读 · 2 评论 -
全局变量的处理
很多时候APP会莫名其妙的崩溃,尤其是一些配置很低的收集,重现场景就是在APP切换到后台后,闲置了一段时间后再继续使用时,就会崩溃。 导致上述崩溃发生的一个可能罪魁祸首就是全局变量,在内存不足的时候,系统会回收一部分闲置的资源,由于APP被切换到了后台,所以之前存放的全局变量很容易被回收,这是再切换到前台继续使用,在使用某个全局变量的时候,就会因为全局变量的值为空而崩溃。 要解决这个问题原创 2015-11-24 20:59:45 · 963 阅读 · 0 评论 -
Android自动填写验证码
第四篇博客就来总结下项目中使用到的一个提升用户体验的功能: Android自动填写验证码 从字面上来看,很明显的可以看出它的实现流程:监听->有改变->获取信息->改变ui观察者模式 观察者模式是软件设计模式中的一种,在此模式中,一个目标物件管理所有相依于它的观察者物件,并且在本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统 观察者原创 2015-11-25 17:27:19 · 1292 阅读 · 0 评论 -
引导页_视差显示
当用户下载完APP后,第一次启动时通常会有一个引导页,而这个引导页对于引导用户或介绍本产品有着很好的作用。一般三种方式实现:Viewpager 这种方式很简单,易实现,但是在观赏性上来说很差,没有任何动画视差显示 这种方式是基于ViewPager的,通过自定义其中的类,或者调整其中的方法来达到显示的效果。 在ViewPager中,有一个接口叫做PageTransformer,其中有一原创 2015-12-01 17:08:55 · 1011 阅读 · 0 评论 -
手势
这里介绍的只是一个简单的DEMO,根据官方的API还可以进行自定义手势的编写,具体的内容就以后遇到了再说,在本项目中也只起一个开后门的验证作用,毕竟一个没有后门的APP不是一个好APP画手势图:GestureOverlayView画的时候存在几种状态,可利用GestureDetector中的类进行监听1.onDown : 触碰2.onFling:拖动3.onLongPress:长按4.onScrol原创 2015-12-01 17:29:26 · 864 阅读 · 0 评论 -
Json数据的解析_Gson
一些简单的JSON格式解析可以直接使用JSONObject和JSONArray来解析,但是面对比较复杂或者是数据量较大的JSON数据时就需要使用fastJSON和Gson来解析了,这样的效率和效果都更好原创 2015-12-07 17:05:42 · 727 阅读 · 0 评论 -
ViewPager 取消预加载
ViewPager在设计的时候有一个预加载的机制,也就是如果你处于当前这个page界面时,会预先加载下一个page。但是有的时候设计到网络请求,就需要取消掉这个预加载。原创 2015-12-08 22:26:24 · 6106 阅读 · 1 评论 -
Android重构记录及其模块化
本文仅为个人观点,不完全符合模块化的标准定义及其拓展。思路类似,仅此而已。不可当做模块化的标准理解。如果各位对于本博客中提到的任何思路或者架构有任何看法,欢迎讨论。以下仅是这3天的个人考虑,基于个人能力及视野的限制,很有可能不完善,欢迎批评指正,共同进步。转载请注明出处:http://blog.csdn.net/jonstank2013?viewmode=contents原创 2017-02-24 13:11:41 · 2570 阅读 · 2 评论