自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了。但是,正如上篇文章当中所说到的,属性动画对补间动画进行了很大幅度的改进,之前补间动画可以做到的属性动画也能做到,补间动

2015-05-14 09:56:11 628

转载 JVM GC总结

一:Java内存区的简单介绍1.堆(Heap)JVM初始分配的内存由-Xms指定,默认是物理内存的1/64。JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制,可以由-XX:MinHeapFreeRatio=参数,来指定。默认空余堆内存小于70%时,JVM会减少堆直到-Xms的最小限

2015-05-12 15:20:37 497

转载 蓝牙设备

蓝牙是啥我就不再说了,因为我肯定解释不清楚蓝牙是啥,有兴趣请移步至百度百科。  在开始前我们需要准备好一部手机而不是模拟器,且手机已经打开调试模式并连接到电脑上。文中的本地设备均指我们自己的手机,而远程设备则是指其他的设备(电脑、其他手机或者其他)。  通常情况下,我们对蓝牙的操作主要有:开启和关闭蓝牙、搜索周边设备、能被周边设备所发现、获取配对设备、蓝牙设备间的数据传输。

2015-05-08 11:43:51 854

转载 Android进程间通信(IPC)机制Binder简要介绍和学习计划

在Android系统中,每一个应用程序都是由一些Activity和Service组成的,这些Activity和Service有可能运行在同一个进程中,也有可能运行在不同的进程中。那么,不在同一个进程的Activity或者Service是如何通信的呢?这就是本文中要介绍的Binder进程间通信机制了。        我们知道,Android系统是基于Linux内核的,而Linux内核继承和兼

2015-05-08 09:17:08 399

转载 Java NIO:浅析I/O模型

也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO设计相关的设计模式(Reactor和Pr

2015-05-07 13:40:40 432

转载 Java NIO: NIO概述

在上一篇博文中讲述了几种IO模型,现在我们开始进入Java NIO编程主题。NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题。本文下面分别从Java NIO的几个基础概念介绍起。  以下是本文的目录大纲:  一.NIO中的几个基础概念  二.Channel  三.Buffer  四.Selector  若有不正之处,请多多谅解并

2015-05-07 13:35:29 341

转载 Android 自定义View (一)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24252901很多的Android入门程序猿来说对于Android自定义View,可能都是比较恐惧的,但是这又是高手进阶的必经之路,所有准备在自定义View上面花一些功夫,多写一些文章。先总结下自定义View的步骤:1、自定义View的属性2、在View的构

2015-05-06 23:03:28 383

转载 Android AsyncTask完全解析,带你从源码的角度彻底理解

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11711405我们都知道,Android UI是线程不安全的,如果想要在子线程里进行UI操作,就需要借助Android的异步消息处理机制。之前我也写过了一篇文章从源码层面分析了Android的异步消息处理机制,感兴趣的朋友可以参考 Android Handler、Mess

2015-05-06 11:57:40 425

转载 Android异步消息处理机制完全解析,带你从源码的角度彻底理解

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9991569之前也是由于周末通宵看TI3比赛,一直没找到时间写博客,导致已经有好久没更新了。惭愧!后面还会恢复进度,尽量保证每周都写吧。这里也是先恭喜一下来自瑞典的Alliance战队夺得了TI3的冠军,希望明年中国战队能够虎起!开始进入正题,我们都知道,Andr

2015-05-06 11:01:50 337

原创 属性动画(Property Animation)深入分析(原理、源码、实践)

最近想试试Material Design的ripple效果,于是下载了github上的material-ripple,效果还不错。用到的当然是动画啦,之前也没用接触过,索性来学习一下动画。整体来说,我参考了google的官方文档、郭大神关于Property Animation的分析、material-ripple的源码。所以以下就分这三块来讲,正好能“有个整体认识”、“了解其内部原理”、“

2015-01-08 20:28:32 1545

转载 深入理解JVM内幕:从基本结构到Java 7新特性

每个Java开发者都知道Java字节码是执行在JRE(Java Runtime Environment Java运行时环境)上的。JRE中最重要的部分是Java虚拟机(JVM),JVM负责分析和执行Java字节码。Java开发人员并不需要去关心JVM是如何运行的。在没有深入理解JVM的情况下,许多开发者已经开发出了非常多的优秀的应用以及Java类库。不过,如果你了解JVM的话,你会更加了解Java

2014-10-29 17:42:58 545

转载 Android访问网络,使用HttpURLConnection还是HttpClient?

最近在研究Volley框架的源码,发现它在HTTP请求的使用上比较有意思,在Android 2.3及以上版本,使用的是HttpURLConnection,而在Android 2.2及以下版本,使用的是HttpClient。我也比较好奇这么使用的原因,于是专门找到了一位Google的工程师写的一篇博客,文中对HttpURLConnection和HttpClient进行了对比,下面我就给大家简要地翻译

2014-10-25 00:02:02 386

转载 Android Volley完全解析(四),带你从源码的角度理解Volley

经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很多朋友还不是很清楚。因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地梳理一遍。同时,这也是Volley系列的最后一篇文章了。其实,Volley的官方文档中本身就附有了一张Volley的工作流程图,如下图所示。多数朋友突然看到一张这样的图,应

2014-10-24 22:43:27 394

转载 Android Volley完全解析(三),定制自己的Request

经过前面两篇文章的学习,我们已经掌握了Volley各种Request的使用方法,包括StringRequest、JsonRequest、ImageRequest等。其中StringRequest用于请求一条普通的文本数据,JsonRequest(JsonObjectRequest、JsonArrayRequest)用于请求一条JSON格式的数据,ImageRequest则是用于请求网络上的一张图片

2014-10-24 22:40:58 403

转载 Android Volley完全解析(二),使用Volley加载网络图片

Android Volley完全解析(二),使用Volley加载网络图片

2014-10-24 22:10:32 354

转载 Android Volley完全解析(一),初识Volley的基本用法

1. Volley简介我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据。Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和HttpClient,几乎在任何项目的代码中我们都能看到这两个类的身影,使用率非常高。不过HttpURLConnection和HttpCl

2014-10-24 21:22:14 388

转载 Android事件分发机制完全解析,带你从源码的角度彻底理解(下)

记得在前面的文章中,我带大家一起从源码的角度分析了Android中View的事件分发机制,相信阅读过的朋友对View的事件分发已经有比较深刻的理解了。还未阅读过的朋友,请先参考 Android事件分发机制完全解析,带你从源码的角度彻底理解(上) 。那么今天我们将继续上次未完成的话题,从源码的角度分析ViewGruop的事件分发。首先我们来探讨一下,什么是ViewGrou

2014-10-24 17:25:26 384

转载 Android事件分发机制完全解析,带你从源码的角度彻底理解(上)

其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?等等……对于这些

2014-10-24 17:03:26 542

原创 Java设计模式透析之 —— 组合(Composite)

Java设计模式透析之 —— 组合(Composite)

2014-10-24 15:32:08 732

原创 Java设计模式透析之 —— 适配器(Adapter)

Java设计模式透析之 —— 适配器(Adapter)

2014-10-24 14:53:17 645

原创 Java设计模式透析之 —— 模板方法(Template Method)

Java设计模式透析之 —— 模板方法(Template Method)

2014-10-24 10:12:32 565

原创 Java设计模式透析之 —— 策略(Strategy)

Java设计模式透析之 —— 策略(Strategy)

2014-10-24 09:26:19 702

原创 正确使用 Volatile 变量

Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile

2014-10-22 17:03:17 2795

原创 Java 信号量 Semaphore 介绍

Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。比如在Windows下可以设置共享文件的最大客户端访问个数。 Sem

2014-10-22 16:26:46 1654 1

原创 clone方法是如何工作的

clone()是java.lang.Object类下面的一个很难处理的方法,clone()的作用很简单,提供一种克隆机制创建对象的副本,对于如何实现它已成为一个棘手的事,同时还长期被广受批评。不管怎样,我们不去争论历史,现在我们将尝试学习clone方法是怎样工作的。说实在的,想理解克隆机制并不简单,甚至有经验的java程序员也很难解释可变对象的克隆是如何运作的、深克隆(deep copy)与浅克隆

2014-10-22 14:12:34 973

原创 java 23 种设计模式

设计模式(Design Patterns)                                  ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真

2014-10-21 14:34:10 879

原创 设计模式(八)the Template method 模板方法模式(类行为型)

1.概述在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。例子1:银行业务办理流程在银行办理业务时,一般都包含几个基本固定步骤:取号排队->办理具体业务->对银行工作人员进行评分。取号取号排队和对银行工作人员进行评分业务逻辑是一样的。但

2014-10-21 00:35:20 575

原创 设计模式(七)The Adapter and Facade Pattern 适配器模式与外观模式

面向对象适配器  假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个新的厂商所设计出来的接口不同于旧厂商的接口。  你不想改变现有的代码,解决这个问题,你可以写一个类,将厂商接口转换成你所期望的接口。 客户使用适配器的过程如下:  1.客户通过目标接口调用适配器的方法对适配器发出请求。  2.适配器使用被适配者接口把

2014-10-20 13:09:51 965

原创 设计模式(六)The Command Pattern 命令模式

摘要 命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作问题引入        近来,智能家居闹得比较凶,这里我们想要实现一个简单的自动家居,由一个遥控器来完成电灯、音响、风扇的开关。模式定义        将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队

2014-10-20 10:52:58 1090

原创 设计模式(五)The Singleton Pattern 单例模式

问题引入        有时候对于有些对象,我们只需要一个,多了反而会出现很多问题。比如:线程池,缓存,处理器偏好设置,日志对象等等(可能导致程序异常,内存泄露)。模式定义        确保一个类只有一个实例,并提供一个全局访问点。认识模式        确实我们可以通过程序员之间的约定保证一个类只有一个对象,但是通过使用单例模式效果更好,更安全。

2014-10-20 09:35:27 1087

原创 设计模式(四)The Factory Pattern 工厂模式

一、简单工厂定义:定义一个创建对象的接口,但是由其子类决定要实例化的对象是哪一个,工厂方法让类的实例化推迟到子类。通俗的来讲就是由工厂方法确定一个框架,具体的实现由其子类来完成。与简单工厂相比,简单工厂可是完成了整个对象的创建。     严格的来说简单工厂并不是一种设计模式,他更像是一种编程习惯。代码说明一切!1、这是一个简单工厂

2014-10-19 02:23:44 1014

原创 设计模式(三)The Decorator Pattern 装饰器模式

问题引入        实现在一份咖啡中加入摩卡(Mocha),再加上奶泡(Whip),并且计算咖啡总共的价钱。模式定义        动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。认识模式        在被装饰者的前面或者后面加上附加的一些行为,从而扩展被装饰者的功能,接口没变,但是增强了性能。问题解决

2014-10-18 23:10:17 680

原创 设计模式(二)The Observer Pattern 观察者模式

问题引入        生成一个公告板显示当时的天气状况,当天气状况发生改变的时候公告板可以实时的更新。模式定义        定义对象之间的一对多的依赖,当一个对象改变状态时,它的所有依赖者都会自动收到通知并自动更新。认识模式        该模式在生活中是很常见的。想想生活中的各种各样的检测系统,报警系统,一旦有重要事件发生时,有关系统总能及时的收到

2014-10-18 01:11:13 1261

原创 设计模式(一)The Strategy Pattern 策略模式

摘要 策略模式:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的改变独立于使用算法的客户。设计模式    我们先来看看问题 —— 现在我们需要实现一个模拟鸭子的游戏,游戏中会出现各种各样的鸭子,他们会有不同的飞行方式,同样有不同的鸣叫方式,同时我们要考虑到以后还可能出现更多的各种各样新式的鸭子,那我们该如何来实现呢?    1>我们来试试继承

2014-10-17 23:55:01 949

原创 Bound Service的三种方式(Binder、 Messenger、 AIDL)

Bound Service的三种方式:Extending the Binder class;Using a Messenger;Using AIDL

2014-10-16 13:11:18 1996

原创 跨进程调用Service(AIDL Service)

1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口icp:interprocess communication :内部进程通信 2.既然aidl可以定义并实现进程通信,那么我们怎么使用它呢?文档/android-sdk/

2014-10-16 09:28:18 809

原创 Android利用Get、Post 获取网络数据

布局很简单,就一个按钮,主要看一下MainActivity吧:package com.francis.httpget;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.view.Menu;import android.view.MenuIte

2014-10-14 20:53:39 1440

原创 Post和Get的区别

GET和POST区别如下:1,生成方式get方式有四种:1)直接在URL地址栏中输入URL。2)网页中的超链接。3)form中method为get。4)form中method为空时,默认是get提交。post只知道有一种:form中method属性为post。2、数据传送方式get方式:表单数据存放在URL地址后面。所有get方式提交时HTTP中没有消息体。

2014-10-14 17:19:44 1019

原创 mac下查看jre路径

在Finder中command+shift+G选择/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

2014-10-14 09:27:04 21475

原创 Android自定义视图(一):带下划线的TextView

package com.francis.underlinetextviewtest;import android.content.Context;import android.content.res.Resources;import android.graphics.Canvas;import android.graphics.Color;import android.graphics

2014-10-13 21:08:29 1932

空空如也

空空如也

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

TA关注的人

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