自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

可乐

everybody in the world is seeking happiness

  • 博客(91)
  • 资源 (3)
  • 收藏
  • 关注

原创 人生短暂,持之以恒地做一件事情就会成功(每当烦躁心急如焚的时候就读读这篇文章吧)

<br />坚持体现沉着.人都是有些欲望的,为了实现某一个预定的图谋,最容易心急如焚,火烧火燎.这实际上时很难归入竞争范畴的,在更多的时候更多的人身上只不过是一种浮躁和慌张而已.滴水不求朝夕之效,故能坚持穿石的日子;穿石之后,依然平心静气,坚持自己的步伐.这就是沉着.沉着拒绝急功近利,所以才会勾起人们的长久怀念,所以才会对所有的人永远地发挥作用.<br /><br /><br />    <br />坚持的姿势不是很壮观的.因为他常常要我们把头埋得很低,把眼光盯在脚尖,把嘴巴腾出来帮助呼吸.于是,就不可能气

2011-02-28 14:31:00 3354 1

原创 一种service与activity的通信方式

接口部分public interface DataServiceListener { void onProgress(int progress);}Service部分public class DataService extends BaseService { private final IBinder mBinder = new DataBinder(); ...

2019-06-05 15:25:09 267

原创 一个自定义RecyclerView.LayoutManager

public class PaddingLayoutManager extends RecyclerView.LayoutManager { /** * constant */ private static final String TAG = "PaddingLayoutManager"; private static final int IT...

2019-06-04 16:53:52 1020

转载 性能调优工具TraceView

正确使用Android性能分析工具——TraceView - 博客 - 伯乐在线http://blog.jobbole.com/78995/介绍Android性能调优工具TraceView的使用从而确定性能点。方便的查看线程的执行情况,某个方法执行时间、调用次数、在总体中的占比等http://www.trinea.cn/android/android-traceview/

2015-10-22 13:34:54 865

原创 AsyncTask 使用和缺陷

一、AsyncTask的基本用法由于AsyncTask是一个抽象类,所以如果我们想使用它,就必须要创建一个子类去继承它。在继承时我们可以为AsyncTask类指定三个泛型参数,这三个参数的用途如下: 1. Params在执行AsyncTask时需要传入的参数,可用于在后台任务中使用。 2. Progress后台任务执行时,如果需要在界面上显示当前的进度,则使用这里指定的

2015-10-09 17:06:58 17141

转载 RecyclerView CardView使用解析

一、概述有了ListView、GridView为什么还需要RecyclerView这样的控件呢?整体上看RecyclerView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator实现令人瞠目的效果。 ~你想要控制其显示的方式,请通过布局管理器LayoutManager~你想

2015-09-30 16:39:12 3320

原创 Gson的使用 && 使用OKHttp处理Volley的底层HTTP请求

一、Gson相对于较为传统的Json解析来说,google共享的开源Gson在解析速度和所使用的内存在有着明显的优势,虽然说阿里巴巴也提供了fastgson包,但是它跟Gson的处理速度大同小异,只是底层实现的原理不同。下面就来看下如何是Gson。使用Gosn 处理json非常简单。第一我们首先创建一个JavaBean类:(javaBean在MVC设计模型中是model,又称模型层,在

2015-09-29 15:51:47 3248 1

转载 Android Hook框架Xposed原理与源代码分析

1 概述Xposed是GitHUB上rovo89大大设计的一个针对Android平台的动态劫持项目,通过替换/system/bin/app_process程序控制zygote进程,使得app_process在启动过程中会加载XposedBridge.jar这个jar包,从而完成对Zygote进程及其创建的Dalvik虚拟机的劫持。因为Xposed工作原理是在/system/bin目录下替换

2015-09-29 09:55:59 1756

原创 Android结构和Framework启动流程

图片:http://blog.csdn.net/chenzheng_java/article/details/6205269 由上图,我们可以看出Android系统架构由5部分组成, 分别是:Linux Kernel(linux内核)、Android Runtime(运行时环境)、Libraries(类库)、Application Framework(应用框架)、Applicati

2015-09-28 17:15:17 2249

原创 Google I/O 2014 & 2015 之 ART

Dalvik:一、Dalvik和标准Java虚拟机(JVM)首要差别:Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于编译后变大的程序来说,在它们执行的时候,花费的时间更短。(Also of register-based VMs allow faster execution times at the expense of programs which are lar

2015-09-28 14:10:23 852

转载 Android开机启动速度优化 && app启动速度优化

众所周知Android开机启动速度较慢,于是如何加快启动速度便成为一个值得讨论的问题。在查阅过许多资料后(特别是Google Group的android-platform),我整理总结出下面几点基本看法。Android开机启动耗时较多的部分有2个,分别是preload classes和scan packages。这里又数preload classes最为耗时,在我的机子上一般需要13秒左右

2015-09-25 10:22:40 7585 4

转载 Volley(二),扩展 && 原理

2015-09-23 16:46:21 1023

转载 Volley(一), 基本用法

Android Volley完全解析(一),初识Volley的基本用法 - 郭霖的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/guolin_blog/article/details/17482095一、Volley的基本用法1. Volley简介:Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnection和Ht

2015-09-23 15:52:24 953

原创 PullToRefresh下拉和上拉加载 使用及原理

本文分两个部分,PullToRefresh的是使用介绍,以及PullToRefresh的原理。第一部分,PullToRefresh的是使用介绍:PullToRefresh框架下载地址:https://github.com/chrisbanes/Android-PullToRefresh下载完成,将它导入到eclipse中,作为一个library导入到你的工程中就好了。 一、下拉

2015-09-21 14:29:00 7682

转载 Android性能优化(四),网络优化 && 耗电量优化

2015-09-18 09:59:47 4048

原创 Android访问网络,HttpURLConnection还是HttpClient?

1.、两种请求方式对比Android Http请求API主要分两种:第一种是Java的HttpURLConnection,默认带gzip压缩;第二种Apache的HttpClient,默认不带gzip压缩;两种方式请求connection都是keep alive。 2、哪一种才是最好的?在 Froyo(2.2) 之前,HttpURLConnection 有个

2015-09-17 16:41:36 938

原创 ANR类型及解决方法 && 基本算法 && HashMap原理

一、ANR类型ANR(Application Not Responding,即应用无响应)一般有三种类型:1:KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应,dispatchTimeout 输入事件分发超时,一般是由于主线程在5秒之内没有响应输入事件。具体的超时时间的定义在framework下的ActivityManagerSe

2015-09-16 15:54:08 1708

原创 Android中三种锁的用法

一、synchronized略 二、lockLock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,因为Lock可以锁定任意一段代码:public class LockTest { public static void main(String[] args) { fi

2015-09-02 17:58:25 12993

转载 Activity启动过程简析--Binder、Zygote、ActivityThread

一、总体介绍在Android系统中,Activity和Service是应用程序的核心组件,它们以松藕合的方式组合在一起构成了一个完整的应用程序,这得益于应用程序框架层提供了一套完整的机制来协助应用程序启动这些Activity和Service,以及提供Binder机制帮助它们相互间进行通信。在Android系统中,有两种操作会引发Activity的启动,一种用户点击应用程序图标时,Launc

2015-09-02 15:24:21 2230

转载 记录和恢复listView滚动位置的2种方法

记录和恢复listView滚动位置的2种方法:记录listView滚动到的位置的坐标(精确度较强推荐)、记录listView显示在屏幕上的第一个item的位置(精确度较差)、通知适配器数据改变(追加数据时保存listview位置不错)。1、记录listView滚动到的位置的坐标,然后利用listView.scrollTo精确的进行恢复:记录:listView.setOnScro

2015-09-02 10:27:31 1908 1

原创 详解基于Binder的BroadcastReceiver && 基于Handler的LocalBroadcastManager

一、BroadcastReceiver:1.registerReceiver动态注册和通过标签静态注册广播的区别:a.对bindService的调用,注册的广播,在onReceive结束后广播即不存在,所以不能在其中给自己异步传递结果,如bindService而只能使用startService,如果想跟service交互可使用peekService。b. 手动控制。registerRe

2015-09-02 10:04:43 2488

原创 ViewPager实现左右循环滑动及轮播效果(广告栏效果)

ViewPager是一个常用的android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候会看到一个不能翻页的动画,可能影响用户体验。此外,某些区域性的ViewPager(例如展示广告或者公告之类的ViewPager),可能需要自动轮播的效果,即用户在不用滑动的情况下就能够看到其他页面的信息。 一、PagerAdapter:我们知道ViewPa

2015-09-01 15:17:27 4985

转载 JVM(一):体系结构 && 内存模型

一:Java技术体系模块图:http://img.my.csdn.net/uploads/201209/24/1348494277_5463.jpg 二:JVM内存区域模型:http://img.my.csdn.net/uploads/201209/29/1348934141_8447.jpg1.方法区也称"永久代” 、“非堆”,  它用于存储虚拟机加载的类信息、常量、静态

2015-08-31 15:55:09 1616

原创 JVM(三):类加载机制(类加载过程和类加载器)

使用java编译器可以把java代码编译为存储字节码的Class文件,使用其他语言的编译器一样可以把程序代码翻译成Class文件,java虚拟机不关心Class的来源是何种语言。如图所示:在Class文件中描述的各种信息,最终都需要加载到虚拟机中才能运行和使用。那么虚拟机是如何加载这些Class文件的呢?JVM把描述类数据的字节码.Class文件加载到内存,并对数据进行校验、转换解析和

2015-08-25 15:38:32 35136 5

原创 JVM(二):垃圾回收机制 && 弱引用

现在的垃圾回收基本都采用分代收集算法,所有java堆可以细分为:新生代和老年代。1.引用计数法(Reference Counting Collector)给对象添加一个引用计数器,当有地方引用它时,计数器加1,;当引用失效时(对象出了作用域后或该对象丢弃不再使用),引用计数器减1,一旦引用计数器为0,对象就满足了垃圾收集的条件。引用计数法运行较快,不会长时间中断程序执行。但引用计数

2015-08-24 14:18:01 2522

转载 Android性能优化(三),数据库优化

原文地址:

2015-08-20 14:20:01 908

原创 Android性能优化(二),Layout布局优化

原文地址:

2015-08-20 13:53:50 1906

原创 Android性能优化(一),总纲

总体上来说,想要写出高效代码,我们要遵循两条基本的原则:-不作没有必要的工作。-尽量避免内存分配。一、容易引发性能问题的点:- IO操作- 数据库- 网络- 线程同步- 架构,算法,数据结构- 程序逻辑二、找出性能瓶颈的方法1.Code Review2.代码性能测量2-1.通过性能Log记录函数调用时间Log.d("Performance",

2015-08-19 21:42:44 987

原创 Android OOM原因总结

一、什么是OOMOOM(out of memory)即内存溢出。一个程序中,已经不需要使用某个对象,但是因为仍然有引用指向它垃圾回收器就无法回收它,当该对象占用的内存无法被回收时,就容易造成内存泄露。Android的一个应用程序的内存泄露对别的应用程序影响不大,因为为了能够使得Android应用程序安全且快速的运行,Android的每个应用程序都会使用一个专有的Dalvik虚拟机实例来运行,也就...

2015-08-18 17:44:14 18044 5

转载 自定义View的实现方法,View工作原理(四)

原文地址:Android自定义View的实现方法,带你一步步深入了解View(四) - 郭霖的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/guolin_blog/article/details/17357967 一些接触Android不久的朋友对自定义View都有一丝畏惧感,总感觉这是一个比较高级的技术,但其实自定义View并不复杂,有时候只需

2015-08-18 14:45:52 3932

转载 View视图状态及View重绘流程分析,View工作原理(三)

1

2015-08-18 11:56:21 815

转载 View视图绘制流程,View工作原理(二)

尊重原创:Android视图绘制流程完全解析,带你一步步深入了解View(二) - 郭霖的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/guolin_blog/article/details/16330267 View系统的绘制流程会从ViewRoot的performTraversals()方法中开始,每一个视图(View)的绘制过程都必须经历三

2015-08-17 22:10:07 1049 1

转载 LayoutInflater原理分析,View工作原理(一)

尊重原创:Android LayoutInflater原理分析,带你一步步深入了解View(一) - 郭霖的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/guolin_blog/article/details/12921889 LayoutInflater主要是用于加载布局。而刚接触Android的朋友可能对LayoutInflater不怎么熟悉

2015-08-17 16:04:49 666

原创 Android事件分发机制

本文是对网上android事件分发机制的总结和精简,原文地址如下:Android事件分发机制完全解析,带你从源码的角度彻底理解(上) - 郭霖的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/guolin_blog/article/details/9097463Android事件分发机制完全解析,带你从源码的角度彻底理解(下) - 郭霖的专栏 -

2015-08-17 14:11:03 842

转载 Fragment完全解析

原文地址:  http://blog.csdn.net/guolin_blog/article/details/8881711

2015-07-29 23:03:35 1126

原创 【LruCache和DiskLruCache结合】图片缓存机制

本文是对网络上几篇文章的综合,

2015-07-29 21:33:23 11296

转载 【DiskLruCache完全解析】Android AdapterView图片硬盘缓存的最佳方案

原文地址: http://blog.csdn.net/guolin_blog/article/details/28863651概述:上一篇文章详解了LruCache内存缓存技术,防止网络下载多图时的OOM。但LruCache只是管理了内存中图片的存储与释放,如果图片从内存中被移除的话,那么又需要从网络上重新加载一次图片,这显然非常耗时。对此,Google又提供了一套硬盘缓存的解决方案:

2015-07-29 09:09:30 921

翻译 【LruCache完全解析】Android高效加载大图、多图解决方案,有效避免程序OOM (AdapterView使用LruCache图片缓存)

英文地址: http://developer.android.com/training/displaying-bitmaps/index.html原译地址: http://blog.csdn.net/guolin_blog/article/details/9316683高效加载大图片我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但

2015-07-28 14:13:13 805

转载 Android ListView异步加载图片错位、重复、闪烁分析以及解决方案

我们在使用ListView异步加载图片的时候,在快速滑动或者网络不好的情况下,会出现图片错位、重复、闪烁等问题,其实这些问题总结起来就是一个问题,我们需要对这些问题进行ListView的优化。比如ListView上有100个Item,一屏只显示10个Item,我们知道getView()中convertView是用来复用View对象的,因为一个Item的对应一个View对象,而ImageView

2015-07-28 09:44:56 2213

原创 AdapterView性能优化(ListView,GridView,Gallery,Spinner)

在进行AdapterView性能优化之前,有必要先了解下listview加载数据的原理。ListView的三个元素:ListView:       用来展示列表的View控件;适配器Adapter:  用来把数据映射到ListView上;数据:           具体的将被映射的字符串,图片等;根据列表的适配器类型,列表分为四种:ArrayAdapter,Simp

2015-07-26 22:48:08 1580

RingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreference

RingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreference

2011-07-26

the Sorcerers Stone r and the Sorcerers Stone

the Sorcerers Stone r and the Sorcerers Stone the Sorcerers Stone r and the Sorcerers Stone the Sorcerers Stone r and the Sorcerers Stone the Sorcerers Stone r and the Sorcerers Stone the Sorcerers Stone r and the Sorcerers Stone

2011-07-17

编码格式有利于形成编码规范

编码格式,支持不同的编码规范,转载共同学习,加强交流,有利于身心健康,编码格式要注意

2011-05-28

空空如也

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

TA关注的人

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