- 博客(10)
- 收藏
- 关注
原创 TCP/IP网络协议以及Android网络优化方案
引用文章地址:TCP/IP网络协议文章目录TCP/IP 模型TCP 和 UDPTCP 为什么要三次握手/四次挥手网页请求一个 URL 的流程DNS 工作原理HTTPS 加密原理TCP/IP 模型tcp四层模型TCP 和 UDPTCP特点:面向连接、面向字节流、可靠、有序、速度慢、较重量,流量控制、拥塞控制适用场景:文件传输、浏览器等应用:HTTP、HTTPS、RTMP、FTP、SMTP、POP3UDP特点:无连接、面向报文、不可靠、无序、速度快、轻量、实时性高(无队首阻塞)适用场景:适
2021-06-09 09:02:57
930
原创 热修复
插件化Android热修复常用热修复解决方案实现原理什么是热修复?怎么进行热修复?热修复需要解决的问题插桩式热修复落地怎么执行热修复(使用补丁包)?字节码插桩Android热修复常用热修复解决方案实现原理什么是热修复?定义:在我们应用上线后出现bug需要及时修复时,不用再发新的安装包,只需要发布补丁包,在客户无感知下修复掉bug。怎么进行热修复?开发端:生成补丁包 -Gradle插件patch服务端:补丁包管理用户端:执行热修复为什么类替换方案—不能及时生效?热修复需要解决的问
2021-03-23 14:33:14
531
原创 插件化
插件化为什么插件化插件化的开源框架发展插件化的难点1. 如何加载插件的类?虚拟机类加载三件事java Android 类加载机制 区别了解APP实际使用的ClassLoader如何使用类加载器去加载一个类插件化类加载实现原理:2. 如何加载插件的资源?创建新的Resources对象如何调用loadResource方法3. 如何调用插件类?解决注册的问题Activity的启动流程总结为什么插件化将 app 中一些不常用的功能模块做成插件(免安装apk):一方面减小了安装包的大小,启动更快,另一方面
2021-03-21 14:51:46
220
原创 组件化开发和路由框架的理解
ARouter 通过 Apt 技术,生成保存路径(路由 path)和被注解(@Router)的组件类的映 射关系的类,利用这些保存了映射关系的类,Arouter 根据用户的请求 postcard(明信片) 寻找到要跳转的目标地址(class),使用 Intent 跳转。...
2021-03-20 01:55:26
625
原创 kotlin的协程
协程的作用和优势协程 kotlin提供的线程API,和java的Executor 以及Android的AsyncTask对线程做了封装,方便对并发操作;那既然有了这些,并且又有了Rxjava,协程的好处在哪?可以用看似同步的方式写出异步的代码,非阻塞式挂起并且处理完自动切回来;最基本的功能:处理并发,并且改变了处理并发任务的难度,这个从1到0简化了难度。消除了回调,简化操作难度带来质变,回调的难度在多层嵌套和多任务并发回调需要合并suspend关键字是提醒调用者我是耗时操作,请在携程里面调用
2021-03-18 20:22:07
93
原创 Rxjava的笔记
RxJava通过观察者模式实现了响应式编程:响应式编程(Reactive Programming),是一种面向数据流和变化的编程范式,通俗点理解就是当一个数据发生改变,所有其他关联数据都会立即作出反应。其他有着同样广泛应用的编程范式还有命令式编程,函数式编程和面向对象编程。RxJava1.0和RxJava2.0的核心思想都是观察者模式,只不过RxJava2.0在RxJava1.0的基础对一些方法进行了优化,例如背压等。Rxjava流程Rxjava 的流程大概是: 1. Observable.cre.
2021-03-18 20:20:45
118
转载 谈谈Glide的二次封装和优化
为什么要二次封装?所有图片加载统一的管理,改动只改一处牵涉小;如果第三方库不满足需求或停止维护,替换工作量小;原有支持的:缩略图、占位图、动画、监听资源请求并拿到资源、设置宽高、圆角等;##对外提供统一的ImageLoader ,这个类是不变的,具体执行由GlideLoader> - ImageLoader.init(Context context) //初始化> - ImageLoader.trimMemory(int level);> - ImageLoade.
2020-05-23 12:10:56
774
原创 谈谈Glide图片加载
Glide的使用:占位图加载中失败; 指定图片宽高; 获取图片资源 ;图片的截取 ;图片下载;with 通过创建空fragment 绑定当前activity的生命周期 管理活动缓存 开始暂停或 退出页面释放活动缓存load 可以加载网络、本地、res、Uri;图片的缓存管理1.活动缓存 :通过HashMap +weakReference 来存储,key 就是图片url加密值,value就是bitmap的弱引用 使用一次 引用计数+1 不使用 ...
2020-05-23 10:50:09
498
原创 从view的绘制流程到自定义view
首先视图是从顶层向子视图遍历的,因为根布局被尺寸确定setContentView、setImageView、setText这些方法,都需要考虑是否触发requestLayout和invalidate视图遍历的入口peformTraversals,依次执行测量、布局、绘制不同的试图组需要根据需要来计算重写onMeasure ,通过 MeasureSpec 获得getMode()和 getSize(),怎么理解父布局给的模式呢?未指定(UNSPECIFIED),默认最小的建议值;自身最小(AT_MOS.
2020-05-13 08:26:10
138
原创 谈谈Activity管理
关于栈的概念和启动模式1、为什么需要四种启动模式?池复用,因为按默认情况启动,会不停创建和销毁activity,所以引入栈来管理;2、设置栈有两种方式?一种是清单文件配置taskAffinity,一种是intent设置,两种都有设置,Intent覆盖清单配置。3、默认按返回键,出栈清空,直接回到桌面,但后台栈保留着,再启用栈内页面会复用。4、不管当前显示哪个栈,按home键,再次进入,显示默认栈。5、onNewIntent和onRestart的区别?前者Intent方式重复启动回调,后者
2020-05-12 19:43:34
179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人