自定义博客皮肤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, world

学习 纪录 分享

  • 博客(73)
  • 资源 (2)
  • 收藏
  • 关注

原创 Activity的setContentView分析

概述MeasureSpecsetContentView概述理解View如何工作的,对于掌握自定义View非常有必要,在整个View的绘制过程中,需要进行三个大的流程,首先是要理解为何View要设置三个大流程,然后从理解的角度适当结合源码进行流程的梳理,才能形成较为清晰的脉络。 一个View从创建到在显示到屏幕,个人理解决定其显示效果的因素有三个:自身的大...

2018-09-03 23:04:05 471

原创 隐式Intent解析

回顾Android中的隐式Intent的相关知识点。概述使用action标签category标签data标签概述隐式启动主要解决了界面间的跳转解耦,主要涉及intent-filter中的三个标签:categoryactiondata它们构成了隐式启动的匹配项,通过不同的配置完成不同的路由跳转。使用列一个例子,新建一个APP有两...

2018-08-21 13:51:59 2894

原创 Android中的线程池

回顾TimeInterpolator插值器和TypeEvaluator估值器的使用方式。

2018-08-18 14:25:15 208

原创 属性动画使用解析(三):理解TimeInterpolator插值器和TypeEvaluator估值器

回顾TimeInterpolator插值器和TypeEvaluator估值器的使用方式。

2018-08-13 23:43:51 350

原创 属性动画使用解析(二):ValueAnimator

概述ofFloat方法ofInt方法ofArgb方法ofObject方法ofPropertyValuesHolder方法setInterpolator方法setEvaluator方法其他概述ObjectAnimator实际上继承了ValueAnimator,能够直接操作对象属性来改变动画的执行效果,而ValueAnimator主要是提供在执行动画过程...

2018-08-12 23:58:14 688

原创 属性动画使用解析(一):ViewPropertyAnimator和ObjectAnimator

回顾集合体系中LinkedList的源码实现,查看的源码为Android系统中的java源码实现,和JDK中的实现可能有一定区别。

2018-08-11 22:29:19 1184

原创 LinkedList源码浅析

回顾集合体系中LinkedList的源码实现,查看的源码为Android系统中的java源码实现,和JDK中的实现可能有一定区别。

2018-08-08 00:34:07 145

原创 ArrayList源码浅析

回顾下集合体系中,ArrayList的一些主要操作的原理。成员变量构造方法add方法get方法set方法remove方法clear方法其他成员变量首先看下成员变量://如果不给定ArrayList的初始容量,那么默认为10 private static final int DEFAULT_CAPACITY = 10; //如果初始化容量设...

2018-08-06 22:00:54 137

原创 IntentService 使用及原理浅析

概述使用原理总结

2018-08-03 18:04:04 248

原创 HandlerThread的使用及原理浅析

对HandlerThread的一些总结。概述使用原理总结概述HandlerThread提供了一种能在子线程进行异步操作的消息处理机制,本质上它封装Thread和Looper来在子线程进行消息的存储和分发。 涉及到Handler的相关知识Handler 原理知识点回顾 。使用简单的例子:HandlerThread handlerThread =...

2018-08-03 16:12:28 1961

原创 LocalBroadcastManager知识点回顾及原理浅析

概述使用原理总结概述LocalBroadcastManager作为Android系统广播机制的一种高效方案,可以有效地保护数据的安全性和隐秘性,能够让数据只能在自身应用中传播,不同与系统广播比较复杂的实现机制,因此回顾下其使用方法和原理。使用//比如在Activity中使用//创建IntentFilter,指定触发的action,可以指定多个a...

2018-08-02 18:11:38 600

原创 SharedPreferences知识点及原理浅析

概述调用方式存储方式存储对象修改存储位置概述SharedPreferences作为Android系统的数据存储方式之一,现回顾下其实现原理。调用方式SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIV...

2018-08-02 00:39:22 728

原创 Handler 原理知识点回顾

handler作为android消息处理的重要机制,全面回顾下其涉及的知识点。关键类整个消息处理机制中涉及到的主要类有: Message 负责消息封装 MessageQueue负责将消息封装为消息队列 Looper负责从消息队列中获取消息并分发 Handler负责消息发送及处理Message看看代码中的类注释: 定义包含描述和任意数据对象的消息,发送到Handl...

2018-07-31 22:28:32 285

原创 EventBus3.0源码分析

概述关于EventBus3.x的用法,本文不再赘述,只分析其实现原理,官方的流程图: 上图是EventBus基于观察者模式的事件发布流程的高度概括,经过下文的源码分析后,再来体会该流程会比较清晰。订阅流程需要订阅事件的对象首先需要进行注册,比如Activity中:EventBus.getDefault().register(activity);看看EventBus这个类中做了什么: /** C

2017-06-02 23:23:02 588

原创 自定义View:仿GitHub的提交活跃表格

说明本文可能需要一些基础知识点,如Canvas,Paint,Path,Rect等类的基本使用,建议不熟悉的同学可以学习GcsSloop安卓自定义View教程目录,会帮助很大。 上图就是github的提交表格,直观来看可以分为几个部分进行绘制: (1)各个月份的小方格子,并且色彩根据提交次数变化,由浅到深 (2)右下边的颜色标志,我们右对齐就可以了 (3)左边的星期,原图是从周日画到周六,我们

2017-01-17 17:01:29 7336 1

原创 xUtils3源码分析(二):事件的绑定

本篇是xUtils3源码解析的第二篇,主要分析xUtils3的事件绑定机制,上一篇主要分析了view的绑定机制,感兴趣的同学可以阅读: xUtils3源码解析(一):View的绑定 另外阅读本文需要动态代理的基本知识,请参阅亦山: Java动态代理机制详解个人认为讲的较为简单清晰,但鉴于本人对动态代理并不精通,因此不做说明,请读者见谅。 下面还是通过xUtils3的项目例子作为解析,事件绑定的

2016-12-25 00:54:44 629

原创 xUtils3源码分析(一):view的绑定

概述xUtils3是国人开发的一款功能丰富的Android快速开发框架,值得研究下。 zip包下载:[ZIP] xutils主要分以下几个模块 - 视图绑定模块 - 网络请求模块 - 数据库模块 - 图片加载模块我们将逐一透过源码分析,本文分析视图绑定模块,包含View的注入和View事件的注入。 我们将项目导入AndroidStudio,项目结构:xutils为项目源码,sample

2016-12-25 00:53:26 507

原创 Universal-Image-Loader的图片加载流程源码分析

概述Universal-Image-Loader是经典的图片加载框架,虽然现在该项目不再维护,但对于初学者依旧是值得学习的开源项目之一,本文就该框架的加载图片流程做简要梳理,希望读者有所收获。 该文参考了【codeKK】 Android Universal Image Loader 源码分析一文,该文详细分析了Universal-Image-Loader的设计思想,想深入了解,可以祥读此文。基本工

2016-10-24 08:12:26 574

原创 Android ThreadLocal及InheritableThreadLocal分析

因为在android中经常用到handler来处理异步任务,通常用于接收消息,来操作UIThread,其中提到涉及到的looper对象就是保存在Threadlocal中的,因此研究下Threadlocal的源码。  分析都是基于android sdk 23 源码进行的,ThreadLocal在android和jdk中的实现可能并不一致。  在最初使用Threadlocal的时候,很容易会产生的误解就

2016-04-21 22:47:28 2071 7

原创 不考虑事务隔离可能产生的问题

脏读:A事务中读取到了B事务中未提交的数据,造成数据错误不可重复读:A事务中读取到了B事务中已提交的数据,在特定情景下会产生影响,比如生成统一的数据报表虚读(幻读):A事务中读取到了B事务中已提交的新插入的数据,影响同上

2015-01-25 17:04:56 3003 1

原创 JAXP技术解析XML文件

package com.franky.xml;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.

2015-01-04 23:57:36 450

原创 JUnit测试框架的使用实例

测试主类:import junit.framework.Assert;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;/** * @描述 JUnit测试框架的使用 * @

2015-01-04 00:38:18 648

原创 类似spring的AOP框架,动态获得代理类或目标类

六部分组成:1.BeanFactory:package com.franky.aopframework;import java.io.InputStream;import java.util.Properties;import com.franky.proxy.MyAdvice;/** * @描述 Bean工厂,用来返回实体bean,或者代理bean * @作者 fran

2015-01-03 12:12:27 1677

原创 自定义类加载器的使用实例

自定义的类加载器必须继承ClassLoader抽象类,并覆盖findClass方法。测试的需要被加密使用的类:package com.franky.classloader;import java.util.Date;/** * @描述 加密的测试类,需要用自定义的类加载器加载 * @作者 franky * @日期 2015-1-1 下午9:51:38 * */pu

2015-01-02 00:19:49 586

原创 类加载器的说明

类加载器的层级结构,如图:类加载器的委托机制,如图:

2015-01-01 18:39:27 368

原创 通过反射获取变量泛型参数化的类型

package com.franky.generic;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.Date;import java.util.List;/** * @描述 通过反射获取泛型

2015-01-01 17:30:00 717

原创 注解的使用实例

package com.franky.annotation;/** * @描述 注解的应用实例 * @作者 franky * @日期 2014-12-31 下午3:16:00 *///显式指定注解值,如果数组属性只有一个元素那么可以省略大括号@MyAnnotation(color = "red",value = "hello",arrValue=1,metaAnnotation

2014-12-31 17:02:11 467

原创 利用BeanUtils与PropertyUtils进行javabean的内省操作

package com.franky.bean;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.beanutils.PropertyUtils;/** * @描述 BeanUtils与PropertyUtils的使用 * @作者 franky * @日期 2014-12-31 下午12

2014-12-31 12:09:18 2846

原创 通过PropertyDescriptor和Introspector对JavaBean的简单内省操作

package com.franky.bean;import java.beans.IntrospectionException;import java.beans.PropertyDescriptor;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * @

2014-12-31 11:13:09 396

原创 使用类加载器加载配置文件

package com.franky.reflex;import java.io.InputStream;import java.util.Collection;import java.util.Properties;/** * @描述 使用类加载器加载配置文件 * @作者 franky * @日期 2014-12-31 上午10:15:58 */public class

2014-12-31 10:31:29 958

原创 利用反射加载配置文件中的类动态生成集合

/** * */package com.franky.hashcode;import java.io.FileInputStream;import java.io.InputStream;import java.util.Collection;import java.util.Properties;/** * @描述 利用反射,生成集合添加对象元素 * @作者 fran

2014-12-30 23:15:47 435

原创 hashcode的实例说明

package com.franky.hashcode;import java.util.Collection;import java.util.HashSet;/** * @描述 关于hashCode的说明实例 * @作者 franky * @日期 2014-12-30 下午9:37:42 * */public class HashCodeTest { /**

2014-12-30 22:16:49 683

原创 数组的反射使用实例

package com.franky.reflex;import java.lang.reflect.Array;import java.util.Arrays;/** * @描述 数组的反射 * @作者 franky * @日期 2014-12-30 下午5:16:41 */public class ArraysReflex { /** * @param args

2014-12-30 17:50:52 449

原创 利用反射调用指向其他类的main方法

package com.franky.reflex;import java.lang.reflect.Method;/** * @描述 用反射调用其他类的main方法 * @作者 franky * @日期 2014-12-30 下午5:01:16 */public class InvokeMainWithReflex { /** * @param args 传入的参数列表

2014-12-30 17:49:34 342

原创 反射的基本使用实例

package com.franky.reflex;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;/** * @描述 反射的基本使用实例 * @作者 franky * @日期 2014-12-30 下午4:08:34 */

2014-12-30 17:48:19 362

原创 java基础加强知识点

1.增强的for循环:  循环对象必须实现Iterable接口 内部变量可以使用修饰符;2.可变参数:  必须放在方法参数列表最后 public static int add(int i,int... args),可变参数以数组方式使用;3.override 和 overload区别:override(重写) 1、方法名、参数、返回值相同。2、子类方法不能缩小父类方法的

2014-12-30 17:36:19 404

原创 策略设计模式:父类持有接口成员变量,动态设定接口成员实现类,动态改变方法

Duck抽象父类:package com.franky.strategy;/** * 策略设计模式 * 定义Duck鸭子抽象类 * @author Administrator * */public abstract class Duck { /** * 内部持有飞行行为(FlyBehavior)的接口对象 */ private FlyBehavior flyB

2014-12-30 00:08:32 502

原创 URL的使用实例

package com.franky.net.http;import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;/** * URL的使用实例 * @author Administrator * */public class

2014-12-29 23:25:24 982

原创 HTTP:浏览器请求实例,自定义服务器

package com.franky.net.http;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;/*

2014-12-29 23:16:45 853

原创 TCP:客户端和服务端的使用实例

客户端:package com.franky.net.tcp;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;/** * TCP客户端 *

2014-12-29 21:39:23 687

Root Explorer-4.0.2M 适用于Android7.0以上root后查看系统文件

Root Explorer-4.0.2M 适用于Android6.0以上root后查看系统文件,nexus 5 7.1.2亲测可用,解决打开黑屏

2017-06-15

空空如也

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

TA关注的人

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