自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Google示例ElevationDrag的源码分析

/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * Yo

2016-05-11 11:36:07 437

原创 googles示例RecyclerView

/** Copyright (C) 2014 The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may

2016-05-09 17:03:11 1040

原创 Google示例SlidingTabsColors分析

/* * Copyright 2013 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You ma

2016-05-09 15:41:23 935

原创 获取状态栏的高度,标题栏的高度,文本栏的高度

在Android中Window对象通常由PhoneWindow来实现,PhoneWindow将一个DecorView设置为整改应用窗口的根Viewfinal View decorView = getActivity().getWindow().getDecorView();设置了系统UI可见性改变监听器decorView.setOnSystemUiVisibilityChangeListener

2016-05-03 01:26:44 1178

原创 Java IO总结

Java IO类的总结大类可以分成字节流和字符流字节输入流按数据源分:1,字节数组 ByteArrayInputStream2,String对象 StringBufferInputStream3,文件 FileInputStream4,管道 PipedInputStream5,一个有其他种类流组成的序列 SequenceInputStream

2016-01-18 21:49:38 376

原创 Application.ActivityLifecycleCallbacks的使用方法

ActivityLifecycleCallbacks是什么?Application通过此接口提供了一套回调方法,用于让开发者可以对Activity的生命周期事件进行集中处理。使用示例:在自己实现的Application的onCreate方法中使用以下代码//需要API14+if(Build.VERSION.SDK_INT > 14) {registerActiv

2016-01-16 15:30:56 2270

原创 Java工程师成神之路

http://www.importnew.com/17389.html

2016-01-14 17:54:37 283

转载 Java线程池介绍

http://www.importnew.com/16845.html

2016-01-14 17:47:10 257

转载 Android应用如何反馈Crash报告

为什么需要反馈Crash报告?做Android应用程序,要尽量避免程序Crash的发生。虽然说零Crash是程序员追逐的最终目标,但是现实的情况是,程序员只能尽量的减少Crash的发生,而几乎不可能完全杜绝Crash。也许,你认为你的应用的健壮性已经近乎完美,轻松的经受住了测试部门魔鬼般的考验,但是当你的应用发布到市场,面对百万甚至千万级别的用户的时候,可能就没有那么幸运了。基于以

2015-12-19 09:43:30 405

转载 Java内存简介

JAVA的内存管理大家都知道,android应用层是由java开发的,android的davlik虚拟机与jvm也类似,只不过它是基于寄存器的。因此要了解android的内存管理就必须得了解java的内存分配和垃圾回收机制。在java中,是通过new关键字来为对象分配内存的,而内存的释放是由垃圾收集器(GC)来回收的,工程师在开发的过程中,不需要显式的去管理内存。但是这样有可能在不

2015-12-19 09:25:33 277

原创 Android XML绘图

Bitmap在XMl中使用Bitmapandroid:src="@drawable/ic_launcher"/>Shape通过Shape可以在XML中绘制各种形状,下面展示了Shape所支持的参数。android:shape=["rectangle"|"oval"|"line"|"ring"]>//半径,会被后面的单个属性覆盖,默

2015-12-18 22:37:28 237

转载 synchronized详解

第一篇:使用synchronized在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取款操作的。在程序中我们使用了一个简化版本的Account类,

2015-12-18 09:50:08 215

原创 Android群英传第五章Scroll分析读书笔记

Android坐标系Android系统提供了getLacationOnScreen(int[] location)这样的方法来获取Android坐标系中点的位置,即该视图左上角在Android坐标系中的坐标。getRawX(),getRawY()方法所获取的坐标是Android坐标系中的坐标。即屏幕左上角的坐标getX(),getY()方法所获取的坐标是视图坐标系中的坐标。即父

2015-12-17 22:15:15 276

原创 ViewDragHelper

import android.content.Context;import android.support.v4.view.ViewCompat;import android.support.v4.widget.ViewDragHelper;import android.util.AttributeSet;import android.view.MotionEvent;import an

2015-12-17 21:39:27 268

原创 Android优秀学习资源列表

http://blog.csdn.net/bboyfeiyu/article/details/8821481

2015-12-17 15:40:19 280

转载 Android 解析doc、excel

解析doc,请下载tm-extractors-0.4.jar、 解析xls,请下载jxl.jar包。 一、解析doc文件: 01public static String readDOC(String path) {02                // 创建输入流读取doc文件03                FileInputStream in;0

2015-12-17 14:54:23 263

转载 Java:对象的强、软、弱和虚引用

本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。 1.对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:

2015-12-17 13:44:22 227

转载 设计模式-观察者模式(下)

设计模式-观察者模式(下) 观察者模式在Java中有两种实现方式,上文是一种方式,这种方式是自己写代码实现。另一种方式是使用Java内置的观察者模式来实现。 相关的接口和类如下:java.util.Observable   主题(可观察者)------classjava.util.Observer     观察者     --------inte

2015-12-17 13:15:11 199

转载 Java设计模式圣经连载(05)-代理模式

Java设计模式圣经连载(05)-代理模式  代理模式是一种非常重要的设计模式,在Java语言中有着广泛的应用,包括Spring AOP的核心设计思想,都和代理模式有密切关系。 代理模式主要分两种:一种是静态代理,一种是动态代理。两种代理方式的实现有着本质的差异。 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,

2015-12-17 11:14:54 234

转载 内存泄露从入门到精通三部曲之基础知识篇

一、首先以一个内存泄露实例来开始本节基础概念的内容:实例1:(单例导致内存对象无法释放而泄露) 可以看出ImageUtil这个工具类是一个单例,并引用了activity的context。试想这个场景,应用起来以后,转屏。转屏以后,旧MainActivity会destroy,新MainActivity会重建,导致单例ImageUtil重新getInstance。很不幸的是,由

2015-12-16 14:15:54 269

转载 Android Training - 高效地显示Bitmap(两种缓存Bitmap的方式)与优化Bitmap的内存使用

加载单个Bitmap到UI是简单直接的,但是如果你需要一次加载大量的图片,事情则会变得复杂起来。在大多数情况下(例如在ListView,GridView or ViewPager), 显示图片的数量通常是没有限制的。通过循环利用子视图可以抑制内存的使用,GC(garbage collector)也会释放那些不再需要使用的bitmap。这些机制都非常好,但是为了保持一个流畅的用户体验,你想要

2015-12-14 10:29:53 460

转载 自定义对象池(摘自google实例)

public final class Pools { /** * Interface for managing a pool of objects. * * @param The pooled type. */ public static interface PoolT> { /** * @return

2015-12-04 16:38:01 559

转载 说说PendingIntent的内部机制

说说PendingIntent的内部机制 侯 亮 1 概述        在Android中,我们常常使用PendingIntent来表达一种“留待日后处理”的意思。从这个角度来说,PendingIntent可以被理解为一种特殊的异步处理机制。不过,单就命名而言,PendingIntent其实具有一定误导性,因为它既不继承于Intent,也不包含Intent

2015-11-19 17:53:11 274

原创 NavigationDrawer详解

DrawerLayout和RecyclerView的用法

2015-11-19 10:57:47 983

转载 深入分析Java ClassLoader原理

原文出处: CSDN-xyang81一、什么是ClassLoader?大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方

2015-11-16 13:56:13 399

转载 详解java类的生命周期

引言最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题,权当抛砖引玉,希望对在这个问题上有疑惑的朋友有所帮助,文中有说的不

2015-11-16 13:43:00 265

转载 Java 堆内存

堆内存Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。

2015-11-16 13:22:53 238

转载 使用ThreadLocal变量的时机和方法

并发编程中,一个重要的内容是数据共享。当你创建了实现Runnable接口的线程,然后开启使用相同Runnable实例的各种Thread对象,所有 的线程便共享定义在Runnable对象中的属性。也就是说,当你在一个线程中改变任意属性时,所有的线程都会因此受到影响,同时会看到第一个线程修改后的值。有时我们希望如此,比如:多个线程增大或减小同一个计数器变量;但是,有时我们希望确保每个线程,只能工作在它

2015-11-16 11:39:01 296

转载 Java集合总览

这篇文章总结了所有的Java集合(Collection)。主要介绍各个集合的特性和用途,以及在不同的集合类型之间转换的方式。ArraysArray是Java特有的数组。在你知道所要处理数据元素个数的情况下非常好用。java.util.Arrays包含了许多处理数据的实用方法:Arrays.asList:可以从 Array 转换成 List。可以作为其他集合类型构造器的参数。

2015-11-16 11:20:01 265

转载 Java GC系列(4):垃圾回收监视和分析

目录垃圾回收介绍垃圾回收是如何工作的?垃圾回收的类别垃圾回收监视和分析在这个Java GC系列教程中,让我们学习用于垃圾回收监视和分析的工具。然后,选用一种工具来监视一个Java示例程序的垃圾回收过程。如果你是一名初学者,你最好仔细阅读该系列教程。你可以从这里(垃圾回收介绍)开始。Java GC监视和分析工具下面是一些可用的工具,每个都有自己的优势和缺点。我们可以通

2015-11-16 11:16:32 299

转载 Java GC系列(3):垃圾回收器种类

目录垃圾回收介绍垃圾回收是如何工作的?垃圾回收的类别垃圾回收监视和分析在这篇教程中我们将学习几种现有的垃圾回收器。在Java中,垃圾回收是一个自动的进程可以替代程序员进行内存的分配与回收这些复杂的工作。这篇是垃圾回 收教程系列的第三篇,在前面的第2部分我们看到了在Java中垃圾回收是如何工作的,那是篇有意思的文章,我推荐你去看一下。第一部分介绍了Java的垃 圾回收,主要有JVM体

2015-11-16 11:15:48 269

转载 Java GC系列(2):Java垃圾回收是如何工作的?

目录垃圾回收介绍垃圾回收是如何工作的?垃圾回收的类别垃圾回收监视和分析本教程是为了理解基本的Java垃圾回收以及它是如何工作的。这是垃圾回收教程系列的第二部分。希望你已经读过了第一部分:《Java 垃圾回收介绍》。Java 垃圾回收是一项自动化的过程,用来管理程序所使用的运行时内存。通过这一自动化过程,JVM 解除了程序员在程序中分配和释放内存资源的开销。启动Jav

2015-11-16 11:14:54 330

转载 Java GC系列(1):Java垃圾回收简介

Java的内存分配与回收全部由JVM垃圾回收进程自动完成。与C语言不同,Java开发者不需要自己编写代码实现垃圾回收。这是Java深受大家欢迎的众多特性之一,能够帮助程序员更好地编写Java程序。下面四篇教程是了解Java 垃圾回收(GC)的基础:垃圾回收简介圾回收是如何工作的?垃圾回收的类别垃圾回收监视和分析这篇教程是系列第一部分。首先会解释基本的术语,比如JDK、JVM

2015-11-16 11:13:29 285

转载 8张图理解Java

一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选。如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟。1、字符串不变性下面这张图展示了这段代码做了什么12String s = "abcd";s = s.concat("ef");

2015-11-16 11:07:56 203

转载 Java Timer和TimerTask实例教程

java.util.Timer是一个实用工具类,该类用来调度一个线程,使它可以在将来某一时刻执行。 Java的Timer类可以调度一个任务运行一次,或定期运行。java.util.TimerTask是一个抽象类,它实现了Runnable接口。我们需要扩展该类以便创建自己的TimerTask,这个TimerTask内部使用java Timer类,可以被调度。Timer类是线程安全的,

2015-11-16 10:59:07 442

转载 Arrays.sort()排序你应该知道的事

Arrays.sort(T[], Comparator c) 是用来对用户自定义的对象数组排序功能的。Java 官方文档简单描述了它的作用,但不足以让我们深刻理解。为了更深入地理解它,这篇文章将梳理相关的关键点。1、简单实例:如何使用Arrays.sort()通过阅读下面代码,你能快速正确了解这个方法的用途。Comparator(比较器)用于根据Dogs的size比较其大小,并作

2015-11-16 10:49:41 1203

转载 Java 反射

什么是反射?反射有什么用处?1. 什么是反射?“反射(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为。”这个概念常常会和内省(Introspection)混淆,以下是这两个术语在Wikipedia中的解释:内省用于在运行时检测某个对象的类型和其包含的属性;反射用于在运行时检测和修改某个对象的结构及其行为。从它们的定义可以看出,内省是反射的一个

2015-11-16 10:45:13 348

转载 从任务中产生返回值

转自《编程思想》Runnable是执行工作的独立任务,但是它不返回任何值。如果你希望任务在完成时能够返回一个值,那么可以实现Callable接口而不是Runnable接口。在Java SE5中引入的Callable是一个具有类型参数的泛型,它的泛型参数表示的是从方法call()(而不是run())中返回的值,并且必须使用ExecutorService.sunmit()方法调用它,以下是

2015-11-12 21:56:28 484

转载 Executor的使用

转自《Java编程思想》Executor在客户端和任务执行之间提供了一个简介层,与客户端执行任务不同,这个中介对象将执行任务。Executor允许你管理异步任务的执行,而无须显示地管理线程的生命周期,Executor在Java SE5/6中是启动任务的优选方法。对shutdown方法的调用可以防止新任务被提交给这个Executor,当前线程将继续运行在shutdown被调用之前提交

2015-11-12 21:24:52 459

转载 Android Matrix

Android MatrixMatrix的数学原理平移变换旋转变换缩放变换错切变换对称变换代码验证 Matrix的数学原理定义[1]  :设A=(  )为  的矩阵,B=(  )为  的矩阵,那么称  的矩阵C=(  )为矩阵A与B的乘

2015-11-12 15:35:48 310

空空如也

空空如也

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

TA关注的人

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