彩笔学长

长风破浪会有时,直挂云帆济沧海

自定义Lint

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

粒子动画学习

粒子效果动画 看了几个开源库,自己在学习过程中重构了一个供自己以后使用 源码地址:https://github.com/xsfelvis/Explosion 效果图: 简介 提供了6中粒子动画效果,框架支持扩展,若有新的粒子需求可以继承Particle实现自己的需求,整体框架如下 使用 已经单独将粒子动画部分抽成modudle依赖,直接添加依赖即可,或者使用jar包jar包...

设计模式学习记录

0x00 概述 学习设计模式是一个漫长的过程,也是一个程序员登堂入室的必经之路。这篇博文就是记录学习设计模式的过程,会持续更新(属于天狼星计划的一部分,严肃脸),每个模式都有对应的学习代码,学习在https://github.com/xsfelvis/DesignPattern.git 0x01 大纲   创建型 结构型 ...

设计模式六大原则

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

编译期注解之JavaPoet

注解系列 注解基础 APT JavaPoet 0x00 概述 上一篇限于篇幅只介绍了APT,这篇来继续介绍javapoet,是square公司的开源库。正如其名,java诗人,通过注解来生成java源文件,通常要使用javapoet这个库与Filer配合使用。主要和注解配合用来干掉那些重复的模板代码(如butterknife 和databinding所做的事情),当然你也可以使用这个...

编译期注解之apt

注解系列 注解基础 APT JavaPoet 0x00 概述 前一篇介绍了注解的基本知识以及常见用法,由于运行期(RunTime)利用反射去获取信息还是比较损耗性能的,本篇将介绍一种使用注解更加优雅的方式,编译期(Compile time)注解,以及处理编译期注解的手段APT和Javapoet,限于篇幅,本篇着重介绍APT 首先你的注解需要声明为CLASS @Retention(R...

注解基础

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

MAC使用记录

0x00 使用MAC一些记录,方面以后更换设备时候查阅,不断更新 ox01 软件包 包括常用的工作软件 http://pan.baidu.com/s/1bNRkdS 加密后的提取码:ejZmOA== (8*8) Android studio CleanMyMac charles Mweb sublime Tunnelblick sourceTre...

认识Dalvik虚拟机

概述 虽然Android平台使用java开发,但是android程序去不是运行在标准java虚拟机上,为了解决移动设备软件运行效率问题及规避Oracle公司版权,Google为android平台专门设计一套虚拟机来运行Android程序,即Dalvik Virtual Manchine(Dalvik 虚拟机),它的作者是Dan Bornstein,名称由来于他祖先曾居住过的名叫Dalvik...

认识Smali

什么是smali Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器。其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能,当我们对apk反编译之后,便会生成此类文件,其中在dalvik字节码中,寄存器都是32位的,可以支持任何类型,64位类型要用2个寄存器表示,其中Dalvik字节...