自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

happy_horse的博客

亦狂亦侠真名士,能哭能歌迈俗流!

  • 博客(112)
  • 资源 (21)
  • 收藏
  • 关注

原创 【12】Java基础: equals 与 == 的关系,equals 与 hashCode 的关系

一、equals 与 == 的关系Java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 2.复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后

2016-08-25 18:21:53 450

原创 【11】Java集合:HashMap深度解析(一)

一、HashMap1.1、HashMap与HashTable的区别?记得之前去一家公司面试,问到了HashMap里是如何存放键值对的,我并不知道,然后面试官很有耐心的和我讲里面的一些细节。感恩。还有一个经常被问到的问题是:HashMap与HashTable有什么区别?答案很轻易找到。HashMap 是Hashtable 的轻量级实现(非线程安全的实现),他们都完成了Map 接口,主要区别在于:ha

2016-08-25 17:54:23 2083

原创 【10】Java集合:基本体系概述

一、Java集合概述1.1、什么是集合?集合就是将若干用途相同、近似的“数据”结合成一个整体。1.2、集合的分类集合从体系上分为三种:Set(集),List(列表),Map(映射)列表(List):List集合区分元素的顺序,允许包含相同的元素。集(Set):Set集合不区分元素的顺序,不允许包含相同的元素。映射(Map):Map集合保存的”键”-“值”对,“键”不能重复,而且一个“键”只能对

2016-08-24 21:11:32 2414

原创 Android获取屏幕的宽高

方法一:/** * 获取设备屏幕的宽 * @param context * @return */ public static int getDeviceWidth(Activity context){ Display display = context.getWindowManager().getDefaultDisplay();

2016-08-23 17:14:20 2316

原创 【9】Java中的反射机制

一、反射的相关概念动态语言:JAVA反射(放射)机制:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。但是JAVA有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个

2016-08-23 11:22:00 479

原创 Java面试题整理

一、2016-08-19 转载自http://swiftlet.net/archives/1900其实,很多人对于基础知识掌握的并不好。什么是基础知识呢,下面二十道题目就是基础,可以检测一下基础知识是否掌握的扎实: (1)T和的区别?的用法? (2)Proxy类和InvocationHandler接口的关系? (3)注解继承自那个类? (4)类加载的委托机制是通过什么算法实现的? (5

2016-08-19 20:21:21 548

原创 【8】Java泛型:泛型内部原理--泛型擦除

一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉。这个过程就称为类

2016-08-19 18:55:50 501

原创 【7】Java泛型:泛型类、泛型接口、泛型方法

根据《Java编程思想 (第4版)》中的描述,泛型出现的动机在于: 有许多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创建容器类。一、泛型类容器类应该算得上最具重用性的类库之一。先来看一个没有泛型的情况下的容器类如何定义:public class Container { private String key; private String value; public

2016-08-19 18:12:02 653

原创 【6】Java泛型:泛型的基本概念和使用

现在开始深入学习Java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用。泛型在java中,是一个十分重要的特性,所以要好好的研究下。一、泛型的基本概念什么是泛型?泛型的定义:泛型==参数化类型泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,也就是说所操作的数据类型被指定为一个参数,在用到的时候在指定具体的类型。什么是参

2016-08-19 16:55:36 3762 1

原创 Android WebView使用简单介绍

一 Android客户端注入及清除Cookie在Android应用程序中经常会加载一个WebView页,有时需要客户端存取访问网页时服务器传递过来的Cookie,在下次访问相同网页时通过Cookie中携带的Session来避免服务端的再次验证。Cookie信息一般是在发出http请求加载网页url时,通过http header传递过去。1、客户端通过以下代码保存Cookiepublic stat

2016-08-17 12:11:10 569

原创 Android IntentService使用全面介绍及源码解析

一 IntentService介绍IntentService定义的三个基本点:是什么?怎么用?如何work?官方解释如下://IntentService定义的三个基本点:是什么?怎么用?如何work?*/1、IntentService is a base class for Services that handle asynchronous requests (expressed as Inten

2016-07-08 18:59:24 2190

原创 Android HandlerThread 使用介绍及简单解析

一 先看看官方介绍:(1)HandlerThread继承自线程Thread,内部封装了有Looper。public class HandlerThread extends Thread Handy class for starting a new thread that has a looper. The looper can then be used to create handler clas

2016-07-08 12:58:25 1217

原创 LeakCanary:检测Android中的内存泄漏

Square开源了一个内存泄露自动探测神器——LeakCanary,它是一个Android和Java的内存泄露检测库,可以大幅度减少了开发中遇到的OOM问题,对于开发者来说,无疑是个福音,下面对该库的使用进行简单的介绍。一 什么是内存泄漏:有些对象只有有限的生命周期。当它们的任务完成之后,它们将被垃圾回收。如果在对象的生命周期本该结束的时候,这个对象还被一系列的引用,这就会导致内存泄漏。随着泄漏的

2016-07-07 16:27:29 1125

原创 高质量技术文章

高质量技术文章整理存档:【反复阅读、反复理解、反复消化】【反复思考、反复探究、反复交流】【主动、乐观、勇敢、努力】【积极、阳光、微笑、自信】2016-7-7更新:1 携程Android App插件化和动态加载实践2 再议携程Android动态加载框架DynamicAPK3 关于 Android 进程保活,你所需要知道的一切4 使用Android依赖注入工具Dagger(一)5 使用Android依赖

2016-07-07 14:58:58 461

原创 Android Sudio 如何获取SHA1(开发版和发布版)

获取发布版SHA1:进入项目文件夹的apk目录(前提是在打包apk时配置过): 执行命令:D:\workspaceast2\ProjectName\apk>keytool -v -list -keystore xxxxandroid然后输入密钥库口令:获取开发版SHA1:C:\Users\Administrator>cd .androidC:\Users\Administrator\.androi

2016-06-29 12:32:29 2150

原创 Git学习(一):创建第一个github项目

之前一直在CSDN总结和分析自己学习的知识和理论,但是看到国内外优秀的开源项目都在github上,想着也要去注册账号去github看看。看到底github上有着哪些武林秘籍,因此才有这一篇文章:使用git,在github上创建项目。第一步 准备工具如下:(1)Git Git-2.9.0-64-bit官方下载Git基本命令-手册(2)Android Studio (3)github账号第二

2016-06-24 12:32:33 1910

原创 Android进程间通信(三):使用Messenger实现进程间通信

一 Messenger介绍:关于进程间的通信:关于Android进程间的通信,在第一篇文章中我们通过传递Parcel对象,利用IBinder完成了进程间的通信,在第二篇文章 中我们通过在客户端创建一个aidl的文件,在服务端实例化由aapt生成的stub类的对象来完成了进程间的通信。今天我们来使用另一种更简洁的方法—Messenger来实现进程间的通信。进程之间不能共享内存数据, 但是可以进行通信

2016-06-23 17:13:26 955

原创 Android进程间通信(二):使用AIDL实现进程间通信

AIDL简单描述AIDL全称是:Android Interface Define Language因此传递对象, 只能把对象拆分成操作系统能理解的简单形式, 以达到跨界对象访问的目的. 在J2EE中,采用RMI的方式, 可以通过序列化传递对象. 在Android中, 则采用AIDL的方式. 理论上AIDL可以传递Bundle,实际上做起来却比较麻烦。AIDL(AndRoid接口描述语言)是一种借口描

2016-06-22 20:17:39 719

原创 Android进程间通信(一):使用Parcel对象完成进程间通信

Parcel类官方定义:Container for a message (data and object references) that can be sent through an IBinder. A Parcel can contain both flattened data that will be unflattened on the other side of the IPC (usi

2016-06-22 12:50:54 9037 1

原创 Learn How To Life

http://blog.csdn.net/chenlycly/article/category/1090565

2016-06-14 10:56:40 529

原创 【5】Java并发编程:线程同步工具之CountDownLatch类

今天在分享会上接触到了CountDownLatch,完会后自己学习一下。CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。目录CountDownLatch是什么? CountDownLatch如何工作? 在实时系统中的应用场景 应用场景范例CountDownLatch是什么概述CountDownLatch是在java1.5被引入的,跟

2016-06-13 20:34:50 990

原创 【4】Java并发编程:多线程中的缓存一致性和CAS

一、总线锁定和缓存一致性基本概念这是两个操作系统层面的概念。随着多核时代的到来,并发操作已经成了很正常的现象,操作系统必须要有一些机制和原语,以保证某些基本操作的原子性,比如处理器需要保证读一个字节或写一个字节是原子的,那么它是如何实现的呢?有两种机制:总线锁定和缓存一致性。我们知道,CPU和物理内存之间的通信速度远慢于CPU的处理速度,所以CPU有自己的内部缓存,根据一些规则将内存中的数据读取到内

2016-06-13 15:16:13 7382

原创 【3】Java并发编程:多线程基本概念

Java并发编程一直是开发学习中的重点和难点,难在于许多的基本概念不是短时间内就容易理解。下面就Java并发编程中的涉及多线程的基本概念做一个总结:1、TPS(Transactions Per Second,每秒事务处理数) : 一秒内服务端平均能响应的请求总数2、高速缓存Cache 3、Java内存模型(Java Memory Model):变量、工作内存、主内存 4、Java内存模型:

2016-06-13 14:45:46 3332

原创 【2】Java并发编程:volatile关键字解析

Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,

2016-06-13 11:55:17 3616

原创 【励志文章】Learning needs of the target instead of passion

学习需要激情,但是更需要目标和理想。关于学习的方法:学而不思则罔,思而不学则殆。关于学习的目的:非学无以广才。关于学习的态度:非志无以成学。关于学习的时间:集中时间和注意力,专注做好一件事情。引用原文如下:《一个Android开发者开博一周年的成长日记——送给不知如何下手的【初级开发者】和【在校生】》—-2015-02-12今天一看日历,哟,2.12号,这不是我第一份工作入职的时间吗?不知

2016-06-08 10:28:08 515

原创 Adb connection Error:远程主机强迫关闭了一个现有的连接。

Adb connection Error:远程主机强迫关闭了一个现有的连接。(1)adb操作命令详解及大全 http://blog.csdn.net/janronehoo/article/details/6863772 (2)Adb connection Error:远程主机强迫关闭了一个现有的连接。 http://blog.csdn.net/phenixyf/article/details/

2016-06-07 15:43:17 1735

原创 Android Material Design之TabLayout + NavigationView联合使用

这是写的第二篇关于Android Material Design的文章,第一篇着重讲了CoordinatorLayout (协调容器)和CollapsingToolbarLayout (可折叠式布局)的基本应用。这一篇我们来看一看如何用TabLayout + NavigationView来仿照网易新闻等的导航栏。先看看实现效果:侧边导航的效果是:嘿嘿,大爱琅琊榜。项目涉及到的基本知识:TabLay

2016-06-06 20:14:52 3129 3

原创 Android Material Design之CoordinatorLayout全面使用介绍

作为UI布局,没有什么好分析,先看效果:配合TabLayout+ViewPager实现的效果:项目DEMO涉及到的相关知识点罗列:CoordinatorLayout 协调布局CollapsingToolbarLayout 可折叠式工具栏Snackbar 点心条简单使用FloatingActionButton 浮动按钮include标签使用AppBarLayoutToolbarTabL

2016-06-03 18:39:19 6733

原创 Android EventBus框架(二)之源码简单解析

上一篇,我们基本知道了EventBus的使用步骤,接下来先简单研究一下其中的源码。在分析源码之前,我们先回顾一下Java反射的知识点:JAVA反射机制基本定义:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Sun为提供的关于反射机制中的类:

2016-06-02 16:37:38 5756

原创 Android EventBus框架(一)之使用详细介绍

研发DEMO背景最近开发项目遇到一个情景,就是在APP主页MainActivity展示列表,有收藏功能,但是点收藏的时候,需要当前用户是已经登录身份,因此当用户点击列表item收藏按钮时,如果用户没有登录,便会跳转到APP的登录页(LoginActivity),此时如果用户之前并没有用户名/密码,又会点击此页面的立即注册,跳转到注册界面(RegistActivity),那么当在注册界面用户注册成功的

2016-06-02 12:07:32 18092

原创 Android设计模式之代理模式(Proxy Pattern)

代理模式介绍代理模式(Proxy Pattern)也称为委托模式,是结构型设计模式的一种,代理模式在各类开发中运用的相当广泛,不论是j2ee,android还是ios,都能看到它的身影,所以说设计模式无处不在。代理模式的定义:为其他对象提供一种代理以控制这个对象的访问。通俗一点:找别人做你想做但是做不了的事情。代理模式的UML类图,如图:角色介绍: (1) 抽象主题(Subject):定义了真实

2016-05-31 13:31:56 3722

原创 Android设计模式之观察者模式(Observer Pattern)

观察者模式介绍观察者模式是一个使用率非常高的模式,它最常用的地方就是GUI系统、订阅–发布系统。因为这个模式的一个重要作用就是解耦,将观察者和被观察者解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。观察者模式的定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态时,则所有依赖于它的对象都会得到通知并且自动更新。观察者模式的UML类图,如图角色介绍:(1)Subject(被观察者)

2016-05-30 21:05:37 3331 2

原创 Android网络框架:OKHttp源码简单解析(一)

这是第一次解析源码并把它写出来,在之前,我一直以为只要会用别人的轮子就好,做出实际的效果就行,对看源码对自己的能力提升不以为然。后来偶然听到一句话:看别人的DEMO,你就可以会用轮子,但是要想用好轮子,还是得看源码。我觉得看源码有两个方面的好处: 1. 从本质上去理解所学框架的原理和流程; 2. 可以看到软件开发里常见的思维方法和设计模式;这些在编程里都是相通的。下面这篇文章,我们队OkHttp框

2016-05-30 15:12:47 3383

原创 Android异步任务处理之AsyncTaskLoader的使用

最近项目中涉及到加载本地的地名.db文件,数据量大,自然不能直接放在UI线程中操作,好在Google在Android3.0以后,提供了AsyncTaskLoader来做一些耗时的异步任务。一 官方对AsyncTaskLoader的定义及特点介绍如下:Abstract Loader that provides an AsyncTask to do the workIntroduced in Andro

2016-05-27 17:11:25 9683

原创 Android学习资料整理收集--路漫漫其修远兮

以技术的视角看世界—-世界唯一不变的就是变以代码的思维看事物—-物有本末,事有终始想必大家学习Android过程中都看过很多优秀博客。这些博客通常能提供给我们最好最新的Android开发资源。那么国内外都有哪些大牛的博客值得推荐呢?   一 国内大牛  罗升阳   http://blog.csdn.net/Luoshengyang    郭 霖   http://blog.csdn.net

2016-05-26 11:24:38 1404

翻译 Android Reference官方描述

本篇文章翻译自官方API部分内容: https://developer.android.com/reference/java/lang/ref/Reference.html https://developer.android.com/reference/java/lang/ref/WeakReference.html一 官方对三种引用方式的简单描述:官方定义的引用类是Reference,其下有三

2016-05-21 18:25:59 786

原创 Android Studio生成aar包并在其他工程引用aar包

前言:aar包与jar包的区别:aar包是android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件。在Android Studio中对一个自己库进行生成操作时将会同时生成.jar与.aar文件。分别存储位置:*.jar:库 /build/intermediates/bund

2016-05-17 20:55:24 2222

原创 Android自定义View之仿知乎滑动删除Activity

先看下具体的实现效果: 上面图片里包含两种效果,一个是向右滑动删除Activity,这个大家可以参考夏神的文章http://blog.csdn.net/xiaanming/article/details/20934541 里面讲解很令人佩服,另一个是向上滑动删除Activity,这个有点类似平时手机的通知栏,滑动删除的知识点和思想基本也是一样的。项目结构如下: 下面着重讲解如何实现向上滑动删除

2016-05-16 19:07:18 1723

原创 Android开发常用的adb命令整理

在开发中使用一些adb命令会使工作变得更有效率,比如安装apk,查看内存使用情况等,下面总结一下。一 首先我们先了解一下什么是adb?adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE

2016-05-12 20:02:28 780

原创 抓包工具Charles简单使用介绍(可抓取Android中app的请求)

最近写项目时经常遇到服务器返回请求超时的情况,头疼得很,因此想着使用网络抓包工具来抓取客户端访问服务器的请求,看看客户端发的请求的内容以及服务器返回的情况。目前我了解常用的网络数据抓包工具有Charles、fiddler、wireshark这么三种软件,Charles支持抓去http、https协议的请求,不支持socket。使用情况和fiddler基本大同小异。这里就前段使用的网络工具Charle

2016-05-11 17:05:10 19881 2

tinker DEMO

Tinker

2017-02-15

Android Material Design之TabLayout + NavigationView联合使用

Android Material Design之TabLayout + NavigationView联合使用

2016-06-06

Android Material Design之CoordinatorLayout全面使用

Android Material Design之CoordinatorLayout全面使用介绍

2016-06-03

Android Material Design之CoordinatorLayout全面使用介绍

Android Material Design之CoordinatorLayout全面使用介绍

2016-06-03

Android EventBus框架使用详细介绍(一)

Android EventBus框架使用详细介绍(一)

2016-06-02

Android设计模式之代理模式(Proxy Pattern)

Android设计模式之代理模式(Proxy Pattern)

2016-05-31

Android异步任务处理之AsyncTaskLoader的使用

Android异步任务处理之AsyncTaskLoader的使用

2016-05-27

Android自定义View之仿知乎滑动删除Activity

Android自定义View之仿知乎滑动删除Activity

2016-05-16

Android自定义ScrollView:实现滑动顶部停靠

Android自定义ScrollView:实现滑动顶部停靠

2016-04-13

Android网络框架-Volley(一) 初步使用Volley

Android网络框架-Volley(一) 初步使用Volley

2016-04-13

volley.jar&源码

volley.jar&源码

2016-04-13

Android 使用ActiveAndroid 管理数据库

Android 使用ActiveAndroid 管理数据库

2016-04-11

activeandroid-3.1-3.jar

activeandroid-3.1-3.jar,

2016-04-11

Android RecyclerView实现瀑布流布局

Android RecyclerView实现瀑布流布局

2016-04-09

Android SurfaceView实现加载GIF动画

Android SurfaceView实现加载GIF动画

2016-04-08

Android 5.0 CardView+ListView 卡片布局应用

Android 5.0 CardView+ListView 卡片布局应用

2016-04-01

Android ViewPager和Fragment实现仿微信导航界面及滑动效果

Android ViewPager和Fragment实现仿微信导航界面及滑动效果

2016-04-01

框架butterknife-5.1.2

框架butterknife-5.1.2 一个很好用的开源框架,蛮不错的,可以简化你的代码,是关于注解的。不多说直接进入使用步骤讲解。

2015-11-05

Android Butterknife框架Demo

Android Butterknife框架 注解攻略

2015-11-04

88个Android开源项目

Android开发必看的88个Android开源项目,帮助你了解并学习安卓!

2015-09-25

模仿QQ滑动删除菜单--源代码;

这是一个模仿QQ最新的滑动删除功能,例如在聊天消息列表页,当手指滑动一条消息,从左到右的滑动时,会弹出一个删除菜单,点击会删除当前ListView的对应Item;

2015-08-25

空空如也

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

TA关注的人

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