- 博客(19)
- 收藏
- 关注
原创 Android构建流程(Android Plugin)源码解析系列一:主流程
Gradle系列之Groovy基础 Gradle系列之Gradle基础 Gradle系列之自定义插件 Android构建流程(Android Plugin)源码解析系列一:主流程前言首先,不了解groovy语言,gradle基础以及编写gradle插件基础的,请先前往这个系列之前的文章补充基础,不然下面看起来会吃力。 本篇文章会从android编译插件的源码进行分析然后得出其工作原...
2018-02-07 17:27:51 1566
原创 ScheduledThreadPoolExecutor原理源码解析
前言ScheduledThreadPoolExecutor是用于处理定时任务的线程池,它继承ThreadPoolExecutor,拥有线程池的基础功能;而其定时处理的能力是来自于它定义的任务阻塞队列DelayedWorkQueue。通过上一篇文件得知线程池的运行原理,以及任务队列的作用,想要了解的可以移步线程池ThreadPoolExecutor原理解析ScheduledThreadP
2018-01-31 16:43:14 591
原创 java线程池ThreadPoolExecutor源码解析
前言线程池是我们工作中经常会用到的,但是能高效、准确地使用它却不容易。下面会通过原理和源码来分析线程池的工作原理。ThreadPoolExecutor原理分析ThreadPoolExecutor构造函数参数说明 public ThreadPoolExecutor(int corePoolSize, int
2018-01-30 14:37:47 451
原创 Gradle系列之自定义插件
Gradle系列之Groovy基础 Gradle系列之Gradle基础 Gradle系列之自定义插件 Android构建流程(Android Plugin)源码解析系列一:主流程什么是插件插件,我们都很容易理解,它就是一个工具,帮助我们执行某个功能。gradle的插件就是在gradle编译的过程中执行特定业务的工具。gradle中的插件很常见,我们开发Android应用的时候,都会用...
2018-01-08 20:55:36 666
原创 Gradle系列之Gradle基础
Gradle系列之Groovy基础 Gradle系列之Gradle基础 Gradle系列之自定义插件 Android构建流程(Android Plugin)源码解析系列一:主流程gradle的工作流程gradle工作流程分为三步Initialization : 这个阶段,主要是会分析哪些module将被构建。这个时候又一个很明显的操作就是这个阶段会解析settings.grad...
2018-01-08 01:55:18 1130
原创 Gradle系列之Groovy基础
Gradle系列之Groovy基础 Gradle系列之Gradle基础 Gradle系列之自定义插件 Android构建流程(Android Plugin)源码解析系列一:主流程数据类型groovy中没有基本数据类型,它任务任何事物都是对象;它会将基本数据类型包装成其对应的包装类型 groovy中容器类List: 其底层对应java的List接口,一般用Arra...
2017-12-25 16:10:58 468
原创 Dex文件内容解析APK相关信息
Dex文件格式我们都知道Android项目在构建的时候,会将class文件的jar包通过dx工具将其转化成dex文件,目的是将所有的class文件整合到一个dex文件中,这样的目的是降低冗余,因为每个class的数据格式都相同,dex通过将相同的内容方法一起,使文件结构更加紧凑。 通过上图可以看出,dex文件将方法信息、字段信息、类型信息等都相同的信息都放到了一起,从而省下很多空间。 Dex
2017-12-07 16:01:32 589
原创 java多线程任务队列模型
此篇文章将从任务队列的设计;任务调度的方式(串行和并行)。代码很简单,主要是设计的思想。任务队列final class PendingPostQueue { // 含有头、尾指针的链表结构实现队列 private PendingPost head; private PendingPost tail; // 入队列 synchronized void enqueu
2017-09-10 21:12:35 4187 1
原创 微信分享详解
微信分享的接入步骤1.申请测试账号微信官方文档提供了测试账号 接口测试账号申请; 当然也可以申请自己订阅号,但是个人公众号没有分享的接口权限,测试账号是有的(但是测试账号在真机上分享过程都是正确的,但是分享出去的内容是错误;但是在微信提供的测试工具上是正确的)。所以只有企业订阅号才能在真机上真正的分享成功,因为这要收钱嘛,不然我拿着这个测试账号的appid和appsecret就可以用了。2.设置j
2017-08-10 17:14:14 2290
原创 微信分享实践和踩坑实践
微信分享的接入步骤1.申请测试账号微信官方文档提供了测试账号 接口测试账号申请; 当然也可以申请自己订阅号,但是个人公众号没有分享的接口权限,测试账号是有的(但是测试账号在真机上分享过程都是正确的,但是分享出去的内容是错误;但是在微信提供的测试工具上是正确的)。所以只有企业订阅号才能在真机上真正的分享成功,因为这要收钱嘛,不然我拿着这个测试账号的appid和appsecret就可以用了。2.设置js
2017-08-03 16:42:28 808
原创 mint-ui swipe组件源码解析
前叙mint-ui组件库中swipe组件,实现的是常见的轮播图效果。但是它的实现方式,和常见的实现有所不同。 常见的实现方式: 通过移动轮播图的wrapper来实现item的切换效果(也就是修改wrapper的translate3d属性来实现)。如果支持循环播放,需要在首部插入一个最后一个轮播图item的clone版,以及在尾部插入一个第一个轮播图item的clone版。 swipe组件实现的方
2017-06-22 15:54:38 21874
原创 Vue-lazyload原理详解之源码解析
前叙本来想要研究mint-ui组件库的Lazy load组件,没想到翻看它的源码,发现它完全引用的vue-lazyload项目,直接引用,没有丝毫修改。 因此转而研究vue-lazyload,代码并不多,几百行吧,有兴趣的可以读一下。简单接入示例html代码:<div id="app"> <li v-for="img in imgList"> <img v-lazy="im
2017-06-19 21:18:43 20365 1
原创 vue mint-ui源码解析之loadmore组件
接入官方接入文档mint-ui loadmore文档接入使用Examplehtml<div id="app"> <mt-loadmore :top-method="loadTop" :bottom-method="loadBottom" :bottom-all-loaded="allLoaded" :max-distance="150" @top-sta
2017-06-08 12:04:55 14770 9
原创 vue muit-ui infinite-scroll源码解析
infinite scroll基本使用vue的mint-ui的infinite scroll的基本使用地址:infinite-scroll接入指南. 简单解释一下: 1、指令接受的method:处理loadmore回调 2、自定义属性infinite-scroll-disabled:为false时:不会进行是否到达底部的判断,因此就触发不了loadmore回调 3、自定义属性infinite
2017-05-22 19:24:59 11331
原创 Vuejs中nextTick()异步更新队列源码解析
vue官网关于此解释说明如下:vue2.0里面的深入响应式原理的异步更新队列 官网说明如下: 只要观察到数据变化,Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据改变。如果同一个 watcher 被多次触发,只会一次推入到队列中。这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作上非常重要。然后,在下一个的事件循环“tick”中,Vue 刷新队列并执行实际(已去重的)工作。
2017-05-18 21:13:47 4373
原创 Android中ClassLoader源码解析之真的是你认为的ClassLoader
1.前言首先,阅读本文章之前,需要了解java中的ClassLoader的基本原理,包括java中的三级ClassLoader机制以及ClassLoader的委托机制,否则下面的内容会不知道在讲什么。虽然Android中的ClassLoader也是遵循其委托机制,但是他没有遵循java的三级ClassLoader机制,而是自己造了一个,修改了java系统的代码,如果将两者混淆的话,在Andro
2016-09-19 16:54:52 4043 2
原创 CoordinatorLayout源码解析,探索Behavior机制的奥秘
1.文章内容概述本文主要是针对Behavior的运作机制,通过对CoordinatorLayout的源码中对此Behavior的执行过程进行分析,得出其运行原理。本文主要是针对behavior的layout child的方式,touch事件的处理,以及内嵌滑动事件的处理进行重要分析。2.阅读本文前的准备工作关于内嵌滑动,这是在android5.0之后google提出的,并且在suppo
2016-07-25 21:20:32 2679 1
原创 Android-Universal-Imageloader源码完全解析
现在网上对此Imageloader图片加载的开源框架的解析有好多文章,有好多只是简单分析它的实现,此篇文章是通过自己对其源码的分析,对它的实现方式进行分析,针对它用到的重点知识点进行重点介绍,以及自己对于此框架的理解。下面的分析从以下两个方面进行分析。Imageloader的初始化Imageloader加载图片的实现方式分析1.Imageloader的初始化Imageloader是
2016-07-06 17:02:32 2493
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人