自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android消息机制

Android消息机制 也就是Hanlder的工作原理要比四大组件的要简单很多,所以也是面试时经常被问到的。网上分析Handler的文章很多,但只有自己分析了,才能更加深刻的去理解。要搞清消息机制,首选要弄清五个对象: Handler, MessageQueue, Looper, ThreadLocal能及消息实体MessageHandler 是android提供给我们操作消息的的工具,使用ha

2015-12-17 15:25:15 514

原创 android控件的事件传播机制

事件相关的三个事件方法 dispatcherEvent 负责分发事件的, 函数主要作用是来决定当前的事件是交由自己消费处理,还是交由子控件处理。 返回true,表示事件不再向下分发,事件在这次分发中消费掉。 返回false表示该组件不参与事件分发,事件交由上层组件的onTouchEvent处理。 返回值为super.dispatcherEvent时,表示事件将向下分发。onInte

2015-11-11 17:15:50 2474

原创 利用自定义标签实现分块技术

1. 何为分块?    一个网页通常由几个块组成,现在已经不推荐使用fragment这样的标签。这时利用jsp的自定义标签技术,定义一个自己的标签去执行不同的块,可以有效的实现不同块的逻辑分离,及高效的代码复用。2.分块的实现步骤。    1. 写一个block的抽象类 BlockAbstract,包含一个path字段,一个展示分块页面的方法,及一个由子块执行的回调函数。 

2015-08-24 17:57:02 2981

转载 Actvity的启动模式相关(转)

这是面试过我的一位大神写的,讲的非常到位。前言:      Activity的启动模式是一个既基础又容易忽视的问题,但是这个问题有个深刻的认识,对程序员写一个稳定高效的Android程序帮助很大,今天,在B哥引导下,我们对Activity启动模式、Intent Flags做了一番很好的探究,可以这么说,如果你不熟悉或了解Activity的启动模式或者Flag

2015-08-03 18:15:19 2280

原创 spring源码解析-AOP原理

一、aop的入口ProxyFactoryBean方式实现的入口入口1. ProxyFactoryBean实现了FactoryBean,所以入口在getObject方法。2. initializeAdvisorChain方法初始化所有通知。3. getSingletonInstance中调用getProxy(createAopProxy())创建代理。

2017-08-17 19:20:56 384

原创 spring源码解析-IOC原理

首先以一段简单的代码说明下BeanFactory的使用public class SimpleBeanFactory { public static void main(String[] args) { Resource resource = new ClassPathResource("applicationContext.xml"); DefaultLista

2017-08-17 19:02:35 383

原创 dubbo的通信过程

先看看dubbo的整体分层config,配置层,对外配置接口,以ServiceConfig, ReferenceConfig为中心,可以直接new配置类,也可以通过spring解析配置生成配置类proxy,服务代理层,服务接口透明代理,生成服务的客户端Stub和服务器端Skeleton,以ServiceProxy为中心,扩展接口为ProxyFactoryregistry,注册中

2017-02-23 11:08:10 3597

原创 dubbo集群模式与负载均衡

集群容错模式: 可以自行扩展集群容错策略,参见:集群扩展 Failover Cluster ● 失败自动切换,当出现失败,重试其它服务器。(缺省) ● 通常用于读操作,但重试会带来更长延迟。 ● 可通过retries=”2”来设置重试次数(不含第一次)。 Failfast Cluster ● 快速失败,只发起一次调用,失败立即报错。 ● 通常用于非幂等性的写操作,

2017-02-16 17:54:50 767

原创 dubbo服务的引用

dubbo服务的引用的入口在ReferenceBean中,实现ApplicationContextAware接口,在spring容器初始代时,会回调接口的afterPropertiesSet方法, 对配置文件<dubbo:consumer/>标签进行解析初始代。 ReferenceBean实现了FactoryBean,则对于Factory当调用BeanFactory.getBean()获取对

2017-02-16 17:46:24 769

原创 dubbo服务的发布

dubbo服务的发布的入口也在ServiceBean中,实现ApplicationListener接口,在spring容器初始代启动完成之后,会回调接口的onApplicationEvent方法。步骤 1. ServiceBean.onApplicationEvent()方法调用ServiceConfig.export()->doExport() 2. doEx

2017-02-16 17:45:18 1063

原创 4. dubbo在spring中的初始代

dubbo的初始代

2017-02-16 17:44:32 519

原创 dubbo spi原理解析

dubbo基于spi的思想实现了可扩展式的插件编程,组件的加载都是通过spi来实现 ,只有搞清的spi的原理,才能对dubbo继续深入研究 如下Protocol refprotocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();下面从ExtendsionLoader开始分析dubbo spi

2017-01-20 15:59:31 1503

原创 dubbo框架搭建

一. 在Linux上安装Zookeeper与dubbo-admin管理页 http://doc.okbase.net/congcong68/archive/112508.html dubbo官网 http://dubbo.io/二.在工程中使用dubbo 我使用的是当当网的dubbox, https://github.com/dangdangdotcom/dubbox, 下载

2016-12-05 20:22:13 1097

原创 Spring aop 的实现方式总结

AOP核心概念 1、横切关注点 对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点 2、切面(aspect) 类是对物体特征的抽象,切面就是对横切关注点的抽象 3、连接点(joinpoint) 被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器 4、切入点(pointcut) 对连接点

2016-11-22 21:54:20 421

原创 Maven搭建SSM(SpringMVC + Spring + Mybaits)开发环境 (下)

ssm框架搭建

2016-04-19 17:08:54 2553

原创 Maven搭建SSM(SpringMVC + Spring + Mybaits)开发环境 (上)

本篇将详细介绍 使用eclipse搭建 SSM开发环境的步骤, 包括Log4j配置及 Mybatis generator插件集成。使用环境 eclipse + m2eclipse插件 + jdk7 + tomcat7 + mysql一. 搭建maven工程 1.选择新建maven工程 2.在main下新建 resorces 与webapp文件夹, 这是ma

2016-04-19 12:42:24 1731

原创 bootstarp入门二(基本控件的使用)

bootstrap为我们定义了简洁易用的样式,我们只需要很少的样式指定,就可以完成简约优雅的页面展示。本篇主要介绍以下几个基本控件的而已。1. table2. form 3. button1. 表格(table)依旧使用来表现表格。有如下的类来控制table的属性, table样式默认会占满父容器Class作用.tab

2016-04-11 15:18:38 4712 1

原创 bootstrap3入门一(栅格系统)

http://www.cnblogs.com/aehyok/tag/BootStrap前端设计/一、bootstrap开发环境搭建1. 下载bootstrap, http://www.bootcss.com/2.  下载jquery, 通过IE直接访问http://code.jquery.com/jquery-2.0.3.min.js3. 在html页面中导入bootstr

2016-04-11 15:17:21 597

原创 WebView的使用总结-js与java之前的相互调用

这篇文档主要介绍android中WebView的使用,以及js与java方法中的相互调用。我们这里使用本地的html作用界面。 主要是三个操作 1.在js中去调用java中的代码 2.js中的alert在java中响应 3. java去调js中的方法。首先是我们的html文件, 我们放在assets资产文件中。<html><head> <title>J

2016-03-11 17:04:13 561

原创 14、 android性能优化总结

一、布局优化 1. 避免overDraw, 例如不要在父控件与子控件上设置重复的背景, 这些系统会重复绘制。 2. 优化布局层级,尽可能减少嵌套的层数。 例如使用 RelativeLayout进行定位代替多层 LinearLayout,而在相同层级的情况下,优化选择使用LinerLayout与FrameLayout, 因为 RelativiLayout对子控件的遍历操作会更加耗时

2016-03-06 22:17:19 425

原创 ListView加载不同布局时的复用及原理分析

当加载不同布局时,需要使用到getViewTypeCount和getItemViewType。首先来看看如何来实现加载不同而已时的复用步骤: 重(@Override)写 getViewTypeCount() – 返回你有多少个不同的布局 重写 getItemViewType(int) – 由position返回view type id 根据view item的类型,在getView中创建正确的

2016-03-06 16:35:00 1625

原创 防微信聊天气泡图片实现

先看下效果图 防微信实现如图的 图片显示效果。接上篇博客介绍的图形图片的实现 , 这里通过BitmapSharder来实现这个效果。 主要麻烦的地方就是画出气泡形状的path.这里设置自定义的属性,方便设置 图片气泡方向与边框颜色, attrs文件如下<resources> <declare-styleable name="ChatImageView"> <attr n

2016-02-24 22:22:11 3813

原创 两种方式实现图形图片

本文介绍两种实现图形图片的方法。 1.通过裁剪bitmap, 使用PorterDuffXfermode, 可以参考这篇博客 http://blog.csdn.net/edisonlg/article/details/7084977 2.通过设置渲染器 BitmapShader, 使用一张图片创建一支具有图像填充功能的画笔具体代码如下pu

2016-02-24 21:20:56 532

原创 利用监听者模式实现后台多文件下载的监听

项目聊天功能中,需要监听图片的下载进度。类型于QQ的聊天图片查看。 当退出查看界面时, 下载进程仍在后台运行,再次进入查看界面,如何监听到图片的下载进度呢

2016-02-19 16:20:07 682

原创 1. 实现微信形式的键盘与操作框的弹出收入效果

微信的效果是这样,点击+号时,键盘会收入和弹出,而下面的操作框感觉是一直在下面,而且刚好和键盘等高。要实现这个步骤重点在以下几步1. 得到键盘高度,并把操作框设成键盘高度。2. 能够监听到键盘的收回,键盘收回时把操作框隐藏掉3. 动态设置键盘的弹出模式。先上图 先来解决第一与第二个问题,官方并没给出相应api来得到键盘高度并监听键盘变化。但网上的大神给出了解决方案,这里封装了一个lis

2016-01-30 22:43:56 2398

原创 PopuWindow全屏状态下响应返回键

最近项目较忙,没有时间去看书与写博客。这里分享下在项目中遇到的一引起典型的例子吧。 前面写了一篇防小米的自定义时间控件,也是在项目中遇到。上下效果图。这里使用popupWindow弹出控制,变灰的部分是popuwindow的背景。这里会遇到一个问题,在没点过确定时,返回键会失效。 这是为什么呢? 通过查阅,原因是这样, 全屏状态上popuwindw抢占了activity的焦点,而

2016-01-30 21:45:33 848

原创 防苹果小米日期时间控件

网上想找个类似的控件,好像不是那么好找。找到一个是继承view实现的,看的眼花缭乱,然后自己就继承listview实现一下。一共实现了DatePicker, TimePicker, DateTimePcker三个控件,其实就是组装了一下。 先上效果图 先说下思路: 1.先画出可以上下滑动并可以自动归位的滑动条目WheelView,上图就是由五个这样的条目组成。 2.组装视图,

2015-12-29 12:40:15 488

原创 实现可拖动排序的ListView-DragListView

项目 中要用到拖动排序的效果,于是百度到网上的做法,github上开源框架被我pass, 为了一个小功能导入一库太不划算。然后看到这遍 http://blog.csdn.net/jj120522/article/details/8240407,可能是博主源码给的不全,看到好多人要源码。其实看懂后,很容易的就能补全差的东西。既然用到,自己一定要去实现一遍,只有这样才能真正学到。我对这个控件做了些整理

2015-12-24 13:50:54 3677

原创 ImageLoader实现Bitmap三级缓存

对开发艺术中的ImageLoader作了下整理。三级缓存分别为 内存, 硬盘, 网络 , 其中内存与硬盘存储用到 LruCache与DiskLruCache. 用法会封装在工具类里面,先看ImageLoader的实现步骤 1. 单例实现ImageLoader, 构造方法中开启LruCache与DiskLruCache 2. 三个私有化方法,分别从缓存中取出Bitmap

2015-12-23 18:08:20 3188

原创 Error:(10, 14) java: 类重复: com.xx.R解决方法

今天部署一个项目搞了半天 , 开始是所有的类报红色感叹号,后边是报gen下面的文件类重复,原因都在于配置的Source目录不对。如下图蓝色部分表示打包时包含在Source内, 下面是遇到的两个问题 1. src目录未选成Sources导致所有类文件未被编译到生成的包内。  2. 错误的把整个工程选中Sources,导致 R文件及gen下的其他文件出现类重复。

2015-12-21 12:53:28 22991 7

原创 ListView分组显示,设置悬浮条

最近好忙,没时间看书,没时间写博客。最近 做了个listview分组显示的东西,发现ios那边的ListView 头可以悬浮显示,然后我就不服了,自己实现了一下,分享出来,反正也不难。 首选 是分组显示,应ios那边的要求。json字符串做成了二维数组的形式。java解析出来就是List<Map<String,Object>>这样一个鬼东西。 分组的主要在于adapter.

2015-12-10 15:40:32 1099 1

原创 IPC-Binder连接池

池的这个概念是典型的享元设计模式。比如数据库连接池,线程池。对于有限的资源,我们用一个池去管理,让资源共享于不现调用者之间。这里Binder连接池就是为了解决需要多个aidl服务时,我们可以把这些aidl接口放在池中,让service直接提供池的接口,而在客户端同样用一个池的处理类去与service绑定,调用者根据需求去操控池去调用不同接口既可。艺术探索这本书中把服务端与调用端写在一起,特别是B

2015-11-30 15:15:49 610

原创 Android IPC-AIDL

调用远程服务方法步骤 远程绑定服务时无法通过同一个接口来调用方法,这时就需要使用AIDL技术 将接口扩展名改为“.aidl” 去掉权限修饰符 gen文件夹下会生成同名接口 将服务中自定义的IBinder类改为继承接口中的Stub 用Stub.asInterface()方法把ServiceConnection中返回的IBinder转为接口类型AS中aidl的使用 1.在main下

2015-11-27 18:30:50 880

原创 Android IPC (跨线程调用)

任神的书确实不错, 以IPC的角度把以前零碎的东西做一次复习,加深了理解。以下是读书笔记。 1.进程与线程 进程:android一般一个程序占有一个进程,但可以通过给四大组件指定android:process属性 开启单独,一个进程会运行在 线程: 在一个应用 中耗时操作一般要开启子线程去操作,也就是说一个进程可以有多个线程,它们之间是包含关系。能够进行IP

2015-11-27 18:28:42 928

原创 Material Design-过渡动画

Android 5.0 对 Activity的跳转动画增加了新的特效。三种Translation类型 进入:一个进入的过渡(动画)决定activity中的所有的视图怎么进入屏幕。 退出:一个退出的过渡(动画)决定一个activity中的所有视图怎么退出屏幕。 共享元素:一个共享元素过渡动画决定两个activities之间的过渡,怎么共享它们的视图。其中 进入退出包括

2015-11-22 13:02:18 2002

原创 RecylerView与CardView的使用

RecylerView是Android.5.0以后出现,可以说是对ListView的升级。那么RecylerView相比ListView有哪些新特性呢? 1. 除了可以使用传统的线性布局,还可以使用表格布局。 2. RecylerView自己封装了ViewHolder 以实现 item的利用。 3. RecylerView没有自带onItemClik事件,需要我们在adapt

2015-11-21 17:00:17 2077

原创 使用ViewDragHelper实现slidemenu

前面我已经用 HorizontalScrollView + Fragment实现了一个非常简洁的滑动菜单。这里用ViewDragHelper帮我们处理滑动,效果更佳。作用: 在自定义ViewGroup中帮我们处理子控件的滑动效果 。 先介绍下ViewDragHelper的使用。 1. 继承一个ViewGroup, 在构造方法中初始化一个ViewDragHelper。

2015-11-17 21:52:27 2441

原创 实现滑动的七种方法

周末,android群英传与Android开发艺术探索两本书到了,确实是适合android进阶的好书, 以后书中学到的觉得不错的内容会写在这个模块。今天介绍滑动的七种方式 基本思想: 当手指按下时,记下当前坐标 lastX, lastY 当手指移动时,记下 当前坐标 currentX, currentY 计算差值 offsetX = c

2015-11-17 18:08:14 2700

原创 WebView的基本使用-js与java之前的相互调用

这篇文档主要介绍android中WebView的使用,以及js与java方法中的相互调用。我们这里使用本地的html作用界面。 主要是三个操作 1.在js中去调用java中的代码 2.js中的alert在java中响应 3. java去调js中的方法。首先是我们的html文件, 我们放在assets资产文件中。<html><head> <title>J

2015-11-13 12:29:48 2092

原创 利用viewPager实现的自动滑动的广告栏

首先上一下效果图我们将实现图片与文字的手动切换与自动切换,以及指示圆点的自动切换。 这里主要的工作在ViewPagerAdapter.步骤: 1. 在activity的布局文件中使用viewpager, 2. viewPager的子布局 3. 用布局方式画圆点。 4. 初始化adapter, 在onPagerChangeListener中控制小点的切换。

2015-11-12 18:36:26 2495

防苹果小米日期时间控件

防苹果小米日期时间控件,网上想找个这样通用的控件怎么这么困难,于是自己写了个,实现要还算简洁。布局写在资源文件中,可自由定制。

2015-12-29

空空如也

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

TA关注的人

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