自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小码匠的博客

路漫漫其修远兮......

  • 博客(22)
  • 资源 (21)
  • 问答 (1)
  • 收藏
  • 关注

原创 Handler原理?四个问题带你升级打怪

1.Handler、MessageQuenen、Loop之间的对应关系是怎样的?回答这个问题先来了解下Handler使用Handler首先需要通过Loop.prepare和Loop.loop给Handler构建消息循环,主线程的消息循环在Activity的attach方法内由系统构建,我们先来看看Loop.prepare做了什么。Loop.javapublic static void pr...

2019-06-27 13:56:43 149

原创 Handler工作原理

1.Handler工作原理Android的消息机制,主要是值Handler的运行机制,而Handler的运行依赖MessageQueue和Loop的支撑。MessageQueue是消息队列,用来存储一组消息,以队列的形式对外提供插入和删除工作,内部结构通过单链表实现。Looper消息循环,以无限循环的形式查询是否是否有新消息,如果有就处理新消息,否则就一会等待。Message消息载体Ha...

2019-06-13 14:31:56 1149

原创 进程间通讯原理

进程间通讯总结进程间通讯是指两个进程间数据交换的过程。1.进程与线程区别线程:是cpu调度的最小单元,是一种有限的资源进程:是指设备上的一个程序或者应用,是一个执行单元,一个进程可以包含多个线程。Binder:是Android中的一个类实现了IBinder接口。是Android IPC跨进程通讯的一种方式,也可以理解为一种虚拟的物理设备。1.从Framework角度说,Binder是S...

2019-06-13 14:28:39 707

原创 数据结构复习

数据结构定义描述数据之间一种或多种特定关系的元素的集合。数据结构分类数据结构分别为逻辑结构、存储结构(物理结构)和数据的运算逻辑结构:根据数据元素间关系的不同特性,通常有下列四类基本的结构集合结构。该结构的数据元素间的关系是“属于同一个集合”Java中的Map接口的实现类HashMap、HashTable等线性结构:数据元素之间存在着一对一的关系如ArrayList、LinkedLi...

2019-06-12 10:12:39 920

原创 自定义注解

1.自定义注解的格式通过查看源码,可以发现任何一个注解类都有如下特征:注解类会被@interface标记注解类的顶部会被@Documented、@Retention、@Target、@Inherited这四个注解标记,其中@Documented、@Inherited可选的,@Retention、@Target必须有定义一个注解的格式:例如:@Target(value = {Elem...

2019-06-07 09:13:27 596

原创 Glide源码探究(四)Glide对生命周期的管理上

用过Glide的小伙伴都知道,图片加载会和Activity/Fragment的生命周期保持一致,并且有对应的 trimMemory 接口实现可供调用。那么Glide是怎么实现和Activity/Fragment的生命周期保持一致的么?带着这个疑问我们来探究下源码。仍然以Glide.with(context).load(url).into(mImageView)说起我们知道with方法有很多重载...

2019-06-06 18:14:07 289 1

原创 Glide源码探究(六)数据加载与缓存

上篇我们知道请求构建完成并不是立马会去加载资源,而是对请求做了管理,从而知道当前需不需要加载资源,最大化的优化性能及用户体验,这一点是十分值得我们学习借鉴的。问题:1.数据资源加载过程是怎样的?2.首次加载资源是怎么缓存的?带着这两个问题,接下来我们接着上篇继续探讨://Engine.javapublic synchronized <R> LoadStatus load(...

2019-06-06 18:12:39 197

原创 Glide源码探究(五)对生命周期管理下

上一篇我们分析到Glide.with方法内部做了很多初始化操作,最终返回一个RequestManager对象。问题:我们请求构建完成以后紧接着做了什么处理?//RequestManager.javapublic RequestBuilder<Drawable> load(@RawRes @DrawableRes @Nullable Integer resourceId) { r...

2019-06-06 18:11:37 201

原创 Glide源码探究(三)Glide请求构建过程

本篇结合源码讲解Glilde的构建过程,我们知道Glide的使用是非常简单的,例如:Glide.with(this).load(android.R.mipmap.sym_def_app_icon).into(mImageView);Glide使用非常简单,通过上面的一行代码就可以给我们的mImageView加载一张图片;Glide的内部为我们做了大量的工作,都有些什么呢?今天我们来探究的...

2019-06-05 19:14:19 249

原创 Glide源码探究 (一)关于Glide

参考网上几篇Glide源码的介绍,也想看看Glide内部怎么实现的,顺便膜拜下Google大佬们的设计思想,话不多说,来吧~本篇不介绍Glide的具体使用,后面的操作符也只代表glide的常用功能,详细使用可以参考官方文档。本文主要介绍了以下几个方面:glide是什么,它能干什么,为什么是它?和之前的图片加载框架的比较Glide的操作符1.glide是什么,它能干什么,为什么是它?...

2019-06-05 15:37:21 255

原创 Glide源码探究(二)Glide整体设计

本文参考前辈们的文章,结合源码,从以下角度继续探究Glide的源码设计。个人觉得如果先有一个整体的认识,然后再深入探讨是比较舒服的。本文从以下角度继续探究Glide:Glide整体框架Glide模块间的调用流程Glide库 目录结构Glide的类之间的关系1.Glide整体框架结合上面的图,我们分两步探究这个库的工作原理,第一步:当我们使用这个Glide库加载图片时,它内部先初...

2019-06-05 15:33:00 207

原创 了解Android平台架构系统启动及APP的启动

先上一张Android平台架构图:Android Developers1.Android系统的启动名词介绍:①APP service:也就是我们APP内的普通应用服务②Core Service:系统核心服务,,开机的时候会启动几十个(40)核心服务,开机完成全部核心服务也就启动完成。这些核心服务就是我们常见的各种×××ServiceManager.java开机过程分析:用户点击...

2019-05-31 21:15:20 227

原创 多级列表? RecyclerView我这么用

多级列表? RecyclerView我这么用源码是最好的老师,RecyclerView有多好用我就不多说,来上一个开源库自己去体会:推荐一个封装RecyclerView的开源库地址本篇从以下角度介绍一下RecyclerView:回答个面试题RecyclerView和ListView的区别?简述RecyclerView使用步骤如何用RecyclerView 实现多级列表?1.Rec...

2019-05-29 17:46:08 903

原创 Android开发架构思考

关于Android开发架构的简单思考三层架构模型:三层架构是一个分层式的软件体系架构设计,它可适用于任何一个项目。通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是...

2019-05-26 11:03:33 266

原创 多线程编程(三)—多线程之间的通讯

温故Java基础(一)多线程编程—多线程之间的通讯本文是多线程系列第三弹,前两篇文章见:多线程编程——多线程入门:https://blog.csdn.net/qq_26628329/article/details/89209019多线程编程——线程安全:https://blog.csdn.net/qq_26628329/article/details/89249209三、多线程之...

2019-04-16 15:41:05 174

原创 多线程编程(二)——线程安全

**本文是多线程编程系列第二弹,多线程编程之线程安全,第一篇多线程入门:https://blog.csdn.net/qq_26628329/article/details/89209019**二、线程安全本文将从以下几个方面温故线程安全问题什么是线程安全问题如何解决线程安全问题多线程死锁问题多线程的三大特性Java内存模型volatile关键字1.什么是线程安全问题...

2019-04-12 17:54:00 154

原创 多线程编程(一)——多线程入门

俗话说好记性不如lai笔头,子曰:温故而知新~ 言归正传,本文将从以下方面复习Java多线程编程相关的知识。多线程入门线程安全多线程之间的通讯并发编程线程池一、多线程入门线程与进程的区别为什么使用多线程如何创建线程线程的几种状态守护线程与非守护线程线程常用API1.线程与进程的区别进程:个人理解进程是指正在运行的一个应用程序;定义为:具有一定独立功能的程序关于...

2019-04-11 14:12:10 161

原创 升级AndroidStudio到3.0版本引入新工程的编译错误

记录一个升级AndroidStudio到3.0版本的编译错误场景:项目需要引入一个aar包,集成完成以后编译失败,刚开始还以为是aar包内资源文件有问题,后来才发现问题的根本,在此记录一下。 错误信息:Error:(1, 0) Your project path contains non-ASCII characters.This will most likely cause the ...

2018-04-10 11:37:14 317

原创 深入理解Java虚拟机

深入学习Java虚拟机总结以Java虚拟机为平台进行程序设计的开发人员,很有必要对虚拟机的原理及工作机制进行深入的了解,该篇是学习周志明著深入理解Java虚拟机第2版的总结,主要分为以下几个方面:Java内存区域与内存溢出异常垃圾收集器与内存分配策略虚拟机性能监控与故障处理工具类文件结构虚拟机类加载机制1、Java内存区域与内存溢出异常必要性:Java虚拟机自己...

2018-03-22 13:08:18 191

原创 自定义TagView使用中导致的崩溃问题

自定义View遇到的异常问题自定义TagView,将其引入Studio中遇到的crash问题,看了半天才发现问题,错误日志如下:03-16 14:33:22.132 734-1586/? W/ActivityManager: com.demo.dukunpeng.tagview crash because Didn't find class "com.niceapp.lib.tagv...

2018-03-16 17:35:34 267

原创 展示 时:分:秒

Android 时分秒展示计算方法 最近收到一个需求,再发送视频消息时,需要根据发送视频的时长,在代码中展示01:32:44或 32:44 或 01:44 或00:44几种格式,在此mark一下,好记性不如赖笔头!代码如下: BigDecimal mBigDecimal_first = new BigDecimal(item.getDuration());

2017-06-26 19:53:56 269

原创 Android 来电悬浮框的实现

Android 来电悬浮框的探索基于项目中需要,监听系统来电弹出自定义的悬浮框,综合其他博主共享的资源,成功在项目中实现了这一功能。本着达则兼济天下的崇高理想,分享出来,以供参阅。开始之前推荐一篇关于悬浮框层级的博文:浮窗开发层级问题根据需求我把整个功能分割了以下几个部分:监听系统来电的广播接收广播处理通话状态悬浮框界面接听功能实现挂断功能实现监听系统来电的广播AndroidManife

2017-04-24 13:49:44 1650

android 内核剖析 科元旦

android 内核剖析 科元旦

2016-08-09

深入理解JVM

文档太大请下载后查看网盘链接。

2016-07-08

界面编程PDF

界面编程技术。

2016-07-08

按钮特效demo

按钮特效。

2016-07-08

图片选择器demo

图片选择器,高仿微信。

2016-07-08

头像剪裁demo

高仿微信头像剪裁。

2016-07-08

用于解析PDF

需要解析PDF的同学可以拿去用,希望对你有所帮助。

2016-07-08

绘画,签名

亲测性能还不错。

2016-07-08

下拉刷新的demo

下拉刷新的demo。

2016-07-08

便签的源码

记事本的demo,希望对你有用。

2016-07-08

彩信收发Demo

从5.0系统 剥离出的彩信部分收发 源码。

2016-07-08

Ant 打包Demo

使用Ant打包的demo.

2016-07-08

LeakCanaryDemo

使用LeakCanary分析 Activity Fragment引起的内存泄露问题。

2016-07-08

短彩信 通讯录

短彩信部分可分离,运行报错需修改部分代码。

2016-07-08

全国省市县三级联动

运行良好,很不错的demo。

2016-07-08

gridview可拖拽

可拖拽的gridView,之前看到的还不错的例子,希望对你有所帮助

2015-10-14

pdf阅读,listview使用合集,gridview使用优化

pdf阅读,listview使用合集,gridview使用优化,最近开发比较繁忙在项目中用到的功能觉得还是不错的例子,希望能给您提供便利。

2015-10-14

屏幕截图shotScreenDemo

Android端的屏幕截图,项目中的一个小功能,屏幕截图,以供研究。

2015-08-20

Xutils的使用

androidXutil工具十分使用,上传个不错的Xutils供大家来研究。

2015-08-20

WebScoket的案例

前段时间项目中用到webscoket实现Android和IOS,WindowPhone以及PC客户端的交互,其中前段由HTML5编写,故用到webscoket资源不太好找,分享给大家吧。

2015-08-20

高仿Google电子市场部分源码

高仿电子市场源码; 1.免费赠送大量工具类 2.viewpager的使用已抽取,拿来直接用即可 3.页面指针的使用 4.请求协议的封装 5.加载网络状态回调响应的页面

2015-03-28

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

TA关注的人

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