自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王三的专栏

如果有一天我还能跑,为什么要满足地待在原地呢?

  • 博客(30)
  • 收藏
  • 关注

原创 LeakCanary原理解析

转载注明出处:http://blog.csdn.net/xiaohanluo/article/details/78196755使用LeakCanary是Square为Android应用提供的一个监测内存泄露的工具,源码地址:https://github.com/square/leakcanary。在gradle文件中引入依赖:dependencies { debug...

2017-10-10 20:02:01 12188 9

原创 Median of Two Sorted Arrays(获取两个有序数列的中值)

最近没事刷LeetCode,有一题很有意思,取中值问题。中值是指将统计总体当中的各个变量值按大小顺序排列起来,形成一个数列,处于变量数列中间位置的变量值就称为中位数。当数列的项数N为奇数时,处于中间位置的变量值即为中位数;当数列的项数N为偶数时,中位数则为处于中间位置的2个变量值的平均数。

2017-09-11 19:29:26 989

原创 Android性能优化总结

Android系统每隔16ms发出VSYNC信号,对UI进行渲染,如果每次渲染都成功,就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms内完成,时间超出16ms越多,丢的帧就越多。

2017-08-01 16:53:52 4556

原创 自定义Gradle Plugin

详细讲解了自定义Gradle Plugin的过程,以及中间一些目录结构和注意事项,因为自定义Gradle Plugin使用的是Groovy语言,和Java很像,很容易理解,本篇没有做过多的语言介绍。

2017-06-28 15:35:15 3598 2

翻译 Gradle用户使用指南

Gradle作为一种新的集成工具,关于Gradle的配置信息,多版本构建,签名,依赖导入,依赖多工程,测试等等build.gradle中配置信息,都在这里。

2017-05-23 16:19:14 5180

原创 Android中SPI的使用

SPI全称是Service Provider Interface,服务提供方接口,服务通常是指一个接口或者一个抽象类,服务提供方是对这个接口或者抽象类的具体实现,由第三方来实现接口提供具体的服务。SPI提供了一种动态的对应用程序进行扩展的机制,通常用作框架服务的拓展或者可替换的服务组件,但是在Android中并没有广泛的使用。

2017-05-10 11:09:43 9320

原创 Android做下拉刷新的时候,在做些什么

转载注明出处:http://blog.csdn.net/xiaohanluo/article/details/644431621. 简介好长时间没有写博客了,一来是工作忙,抽不出空,二来是迷上了王者荣耀。现在正好赶上项目空闲期,写一篇关于下拉刷新的文章,个人觉得上来加载更多功能使用场景非常少,而且没有必要做的那么麻烦,文章最后会提一下加载更多的实现。最近项目中遇见了下拉刷新的需求,...

2017-03-21 15:59:37 3782

原创 Android之从零开始JNI研发

本篇几乎没有涉及C/C++与java之间变量以及语法等等一些知识点,这些会在下篇来介绍。本人也是在学习探索过程中,如果有错误希望大家指出来。

2017-02-15 14:45:20 6186 2

原创 Android进程通信之Messenger&AIDL使用详解

提到的进程间通信(IPC:Inter-Process Communication),在Android系统中,一个进程是不能直接访问另一个进程的内存的,需要提供一些机制在不同的进程之间进行通信。

2016-12-30 14:18:05 8829 10

原创 Android截屏事件监听

Android系统没有直接对截屏事件监听的接口,也没有广播,只能自动动手丰衣足食!

2016-12-23 11:52:13 14336 6

原创 Android之Service详解

与前一篇Android之Activity的细枝末节是同一系列的文章,是自己在学习和研发过程中,对Service的一些知识点的总结,汇总得到这篇文章。这篇文章会从Service的一些小知识点,延伸到Android中几种常用进程间通信方法。

2016-12-16 10:48:20 8306 3

原创 Android之Activity详解

本篇不针对于新手,而是对于Activity中一些常识或者问题进行总结。本篇介绍了Activity的生命周期、启动关闭、状态保存、启动模式、返回栈协同调度等等知识点。

2016-11-18 14:39:07 8050 18

原创 MAC端Git安装以及环境搭建

转载注明出处:http://blog.csdn.net/xiaohanluo/article/details/53214933Git安装下载Git有两种方法直接下载安装包,Git下载地址用homebrew指令下载,不过首先需要安装homebrew 在终端执行后面指令安装,homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.g...

2016-11-18 12:11:14 104767 2

原创 Android圆角图片和圆形图片实现总结

Android研发中经常会遇见圆角或者圆形图片的展示,但是系统中ImageView并不能直接支持,需要我们自己做一些处理,来实现圆角图片或者圆形图片,自己最近对这块的实现做了一下总结.

2016-10-27 15:14:06 22432 13

原创 Intent以及IntentFilter详解

在Android中有四大组件,这些组件中有三个组件与Intent相关,可见Intent在Android整个生态中的地位高度。Intent是信息的载体,用它可以去请求组件做相应的操作,但是相对于这个功能,Intent本身的结构更值得我们去研究。

2016-09-23 16:05:44 40710 10

原创 Java注解Annotation浅析

Java在1.5版本引入注解Annotation,又称Java标注,注解是一种语法元数据,可以被直接使用到源代码中,类/方法/变量/参数/包名等都可以被注解。和Javadoc标签不同,编译器在生成class文件时候能够保留注解代码,同时,可能为了在程序运行过程中(run-time)可以使用注解,Java虚拟机会把注解保留,这样就可以通过反射获取注解Annotation信息

2016-09-14 16:12:56 7071 4

原创 Android之图片压缩

在开发中,对于图片的操作,稍有不慎,可能就会消耗大量的内存,导致程序崩溃,所以了解一种通用的技术去处理和加载图片,同时保证UI流畅避免OOM现象,是非常有必要的。那么为什么在Android中对于图片的处理会如此棘手呢?

2016-09-09 16:09:54 7231 26

原创 Android事件分发机制详解

Android日常研发时,与View接触占据相当多的时间,而关于View的知识,主要集中在View的绘制和View对于点击事件的处理。关于View的绘制过程,可以查看一下这篇文章的介绍;关于View处理点击事件,可能有人会认为在onTouchEvent()这个方法处理点击事件就行了,不错,具体的处理过程确实是在这个方法中,但是点击事件在View间是怎么分发的?

2016-09-05 10:40:20 3683 4

原创 滑动删除Item,拖拽切换Item,你想了解的都在这儿

如果上两篇对RecyclerView介绍后,依然没有引起你的兴趣,那么下面关于RecyclerView的使用我相信一定会让你如获珍宝。列表Item拖拽删除以及拖拽切换位置的交互,在这里都可以看见。

2016-08-26 17:56:36 5381 2

原创 RecyclerView使用完全指南,是时候体验新控件了(二)

关于网格样式和瀑布流样式在本篇会仔细的介绍,细心的同学会发现,自定义间隔在上一篇文章中并没有太过深入,只是介绍了方法的调用时机,但是关于更换间隔样式没有太详细的介绍,是因为列表样式的RecyclerView自定义间隔比较简单,统一放到复杂一点的网格中来讲解。直接进入主题,看看期待已久的网格模式和瀑布流模式的使用吧。

2016-08-19 15:56:22 3794

原创 RecyclerView使用完全指南,是时候体验新控件了(一)

官方介绍,RecyclerView用于在有限的窗口展现大量的数据,其实早已经有了类似的控件,如ListView、GridView,那么相比它们,RecyclerView有什么样优势呢? RecyclerView标准化了ViewHolder,而且异常的灵活,可以轻松实现ListView实现不了的样式和功能。

2016-08-12 15:22:50 6189 3

原创 Android实践之ScrollView中滑动冲突处理

在Android开发中,如果是一些简单的布局,都很容易搞定,但是一旦涉及到复杂的页面,特别是为了兼容小屏手机而使用了ScrollView以后,就会出现很多点击事件的冲突,最经典的就是ScrollView中嵌套了ListView。我想大部分刚开始接触Android的同学们都踩到过这个坑,这一篇文章就从最近做的一个项目讲起,然后在过程中提供一些解决冲突的思路。

2016-08-05 17:08:26 27256 30

原创 带你从源代码详细分析View的绘制过程

转载注明出处:http://blog.csdn.net/xiaohanluo/article/details/520841051. View简介       View类是Android中各种交互式组件的基类,显示在屏幕上的视图由一个或多个View组成,它们排列在一个View树中,我们可以向树中添加新的View或者View树。2. Vi...

2016-08-01 11:19:04 4294 3

原创 Java反射详解

Java在编译时候就必须知道所引用的类所在地方,但是在实际编程中,在某些场合,可能需要引用一个并不在编译空间的类,这个时候常规方法就很难实现了。在Java中,Class配合反射能够很好的解决这种场景。

2016-07-26 11:27:32 3831

原创 AsyncTask 第三篇源代码篇

简介上一篇主要针对AsyncTask内部使用到的一些线程的技术进行了基本的讲解,如果还没有看过的同学,可以点开这个AsyncTask 第二篇线程篇去查看一下。这一篇就从源代码分析AsyncTask的具体实现,也终于从第一篇的使用到了实现的思路。

2016-07-25 16:05:25 1053

原创 AsyncTask 第二篇线程篇

简介本篇主要针对AsyncTask中使用到的多线程知识进行讲解,也会涉及到一些基本的多线程知识。在上一篇中大家都知道了AsyncTask内部会起一个非UI线程去执行一些比较耗时的操作,那么这个线程在AsyncTask是怎么样被执行的,仅仅只是实例化一个Thread然后启动它吗?在内部对线程是怎么样处理的?

2016-07-25 16:03:46 842

原创 AsyncTask 第一篇使用篇

在手机中耗时的操作比较多,比如说扫描本地的文件夹,比如说从网上下载东西,我们希望这些操作在后台运行,于是我们开了一个线程在后台去执行这些耗时操作。

2016-07-25 16:00:42 939

原创 Handler异步消息处理机制,从源代码看起

在Android开发中经常会遇见异步消息处理的情况,特别是网络请求成功或者失败之后需要更新UI,但是更新UI只能在UI线程里面进行,否则就会报错,这个时候就需要通知UI线程去更新UI,于是Handler出现了。

2016-07-22 14:14:20 3579

原创 设计模式之一工厂模式

工厂模式

2014-11-13 18:40:33 948

原创 计算结构体占用内存,sizeof,指针。

这几天有人问结构体占用内存的情况,

2014-10-10 18:07:19 8175 1

空空如也

空空如也

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

TA关注的人

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