渡口一艘船

孤舟蓑笠翁,独钓寒江雪

团队项目必备神器——自定义Lint

Lint在android studio中内置了大概200个左右的lint检查,比如定义变量未使用,直接Handler报内存泄漏提醒,时时刻刻在监督着我们的代码。自己定制了一些Lint规则,项目开源在GitHub上 https://github.com/xsfelvis/LintDemo 为什...

2016-12-16 22:37:50

阅读数 2733

评论数 17

MaterialDesign学习项目

概述该项目主要用来学习Material Design Support Library和一些android其他技术,也借鉴了网上一些其他优秀的学习资源。该项目目前主要分为俩大部分(后期可能会有一些增加): 解析干货集中营的开放API,实现一个简单的干货客户端 随时随地掌握技术最新动态 有趣的搞笑图片...

2016-04-29 11:10:48

阅读数 3490

评论数 2

网易内推(Android) 拿offer

网易内推(Android) 拿offer

2015-09-17 22:40:37

阅读数 4154

评论数 38

深入理解动态代理

千山鸟飞绝,万径人踪灭。 孤舟蓑笠翁,独钓寒江雪 ——唐·柳宗元《江雪》 首发于我的公众号 深入理解动态代理 一、概述 最近在阅读retrofit源码时,有个关键的所在就是动态代理,细细回想了一下动态代理,发现之前有些细节还没有理解到位,本篇博文将重新深入理解一下动态代理。 二、关于代理 ...

2019-02-22 22:45:54

阅读数 343

评论数 0

设计模式精简图册

设计模式精简图册 首发于我的公众号 设计模式图册 设计模式分类 创建型模式: 主要用于创建对象,包括 工厂方法(Factory Method) 抽象工厂(Abstract Factory) 单例(Singleton) 生成器(Builder) 原型(Prototype) 结构型模式: 用于...

2019-02-19 23:58:38

阅读数 705

评论数 0

设计模式入门

0x00 概述本文主要介绍设计模式的六大原则,这是学习设计模式的总纲。设计模式其实是一套被反复使用、总结出来的代码设计经验的总结,使用设计模式是为了重用代码,让代码更加容易的被他人理解,保证代码的可靠性。在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johns...

2017-11-09 10:54:28

阅读数 392

评论数 0

设计模式学习记录

0x00 概述学习设计模式是一个漫长的过程,也是一个程序员登堂入室的必经之路。这篇博文就是记录学习设计模式的过程,会持续更新,每个模式都有对应的学习代码,学习在https://github.com/xsfelvis/DesignPattern.git0x01 大纲 创建型 结构型 行为...

2017-11-09 10:53:38

阅读数 263

评论数 0

你真的了解过度绘制吗?

本文主要谈谈Android过度绘制相关的知识点,并结合云课堂企业版首页优化过度绘制的实践总结一些与之相关的问题,与君共享,互相进步~ 本文将按照如下结构展开1、 表面问题产生2、 问题背后的探索 ---- 什么是过度绘制 ---- Android渲染机制3、 优化过度常用工具和套路4...

2017-11-04 15:58:14

阅读数 4943

评论数 0

butterknife及其背后的代码生成技术

本篇博文主要介绍butterknife使用及其背后的技术点,行文结构如下0x00 butterknife项目地址: https://github.com/JakeWharton/butterknife github原文是这样介绍的 Field and method binding for An...

2017-11-02 20:27:18

阅读数 1754

评论数 0

Service全面总结

service本篇博文主要介绍Service相关知识,具体目录如下0x00 什么是Service Service是一个应用程序组件,可以在后台长时间运行的操作,不提供用户界面; 一个应用程序可以启动一个服务,它将继续在后台运行,即使用户切换到另外一个应用 一个组件可以绑定到一个服务与它交互,甚至执...

2017-10-31 16:47:03

阅读数 1455

评论数 0

2个关于Adapter库的源码分析(AdapterDelegate、BaseRecyclerViewHelper)

0x00 概述 核心思想:都是围绕如何解决viewType、视图、数据与视图的绑定来进行一系列的封装,不同的库有着自己不同的手段而已 Adapter能在数据变化时候,内部实现逻辑不会改变,仅在外部添加新功能即可,那么要求Adapter对数据层是解耦的,不能显示持有外部数据,核心要点要把握好 R...

2017-10-30 20:08:15

阅读数 1639

评论数 1

密码学技术初探

0X00 概述本篇文章是对密码学基础知识的一些总结,旨在对密码学有一个概要认识。主要分为以下两个大的方面 密码对称密码 分组密码模式 公钥密码 混合密码 认证单向散列函数 消息认证码 数字签名 证书 0X01 密码对称密码(共享密钥密码)核心: 用相同的密钥进行加密和解密主要分为 DES、三...

2017-10-20 19:37:12

阅读数 2987

评论数 0

注解库之ButterKnife

butterknife解决的问题项目地址: https://github.com/JakeWharton/butterknife github原文是这样介绍的 Field and method binding for Android views which uses annotation pr...

2017-07-29 17:19:51

阅读数 1735

评论数 6

注解库之Dagger2

Dagger2Step1 使用0x00 Dagger2介绍 Dagger is a fully static, compile-time dependency injection framework for both Java and Android. It is an adaptation ...

2017-07-29 16:20:16

阅读数 750

评论数 1

Lottie的使用及原理浅析

lottie项目地址: https://github.com/xsfelvis/lottie-androidLottie支持Jellybean (API 16)及以上的系统什么是lottie?Airbnb最近开源了一个名叫Lottie的动画库,它能够同时支持iOS,Android与ReactNat...

2017-02-14 23:36:15

阅读数 10859

评论数 3

JNI两种注册过程实战

JNI系列JNI两种注册过程实战深入理解JNI概述Android OS加载JNI Lib的方法有两种 - JNI_OnLoad(动态注册) - 如果JNI Lib实现中没有定义JNI_OnLoad,则dvm调用dvm ResolveNativeMethod进行动态解析(静态注册) 因此,当 ...

2017-01-23 15:22:06

阅读数 4651

评论数 9

AS gradle 编译引起的bug

问题描述引起原因由于某些原因导致垃圾回收器,每次花费了大量的时间(by default 98% of all CPU time of the process),仅仅恢复了一点点内存(by default 2% of the heap),这个异常有效的提醒你,你的程序此时正停止了其他事情而仅仅忙于垃...

2017-01-12 19:26:19

阅读数 1334

评论数 0

ListView嵌套ViewPager+Fragment引起的Bug

发现问题之前发现过一次,情景一样,当时是将ListView替换为LinearLayout然后动态添加view解决,这次又发现这个问题,感觉得从根本上找出原因所在,毕竟listview嵌套多层viewpager+fragment场景还是存在很多的(如资产详情带图表切换),报的crash分析问题定位问...

2017-01-12 19:23:27

阅读数 3537

评论数 0

Andfix学习记录

概述篇AndFix,全称是Android hot-fix。是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug。支持Android 2.3 到 7.0,并且支持arm 与 X86系统架构的设备。完美支持Dalvik与ART的Runtime,补丁文件是以 .apatch 结...

2017-01-11 10:41:40

阅读数 2278

评论数 0

注解基础

0x00 概述本文主要是介绍注解的基础知识,为后面的APT和JavaPoet打下基础0x01 什么是注解注解(Annotation)是Java5的一个新特性,是插入在代码中的一种注释或者说是一种元数据(meta data),这些注释信息可以在编译期使用预编译工具进行获取处理,也可以在运行期使用Ja...

2017-01-10 23:14:57

阅读数 1398

评论数 0

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