鸽一门
码龄7年
  • 474,815
    被访问
  • 118
    原创
  • 1,365,399
    排名
  • 525
    粉丝
关注
提问 私信

个人简介:Slow down, Old Sport. 慢慢来,比较快~

  • 加入CSDN时间: 2015-03-29
博客简介:

lemonGuo的大脑皮层、小脑、海马体、杏仁核.....

博客描述:
吾生也有涯,而知也无涯 。以有涯随无涯,殆已!
查看详细资料
个人成就
  • 获得374次点赞
  • 内容获得148次评论
  • 获得619次收藏
创作历程
  • 3篇
    2020年
  • 13篇
    2018年
  • 58篇
    2017年
  • 42篇
    2016年
  • 3篇
    2015年
成就勋章
TA的专栏
  • Android 学习笔记
    54篇
  • Android 源码分析
    10篇
  • Android 开源库学习
    11篇
  • Java学习笔记
    20篇
  • 优雅设计封装基于Okhttp3的网络框架
    7篇
  • Anroid 开发中bug解决记录
    18篇
  • JVM高级特性与实践
    14篇
  • Android UI学习
    15篇
  • Android 设计模式
    3篇
  • ------------------------------
  • 网络
    3篇
  • Weex
    1篇
  • 挖掘算法中的数据结构
    7篇
  • 算法与数据结构
    6篇
  • ------------------------------
  • C语言趣味算法(蓝桥杯)
    5篇
  • ASP.NET 学习心得
    6篇
  • C# 学习心得
    2篇
  • SQL SERVER
    1篇
  • 小程序
兴趣领域 设置
  • 移动开发
    kotlin
  • Android
    android jetpack
  • 软件工程
    性能优化
  • 职场和发展
    面试
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

走进RecyclerView未解之迷 ------ 原理和优化

(前言暂位符号)View holder究竟是什么?ProblemView holder 和 item view 是什么关系? 一对一?一对多?多对一?View holder 解决的是什么问题?View holder 和 ListView 的 item view 的复用有什么关系?没有实现 View holder 的 getView() 的例子如下,大量的 findViewById() 方法被调用,看似不是很大的开销,但其方法的底层实现是深度优先搜索,时间复杂度是O(n)。完全可以避免
原创
发布博客 2020.05.19 ·
663 阅读 ·
1 点赞 ·
0 评论

Java笔记一问三不知------泛型的秘密

泛型的创建和实例化1.常见创建使用(1)创建一个泛型类public class Wrapper<T> { private T instance; public T getInstance() { return instance; } public void setInstance(T instance) { this.instance = instance; }}//Wrapper Testpublic cla
原创
发布博客 2020.05.19 ·
460 阅读 ·
0 点赞 ·
0 评论

Gradle再回首之重点归纳

回顾Android应用的构建过程是一个复杂的过程,涉及到很多工具。首先所有的资源文件都会被编译,并且在一个R文件中引用,然后Java代码被编译,通过dex工具转换成dalvik字节码。最后这些文件都会被打包成一个APK文件,此应用被最终安装到设备之前,APK会被一个debug或者release的key文件签名。一句话定义GradleGradle是一种构建工具,其构建基于Groovy(DSL) ------ 一种基于JVM的动态语言,用于申明构建和创建任务,让依赖管理更简单。年少时第一次对Grad
原创
发布博客 2020.05.19 ·
422 阅读 ·
0 点赞 ·
0 评论

小程序调研相关文章链接

小程序原理介绍文章大都简单谈论了一下技术实现架构,科普性偏多,可重点看下标记星星链接。此次调研除了之前已知的致力于统一端的美团MpVue、京东Taro前端框架,还了解了去哪儿的娜娜奇脚手架,基于 React 的多端小程序转译框架,主要通过实现不同的render,以支持在微信、百度、支付宝小程等hybird上运行,对于小程序的覆盖性更广,不过与Taro框架都是以react为基础编写代码。小程...
原创
发布博客 2018.10.26 ·
383 阅读 ·
1 点赞 ·
0 评论

Weex中Scroller搭配Refresh滑动时的bug:首次触摸界面时会抖动(跳动)一大段距离

一. 确认过眼神,是不想遇见的bug 如上三张图所示:第一张是【还未刷新】的效果,即初始界面;第二张是【正常刷新】效果,白色区域随着手指下拉而显示,这里设置了margin值,小球是从navbar下来的。第三张图是【非正常跳动】效果,即初次进入界面时准备下拉刷新,但并未出现第二张的效果,而是猛然跳动一大块距离!令人费解!起初笔者天真地以为是因为对Refresh和Scro...
原创
发布博客 2018.08.05 ·
2191 阅读 ·
1 点赞 ·
5 评论

Android 高级UI解密 (六) :结合Activity启动源码剖析View的诞生

1
原创
发布博客 2018.06.21 ·
468 阅读 ·
0 点赞 ·
0 评论

Android 高级UI解密 (五) :PathMeasure截取片段 与 切线(新思路实现轨迹变换)

一. PathMeasure基础API介绍顾名思义,PathMeasure是一个用来测量Path的类,以下先来介绍API基本使用,它的方法也比较少。1. 构造方法 方法名 释义 PathMeasure() 创建一个空的PathMeasure PathMeasure(Path path, boolean forceClosed) 创建 PathMea...
原创
发布博客 2018.06.11 ·
3216 阅读 ·
4 点赞 ·
2 评论

Android 高级UI解密 (四) :花式玩转贝塞尔曲线(波浪、轨迹变换动画)

一. 贝塞尔初识概念 A Bézier curve (pronounced [bezje] in French) is a parametric curve frequently used in computer graphics and related fields. Generalizations of Bézier curves to higher dimensions ar...
原创
发布博客 2018.05.21 ·
6058 阅读 ·
10 点赞 ·
2 评论

Android 高级UI解密 (三) :Canvas裁剪 与 二维、三维Camera几何变换(图层Layer原理)

Canvas变换技巧(1)平移Tanslatevoid translate (float dx, float dy)API作用:用指定的转换对当前matrix 进行预处理。 参数说明: x、y轴移动的距离。注意:这里牵扯到canvas的概念,我们通常称之为“画布”,在此画布上可以绘制任何图像。此API的功能就是移动画布位置,需要强调的是每次canvas执行drawXXX的时候就会
原创
发布博客 2018.05.21 ·
2412 阅读 ·
6 点赞 ·
1 评论

浅析RxJava 1.x&2.x版本区别及原理(三):1.x 版本 Scheduler调度线程变换及subscribeOn、observeOn方法源码解析

上两篇文章都是对比分析RxJava中较基本的订阅流程与操作,即Observable、Flowable等基本元素的源码,还有map、lift操作符的源码。在对Rxjava框架有了一个坚实的基础后,此篇文章将直袭Rxjava中最闪亮的Point,也是Android猿平常在开发中经常遇到的需求 —— 线程切换,主线程中需要进行耗时操作,要求切换到子线程,子线程中需要进行UI更新,要切切换到主线程。以上切...
原创
发布博客 2018.05.06 ·
529 阅读 ·
0 点赞 ·
0 评论

浅析RxJava 1.x&2.x版本区别及原理(二):map、lift操作符源码解析

上一篇文章讲解了RxJava 1.x&amp;2.x版本的基本元素(Observable、Subscriber、Flowable、Observer等)流程源码分析,对RxJava两个版本的基本使用元素和订阅原理有了一定的认识后,此篇文章将重点置于map、lift操作符,已知操作符的作用是将发出的数据进行处理再发送,RxJava源码内部具体操作原理如何?来一探究竟。此系列文章重点在于分析源码,并...
原创
发布博客 2018.05.04 ·
590 阅读 ·
0 点赞 ·
0 评论

浅析RxJava 1.x&2.x版本使用区别及原理(一):Observable、Flowable等基本元素源码解析

RxJava开源框架的风靡程度在Github上无需多言,它带来的响应式编程模式和线程随意切换、嵌套请求、背压等功能给了开发者耳目一新的体验,更是成为了大多数APP中常用的RxJava+Okhttp/Retrofit+MVP/MVVM/Clean黄金组合中的一员。我犹记得知乎团队在去年线下还开展过一次线下RxJava交流会,邀请了扔物线讲解相关知识及体验,可见各大厂对此的重视度。如非要列举一个RxJ...
原创
发布博客 2018.05.02 ·
5040 阅读 ·
1 点赞 ·
1 评论

Android内、外存储 易混淆点剖析(/mnt/sdcard、/storage/sdcard0、/storage/emulated/0等区别)

说起Android“内部存储”,对于开发者而言可以毫不犹豫地脱口而出,不就是/data/data目录嘛,也不尽然,/data/user/0/又如何解释?那说起“外部存储”,例如sd卡目录获取值,更是众说纷纭,是/mnt/sdcard?还是/storage/sdcard0?莫非是/storage/emulated/0?此疑问起源要追溯到笔者在写上一篇博文,即以DexClassLoader类加载原理编写
原创
发布博客 2018.03.07 ·
28090 阅读 ·
39 点赞 ·
11 评论

Android热修复(二):以DexClassLoader类加载原理编写demo实现类替换修复

上一篇文章简易总结了热修复实现的几大原理,并详细介绍了Android中的类加载机制及源码探索,Android的类加载机制涉及到ClassLoader、DexClassLoader 、PathClassLoader 、BaseDexClassLoader 、DexPathList、DexFile多个类之间方法互相调用,但是真正的核心实现类其实是DexPathList,它具体实现了`findClass`方法,即所谓的“类
原创
发布博客 2018.02.28 ·
6907 阅读 ·
3 点赞 ·
5 评论

Android热修复(一):底层替换、类加载原理总结 及 DexClassLoader类加载机制源码探索

在早期的Android开发中,若客户端发布更新后遇到紧急bug需要及时修复,通常只能等待新版本解决再次发布,但是重新发布版本代价太大且用户下载安装成本高,若Bug未及时修复,无疑会严重影响用户体验,因此衍生了一系列技术来解决以上问题,其中一种就是Hybrid方案,即将需要经常变更的业务逻辑以H5的形式独立出来。还有一种是插件化方案。因此在Android开发近几年中,又衍生出了新的解决方案——热修复。开发者可以直接将更
原创
发布博客 2018.02.23 ·
5881 阅读 ·
11 点赞 ·
2 评论

Android Dex VS Class:实例图解剖析两种格式文件结构、优劣

前段时间在了解Android代码混淆和反编译原理的时候,都涉及到了dex文件,该文件中保存着app中重要的数据信息,例如源码中使用的系统api,或者是否含有广告,更甚者通过解析AndroidManifest.xml知晓activity、service、receiver等四大组件数据信息(未混淆的情况下),而且一个程序应用的所有数据信息都存储在一个dex文件中,可见该格式文件存储信息的强大优势!说起信
原创
发布博客 2018.01.31 ·
1878 阅读 ·
3 点赞 ·
2 评论

Android 高级UI解密 (二) :Paint滤镜 与 颜色过滤(矩阵变换)

若是曾经查看过系统UI的源码,会发现其中使用了一些渲染效果,例如将图片加上黑白、怀旧的效果,生活中常用的逆天美颜相机,其中的原理就是使用了**滤镜效果、颜色通道过滤**。若还要深究其原理组成,便涉及到了高等数学里的矩阵变换,也就是Android 中的**颜色矩阵**!此篇文章便来一探究竟如何实现滤镜和其原理组成。(关于矩阵这一块,无需过度深究数学部分,此处为了充分理解渲染效果,只需了解大概原理,利用其API完成简
原创
发布博客 2017.12.21 ·
1907 阅读 ·
6 点赞 ·
0 评论

Android 高级UI解密 (一) :Paint图形文字绘制 与 高级渲染

UI即User Interface(用户界面)的简称,泛指用户的操作界面,view是用户界面最基本的组件,其扩展了View类,更控制着屏幕上的绘制和实践,例如被触控。屏幕上显示的所有元素都依赖view。在自定义View或Layout时,不仅要了解测量(onMeasure)、布局(onLayout)、展示(onDraw),更要考虑处理不同的点击、滑动输入事件(onTouchEve
原创
发布博客 2017.12.18 ·
3110 阅读 ·
9 点赞 ·
0 评论

Gradle 与 Android的三生三世:是我构建了你,你必将依赖于我

Android应用的构建过程是一个复杂的过程,涉及到很多工具。首先所有的资源文件都会被编译,并且在一个R文件中引用,然后Java代码被编译,通过dex工具转换成dalvik字节码。最后这些文件都会被打包成一个APK文件,此应用被最终安装到设备之前,APK会被一个debug或者release的key文件签名。以上步骤人工操作着实繁
原创
发布博客 2017.11.20 ·
2503 阅读 ·
2 点赞 ·
1 评论

HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)

本文以总结的形式,先大体介绍TCP/IP协议整体组成,再择其应用层上的HTTP协议进行详细总结,继而拓展知识点讲解加密学,过渡到HTTPS协议的学习,除去网络知识必备掌握的三次握手、四次挥手,另需了解基于SSL/TLS的握手,也是重要的一个环节。本文涉及到的知识点如下:网络基础TCP/IPHTTP协议基础与重点加密与签名HTTPS协议(基于SSL/TLS的握手)
原创
发布博客 2017.11.13 ·
7094 阅读 ·
3 点赞 ·
0 评论
加载更多