自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

u014162857的专栏

心静、心净、心境

  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 LruCache源码分析

LruCache源码分析文档说明首先我们先看看这个类的文档说明,大致包括以下五个方面。LruCache缓存的数据持有强引用,所以在不需要的时候需要清除缓存如果LruCache持有的数据清除时需要显式释放,那么请重写entryRemoved方法LruCache的数据清除策略是最近最少使用策略,如其名(Lru Least Recently Used)LruCache是线程安全的,这意味着...

2018-10-11 17:30:15 161

原创 Android NDK简单使用

我们知道,Java的最大优点就是跨平台性,Java编译后的.class文件只需要一次编译,就可以运行在不同的操作系统中了。不过有的时候,我们需要使用不同操作系统的特性,这个时候可能使用Java就达不到目的了。此时我们需要使用JNI,通过JNI来调用底层的C/c++库,从而达到使用不同操作系统特性的目的。NDK是Android所提供的一个工具集合,通过NDK可以在Android中更加方便的使用JNI来

2017-04-04 15:08:50 370

原创 AsyncTask源码分析

在Android中,如果需要执行一个较短的耗时任务(几秒钟内),比如图片下载,数据库访问等,我们通常会使用AsyncTask来执行。如果你对AsyncTask如何使用不是特别了解,可以看看AsyncTask简单实例。 使用AsyncTask来处理异步任务给大家带来了很多便利,你不需要操作Thread和Handler,就能很方便的在工作线程和UI线程中做自己想要做的事情。那么AsyncTask是如何

2017-03-23 13:22:28 272

原创 Runnable,Callable,Future和FutureTask简介

1.Runnable和Callable的使用在Android开发时,如果我们需要将一个任务放在工作线程中运行,我们经常会先实现Runnable接口,然后将这个任务交给工作线程执行。例如:1)实现Runnable接口 private static class MyRunnable implements Runnable { @Override public void r

2017-03-21 18:55:40 329

原创 Android对象序列化

简述在android系统中,一个对象的可序列化可以通过两种方式来实现:一种是通过实现Serializable接口,另一种是通过实现Parcelable接口。其中Serializable接口是在Java中已有的,而Parcelable则是Android系统自有的。 首先我们先看看通过Serializable和Parcelable接口来实现对象的可序列化。然后在看看Serializable和Parce

2017-03-20 16:47:45 407

原创 热修复学习总结-QZone

Qzone实现方案原理:QZone采用的是dex分包方案,其基本原理就是将修复bug改动的class文件打包成一个新的patch.dex文件,然后将这个patch.dex文件放在classloader的最前面,如下图 在这里,我们假设出现bug的类是A.class。此时在classloader中的dex文件中存在两个版本的A.class,一个在patch.dex中,另一个假设在classes.

2017-02-23 12:00:56 448

原创 IntentService简析

一、IntentService的使用public class MyIntentService extends IntentService { private static final String TAG = "MyIntentService"; public MyIntentService() { super(TAG); println("MyInt

2017-02-17 18:41:19 261

原创 Groovy Closure简介

什么是闭包(Closure)在Groovy中,闭包是一段匿名的代码段,它可以有参数,返回值,并且能够赋值给一个变量。闭包中使用的变量可以是在闭包外部定义的,也可以是在闭包内部定义的。闭包定义的语法如下{[closureParameters ->] statements}上面的方括号[]表示闭包的参数可有可无,所以正常的闭包可能包括如下这些类型:{item++} //item变量定义在闭包之外,闭包

2017-01-24 16:43:06 3958

原创 Groovy基础知识

Groovy 基础

2017-01-23 15:14:06 480

原创 ViewStub的简单应用

一、什么是ViewStubA ViewStub is an invisible, zero-sized View that can be used to lazily inflate layout resources at runtime. 这是官方文档的定义,ViewStub是一个不可见的,大小为0的View,这个View能够用来在运行时懒加载布局资源。这里的懒加载的意思,就是在需要使用的时候才

2017-01-08 18:20:12 294

原创 AsyncTask简单实例

AsyncTask的简单例子使用场景使用AsyncTask可以方便的执行后台任务并且将后台任务的执行结果显示在UI上。你不需要操作Thread或Handler就可以完成耗时任务并且将操作结果显示在UI上。AsyncTask通用参数说明AsyncTask使用如下三个通用参数:Params, 通过execution将参数传递给该任务.Progress, 进度单位类型.Result, 结果类型.如

2015-08-27 15:40:49 704

原创 Andorid学习笔记

Andorid学习笔记1. Android简介及开发环境1.1 Android平台架构应用程序层 包括Android系统提供的应用程序以及用户安装的用户程序。Android系统本身提供电子邮件客户端、日历、地图、浏览器以及联系人等。应用程序框架层 Android应用程序框架层提供了大量的API供开发者使用,Android系统提供的应用以及用户安装的应用都是基于应用程序框架进行开发的。函数库

2015-07-18 11:54:27 373

NDK简单使用相关代码

NDK简单使用相关代码

2017-04-04

空空如也

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

TA关注的人

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