大家可能都用过Butterknife,今天就从0到1写一个Butterknife,首先通过反射的方式实现,接着再改为注解处理器实现,通过这个例子...
整理了一份NDK学习笔记,分享给需要的朋友: https://github.com/jdqm/ndk[https://github.com/jd...
有一段时间没写文章了,今天分享一个最近遇到的坑。先说结论,账号问题,不是代码问题。 最近在做海外版App的时候有个需求是接入Google支付,接...
单元测试是应用程序测试策略中的基本测试,通过对代码进行单元测试,可以轻松地验证单个单元的逻辑是否正确,在每次构建之后运行单元测试,可以帮助您快速...
Gradle是目前Android主流的构建工具,不管你是通过命令行还是通过Android Studio来build,最终都是通过Gradle来实...
1.线程安全 如果一个对象能安全地被多个线程同时使用,那么它就是线程安全的。 当多个线程访问同一个对象时,如果不需要考虑这些线程在运行时环境下的...
线程对变量的修改都是在工作内存中进行的,那工作内存与主存之间的交互是如何进行的? 1. 8个原子操作 lock(锁定): 作用于主内存变量,它把...
1. 类加载的七个阶段 1.1加载 通过一个类的全限定名来获取定义此类的二进制字节流; 将这个字节流所代表的静态存储结构转化为方法区的运行时数据...
一、垃圾收集器 1.如何确定对象已死 1.1.引用计数法-Reference Counting 给对象添加一个引用计数器,当有新的地方引用它时,...