自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello! Mr.L

Do or Die

  • 博客(34)
  • 资源 (3)
  • 收藏
  • 关注

原创 博客迁移到 www.imlzq.com

博客迁移到 www.imlzq.comCSDN的博客就不再维护了,网站安全性太低,老是被脱裤

2018-02-12 18:33:21 373

原创 Android重构记录及其模块化

本文仅为个人观点,不完全符合模块化的标准定义及其拓展。思路类似,仅此而已。不可当做模块化的标准理解。如果各位对于本博客中提到的任何思路或者架构有任何看法,欢迎讨论。以下仅是这3天的个人考虑,基于个人能力及视野的限制,很有可能不完善,欢迎批评指正,共同进步。转载请注明出处:http://blog.csdn.net/jonstank2013?viewmode=contents

2017-02-24 13:11:41 2532 2

原创 个人知识点总结——Java并发

Java并发实在是一个很深的问题,这里只简单记录一下Java并发的知识点。水太深,如果不花大量的时间感觉完全hold不住,但是目前的精力完全不够,兴趣也不在这

2016-04-13 17:55:08 3669

原创 Rxjava原理探索:切换线程,变换

在之前的几篇博客中,我编写了一篇有关Rxjava学习笔记的,还有一个是RxJava使用示例(一): 实现Rxbus代替eventbus(这篇博文其实还不算完善,因为没有对被观察者发出的时间进行一个筛选,一次发送所有订阅者都会收到,这样不太好,可以再新加一个筛选器,等以后有空或者是遇到的时候再来改一改,现在不急)。之前在写那边Rxjava学习笔记的时候,就突出了一点是只涉及使用,不涉及原理,现在就对R

2016-03-25 16:11:30 12897

原创 Android推送(长连接)探索

android推送的方式存在几种,包括轮询,长连接等方式,由于其他的方式用户体验并不是特别好(耗电或者是消耗资源),所以现在大部分的推送都使用的是socket长连接的方式。

2016-03-23 13:01:12 7040

原创 JVM原理及底层探索

JVM是Java程序运行的环境,但是他同时也是一个操作系统的一个应用程序的一个进程,因此JVM也有他自己的运行生命周期,也有自己的代码和数据空间。

2016-03-18 14:05:09 5432 1

原创 设计模式_状态模式

状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类。意图是让一个对象在其内部状态改变的时候,行为也随之改变。使用场景一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为代码中包含大量与对象状态有关的条件语句,例如if-else, switch-case且这些分支依赖于该对象的状态状态模

2016-03-16 14:36:09 718

原创 设计模式_原型模式

原型模式: Prototype Module顾名思义,这个模式有一个样板实例,用户从这个样板对象中复制出一个内部属性一致的对象,这个过程也就是我们俗称的克隆。被复制的实例就被成为“原型”。定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象使用场景类初始化需要消耗非常多的资源,包括数据,硬件资源,通过原型拷贝可以避免这些消耗通过new产生一个对象需要非常繁琐的数据准备或访问权限一个

2016-03-16 13:46:07 544

原创 设计模式_Builder模式

Builder模式是一步一步创建一个复杂对象的创建型模式,他允许用户在不知道内部构造细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。使用场景例如,在创建一个对象时,如果该对象的构造方法需要多个参数,而多个参数势必会增加开发者调用该构造方法时的难度,一两个参数还好,如果说参数有5个,甚至是更多的时候,开发者在调用方法的

2016-03-16 12:13:50 579

原创 设计模式_单例模式

顾名思义,单例对象的类必须保证只有一个实例存在,这有利于我们协调系统整体的行为。例如在Volley框架中,存在一个RequestQueue队列,这个队列中含有线程池,缓存系统,网络请求等,很消耗资源,因此我们最好不要让它构造多个实例。使用场景确保某个类有且只有一个对象的场景,避免多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一个。例如:要创建的对象消耗过多的资源,访问IO和数据库等资源等等

2016-03-16 11:56:34 1620

原创 子字符串查找算法_归纳及汇总

字符串的一种基本操作就是子字符串查找:给定一段长度为N的文本和一段长度为M的模式字符串,在文本中找到一个和该模式相符的字符串。 模式-> ABCDE 正文-> SJAHDJKS”ABCDE”QWIYUE上文加引号处就是被搜索出来的结果。 相信这个大家肯定是经常遇到的吧,不管是使用 “CTRL+F” 搜索还是在一些搜索栏中搜索一段文字,将包含该文字的书籍输出中,我们都会遇到,所以在这里对

2016-03-15 17:44:31 9449

原创 二叉树, 二叉查找树,二分查找算法

二叉树二叉树跟树有区别,最大的一点就是:树的度没有限制,而二叉树最多则不能超过2个度基础二叉树由结点组成,结点包含的链接可以为空( null)或者指向其他结点,在二叉树中,每个结点只能有一个父结点(只有根节点例外), 而且每个结点都只有左右两个链接,分别指向他们自己的左子节点和右子节点。类型完全二叉树:若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有

2016-03-15 13:05:35 8304

原创 快速排序_归纳

算法思路选取一个初始值将所有比该初始值大的数置于初始值的右边,所有比该初始值小的数置于初始值的左边循环以上操作,直到完成排序为止。初级算法实现首先,第一轮循环时分为两步。 第一步:从最右边向左依次遍历,查找比初始值小的数,找到之后,更改arr[left]的值, 同时 left ++,即把小的数扔到左边去 第二步:从最左边向右依次遍历,查找比初始值大的数,找到之后,更改arr[right]

2016-03-14 17:22:13 592

原创 MVP 深引用方式的简单实现

每个框架都有各自的使用领域,要根据项目的实际情况合理的选择对应的框架以及设计模式。

2016-03-02 09:55:05 925

原创 Python学习笔记(四) 多重继承及内部算法解析

多重继承Python

2016-02-27 13:23:35 1981

原创 Python学习笔记(三)

安装第三方模块python 2.7.9版本内置pip,官方推荐。在命令行中使用 - pip install xxx.py 安装第三方模块 - 命令行输入python,进入python的命令行模式 - import xxx使用futurePython的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入future模块的某些功能来实

2016-02-27 00:50:28 705

原创 Python学习笔记(二) 装饰器decorator

装饰器decoratordecorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。例如,现在存在一个函数A(),但是里面没有Log,没有打印出相关的信息,现在我又想添加一个Log方法,就可以使用装饰器了,这样的话就不用直接修改源代码。只需要只用@标识符import timedef performance(f): def fn(*args, **kw):

2016-02-26 22:26:45 727

原创 Python学习笔记(一) 高阶函数,偏函数,闭包

Python中高阶函数可接受其他的函数作为参数。常用高阶函数map(function, list) 让list的每一个元素依次调用function函数,并获取返回值存入一个新的list中。def format_name(s): return s.capitalize() #将首字母大写,其余小写print map(format_name, ['adam', 'LISA', 'barT'])结

2016-02-26 22:12:18 1855

原创 Go语言学习笔记(一):Linux下的安装与配置

下载https://golang.org/dl/ 进入这个网址,选择对应的版本进行下载,需要翻墙。安装默认是建议安装到/usr/localsudo tar -C /usr/local -xzf go1.6.linux-amd64.tar.gz验证进入/usr/local/gobin/go version 查看版本号是否对应设置环境变量需要设置4个环境变量: GOROOT, GOPATH, GOBIN

2016-02-26 15:37:47 616

原创 总结及梳理 : Fragment

开始的话Fragment,中文译为碎片。被设计为在一定程度上可代替activity部分功能的组件(但是必须依赖于某一activity)。较之于Activity来说,Fragment更为轻量级,也可以适应不同平板和手机的分辨率,实现响应式UI。这也是谷歌比较推崇的一种方式->一个Activity对应多个fragment来构建app。 虽然现在fragment存在着许多的坑,但是在一定程度上是一种趋势吧

2016-02-24 15:46:13 815

原创 RxJava使用示例: 实现Rxbus代替eventbus

之前学习了Rxjava(RxJava学习笔记),但是一直找不到使用它的地方。最近做项目的时候遇到需要使用eventbus的时候,突然想起来Rxjava的一个拓展面就是Rxbus,果断用来试试什么是EventbusEventBus定义:是一个发布 / 订阅的事件总线。 这么说应该包含4个成分:发布者,订阅者,事件,总线。 那么这四者的关系是什么呢? 很明显:订阅者订阅事件到总线,发送者发布事件。

2016-01-24 19:14:06 12883 4

原创 发布自己项目让别人可以在dependencies中compile的更简单方法

昨天写了一篇文章《 使用Gradle发布项目到JCenter仓库》 方法较为繁琐,同时也需要等待审核才能发布。 今天查找到了一个更简单的方法,利用JitPack,可以两步完成。发布登陆 jitpack在编辑框中输入github的网址,完成后点击LookUp 使用点击完LookUp后出现如下画面: 点击 Get it.之后网页就会自动导航到下面那一栏,按照里面的两个顺序依次填写就可以完成

2016-01-14 18:39:50 3012

原创 使用Gradle发布项目到JCenter仓库

如果想在AndroidStudio中直接使用别人的项目或者是库,一般的做法是在dependencies中进行compile,而compile的东西就是存放在JCenter或者Maven仓库中的。在这里我上传到JCenter,因为现在默认是支持JCenter,同时JCenter也兼容Maven注册Bintray账号简单注册就好,Bintray传送门生成项目的JavaDoc和source JARs并上传

2016-01-13 18:24:21 1335

原创 自定义控件(一) EditText自定义

自定义控件分三种: 1. 自绘控件 2. 组合控件 3. 继承控件代码已上传到 github 以后的自定义控件就都放这个仓库需求这里由于项目的需要实现一个自定义EditText,主要实现的为两点,一个是工具图标toolIcon,例如点击清除EditText内容。一个为EditText左边的提示图标hintIcon, 例如输入账号密码时前面的图标。为了让这个控件的拓展性更高,设置了两个点击事件

2016-01-12 18:25:08 3340 1

原创 RxJava学习笔记

学习自扔物线的文章http://gank.io/post/560e15be2dca930e00da1083。粗略学习了最近越来越火的RxJava,进行一个简单的学习总结,这篇博客只涉及使用,不涉及原理 Github: https://github.com/ReactiveX/RxJava https://github.com/ReactiveX/RxAndroid 使用方式:

2015-12-20 22:31:28 1953

原创 ViewPager 取消预加载

ViewPager在设计的时候有一个预加载的机制,也就是如果你处于当前这个page界面时,会预先加载下一个page。但是有的时候设计到网络请求,就需要取消掉这个预加载。

2015-12-08 22:26:24 5985 1

原创 Json数据的解析_Gson

一些简单的JSON格式解析可以直接使用JSONObject和JSONArray来解析,但是面对比较复杂或者是数据量较大的JSON数据时就需要使用fastJSON和Gson来解析了,这样的效率和效果都更好

2015-12-07 17:05:42 708

原创 手势

这里介绍的只是一个简单的DEMO,根据官方的API还可以进行自定义手势的编写,具体的内容就以后遇到了再说,在本项目中也只起一个开后门的验证作用,毕竟一个没有后门的APP不是一个好APP画手势图:GestureOverlayView画的时候存在几种状态,可利用GestureDetector中的类进行监听1.onDown : 触碰2.onFling:拖动3.onLongPress:长按4.onScrol

2015-12-01 17:29:26 837

原创 引导页_视差显示

当用户下载完APP后,第一次启动时通常会有一个引导页,而这个引导页对于引导用户或介绍本产品有着很好的作用。一般三种方式实现:Viewpager  这种方式很简单,易实现,但是在观赏性上来说很差,没有任何动画视差显示  这种方式是基于ViewPager的,通过自定义其中的类,或者调整其中的方法来达到显示的效果。  在ViewPager中,有一个接口叫做PageTransformer,其中有一

2015-12-01 17:08:55 991

原创 Android自动填写验证码

第四篇博客就来总结下项目中使用到的一个提升用户体验的功能: Android自动填写验证码  从字面上来看,很明显的可以看出它的实现流程:监听->有改变->获取信息->改变ui观察者模式  观察者模式是软件设计模式中的一种,在此模式中,一个目标物件管理所有相依于它的观察者物件,并且在本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统   观察者

2015-11-25 17:27:19 1232

原创 全局变量的处理

很多时候APP会莫名其妙的崩溃,尤其是一些配置很低的收集,重现场景就是在APP切换到后台后,闲置了一段时间后再继续使用时,就会崩溃。   导致上述崩溃发生的一个可能罪魁祸首就是全局变量,在内存不足的时候,系统会回收一部分闲置的资源,由于APP被切换到了后台,所以之前存放的全局变量很容易被回收,这是再切换到前台继续使用,在使用某个全局变量的时候,就会因为全局变量的值为空而崩溃。   要解决这个问题

2015-11-24 20:59:45 940

原创 三种屏幕适配的方式

第一篇博客总结了三级缓存/AndroidStudio打包jar包/上传基本文件到github, 第二篇就接着总结一下三种屏幕适配的方式。在这里也推荐一下张鸿洋的博客,关注挺久了,和郭霖的都很好。第一种方式,dimens中设置不同dx值,来达到适配的目的 第二种方式,利用第三方百分比库 第三种方式,利用第三方库:AutoLayout 第一种方式 更改dimens  这种方式也是以前使用的最多的

2015-11-23 19:49:42 2468 2

原创 三级缓存 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 1840 1

原创 序言

正式开始前要说的话    对于写博客这种事,其实一直都是有想法的,这算是一种自我经验的终结,也算是另一种学习的机会吧。之前很多东西学习了之后没有总结,过了一段时间,自然的就淡了。在今年7月份的时候也逐渐萌生了编写自己第一篇博客的念头,但是由于项目的运作,导致时间不够便逐渐忘记了。   现在随着项目第一期迭代的结束,有了一定的时间来进行自我的经验总结与学习,那就把此次的项目中使用到的技术以及对应的经验总

2015-11-22 16:58:58 511

自动生成分辨率

屏幕适配,java -jar xx.jar width height width,height_width,height

2015-11-23

volley-1.0.11.jar

volley-1.0.11.jar, 直接引入

2015-11-23

DiskLruCache

DiskLruCache.java,直接复制到src目录下的相关文件夹下

2015-11-23

空空如也

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

TA关注的人

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