摘要:
1:IOC,控制反转(Inversion of Control) 软件设计原则中有一个依赖倒置原则(DIP)讲的是要依赖于抽象,不要依赖与具体,高层模块不应该依赖于低层模块。 比如我们的Client类,里面调用一个Test,那就是Client对Test形成依赖关系,Test是Client的依赖类。 阅读全文
摘要:
概述: 1:Dagger2是编译时完成注入,没有采用反射,采用的是APT技术。 2:当我们需要对一段代码进行拦截修改的时候,我们有很多方案,最常见的是通过反射。但是反射是在运行时的工作,对性能有很大的影响,所以提出了APT技术,该技术可以在编译期对代码进行拦截,并进行修改,生成新的可执行的类。 ht 阅读全文
摘要:
1:APT(Annotation Processing Tool)是属于编译时IOC的一种工具。它是Java编译器提供的一个工具,用于处理在编译时使用的注解。APT通过注解处理器(Annotation Processor)在编译阶段扫描和处理源代码中的注解,并生成额外的代码或进行其他的处理操作。 A 阅读全文
摘要:
1:替换DexElements流程: 插件化原理:https://www.cnblogs.com/wnpp/p/16053088.html 插件生成apk,宿主通过反射机制和类加载器(传入插件apk),获取到插件的dexElements,并将dexElements合并到宿主的类加载器的dexElem 阅读全文
摘要:
已经有了okhttp,为什么还需要Retrofit: 自动转换数据格式: 您提到Retrofit提供了自动转换数据格式的功能,这是非常准确的。Retrofit可以与多种转换器(如Gson、Jackson、Moshi等)集成,自动将HTTP响应体转换为Java对象,同样也可以将Java对象转换为请求体 阅读全文
摘要:
1:事件从最底层的Activity开始分发 2:伪代码:Activity->ViewGroup->View 本质:从Activity开始,层层递归分发事件,到最顶层的View的onTouchEvent判断是否消费事件。 事件分发是从Activity到View,但是onTouchEvent的执行判断, 阅读全文
摘要:
1:和Listview的不同: 1)Listview只支持纵向列表,RecyclerVeiw支持纵向、横向、网格以及瀑布流; 2)ListView是2级缓存机制,RecyclerView是4级缓存机制 3)ListView没有强制实现ViewHolder 2:ListView: 用法: @Overr 阅读全文
摘要:
强制缓存: (1)HTTP响应报文中expires的时间值,是一个绝对值 (2)HTTP响应报文中Cache-Control为max-age=600,是相对值 由于Cache-Control的优先级比expires高,那么直接根据Cache-Control的值进行缓存,意思就是说在600秒内再次发起 阅读全文
摘要:
以下从几个方面来总结一下Android的性能优化: 1:界面卡顿优化 2:内存优化 3:App启动优化 1:界面卡顿优化 Android的界面为每秒60帧,即必须在16ms内完成1帧的绘制,如果某个方法耗时过程,导致16ms内无法完成绘制,会导致丢帧,丢帧的多了,直观上感受就是界面卡顿。 60帧是人 阅读全文
摘要:
1:Java 文件执行的过程: 编译阶段: 开发者使用 .java 文件编写Java源代码。 通过JDK中的 javac 编译器,.java 文件被编译成 .class 字节码文件。这一步骤是必要的,因为Java虚拟机(JVM)无法直接理解Java源代码。 为什么生成字节码: 字节码是一种中间代码形 阅读全文