首页 文章 精选 留言 我的

精选列表

搜索[联网搜索API],共10000篇文章
优秀的个人博客,低调大师

最强整理:一线互联网移动架构师设计思想解读开源框架

设计思想解读开源框架 一、热修复设计 1.1 AOT/JIT、dexopt 与 dex2oat 1.2 CLASS_ISPREVERIFIED问题与解决 1.3 即时生效与重启生效热修复原理 1.4 Gradle自动补丁包生成 二、插件化框架解读 2.1 Class文件加载Dex原理 2.2 Android资源加载与管理 2.3 四大组件的加载与管理Activity、Service 2.4 so库的加载原理 2.5 Android系统服务的运行原理 三、组件化框架设计 3.1 组件化之集中式路由--阿里巴巴ARouter原理 3.2 APT技术自动生成代码与动态类加载 3.3 Java SPI机制实现组件服务调用 3.4 拦截器AOP编程(跳转前预处理--登录),路由参数传递与IOC注入 3.5 手写组件化式路由 四、图片加载框架 4.1 图片加载框架选型 4.1.1 Universal ImangeLoader、Glide、Picasso与Fresco 4.1.2 Glide 4.1.3 Picasso 4.1.4 Fresco 4.2 Glide原理分析 4.2.1 Glide的基本用法 4.2.2 从源码的角度理解Glide的执行流程上篇、下篇 4.2.3 深入探究Glide的缓存机制 4.2.4 玩转Glide的回调与监听 4.2.5 Glide强大的图片变换功能 4.2.6 探究Glide的自定义模块功能 4.2.7 实现带进度的Glide图片加载功能 4.2.8 带你全面了解Glide 4的用法 4.3 手写图片加载框架实战 五、网络访问框架设计 5.1 网络通信必备基础 5.1.1 Restful URL 5.1.2 HTTP协议& TCP/IP协议 5.1.3 SSL握手与加密 5.1.4 DNS解析 5.1.5 Socket通信原则 5.1.5.1 SOCKS代理 5.1.5.2 HTTP普通代理与隧道代理 5.2 OkHttp源码解读 5.2.1 Socket连接池复用机制 5.2.2 HTTP协议重定向与缓存处理 5.2.3 高并发请求队列:任务分发 5.2.4 责任链模式拦截器设计 5.3 Retrofit源码解析 六、RXJava响应式编程框架设计 6.1 链式调用 6.2 扩展的观察者模式 6.3 事件变换设计 6.4 Scheduler线程控制 七、IOC架构设计 7.1 依赖注入与控制反转 7.2 ButterKnife原理上篇、中篇、下篇 7.3 Dagger架构设计核心解密 八、Android架构组件Jetpack 8.1 LiveData原理 8.2 Navigation如何解决tabLayout问题 8.3 ViewModel如何感知View生命周期及内核原理 8.4 Room架构方式方法 8.5 dataBinding为什么能够支持MVVM 8.6 WorkManager内核揭秘 8.7 Lifecycles生命周期 最后 Alvin老师已经将精品网课、书籍、BAT面试文档、项目专题源码等资料已分享在网盘中,并在持续更新中。欢迎关注Alvin老师微信号VX:wxid_mgooud8xhvag12 前往领取! Android架构师之路很漫长,一起共勉吧!喜欢的话别忘记点击关注和赞哦

优秀的个人博客,低调大师

一线互联网公司Redis使用精髓,你必须要掌握这4点!

先来看一下这些Redis面试题你会几道? 1、什么是 Redis?简述它的优缺点?2、Redis 与 memcached 相比有哪些优势?3、Redis 支持哪几种数据类型?4、Redis 主要消耗什么物理资源?5、Redis 有哪几种数据淘汰策略?6、Redis 官方为什么不提供 Windows 版本?7、一个字符串类型的值能存储最大容量是多少?8、为什么 Redis 需要把所有数据放到内存中?9、Redis 集群方案应该怎么做?都有哪些方案?10、Redis 集群方案什么情况下会导致整个集群不可用?11、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?12、Redis 有哪些适合的场景?13、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?14、Redis 和 Redisson 有什么关系?15、Jedis 与 Redisson 对比有什么优缺点?16、说说 Redis 哈希槽的概念?17、Redis 集群的主从复制模型是怎样的?18、Redis 集群会有写操作丢失吗?为什么?19、Redis 集群如何选择数据库?20、Redis 如何做内存优化? 了解Redis Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Value可以由String,hash,list,set,zset,Bitmaps,HyperLogLog等多种数据结构和算法组成。Redis还提供了键过期,发布订阅,事务,Lua脚本,哨兵,Cluster等功能。Redis执行命令的速度非常快,根据官方给的性能可以达到10w+qps。那么本文主要介绍到底Redis快在哪里,主要有以下几点: 开发语言 现在我们都用高级语言来编程,比如Java、python等。也许你会觉得C语言很古老,但是它真的很有用,毕竟unix系统就是用C实现的,所以C语言是非常贴近操作系统的语言。Redis就是用C语言开发的,所以执行会比较快。另外多说一句,大学生们好好学C,会让你更好的理解计算机操作系统。别觉得学了高级语言就可以不用关注底层,欠的债总归要还的。此处推荐一本比较难啃的书《深入理解计算系统》。 纯内存访问 Redis将所有数据放在内存中,非数据同步正常工作中,是不需要从磁盘读取数据的,0次IO。内存响应时间大约为100纳秒,这是Redis速度快的重要基础。先看看CPU的速度: 拿我的电脑来说,主频是3.1G,也就是说每秒可以执行3.1*10^9个指令。所以说CPU看世界是非常非常慢的,内存比它慢百倍,磁盘比他慢百万倍,你说快不快?借了一张《深入理解计算机系统》的图,展示了一个典型的存储器层次结构,在L0层,CPU可以在一个时钟周期访问到,基于SRAM的高速缓存春续期,可以在几个CPU时钟周期访问到,然后是基于DRAM的主存,可以在几十到几百个时钟周期访问到他们。 单线程 第一,单线程简化算法的实现,并发的数据结构实现不但困难且测试也麻烦。第二,单线程避免了线程切换以及加锁释放锁带来的消耗,对于服务端开发来说,锁和线程切换通常是性能杀手。当然了,单线程也会有它的缺点,也是Redis的噩梦:阻塞。如果执行一个命令过长,那么会造成其他命令的阻塞,对于Redis是十分致命的,所以Redis是面向快速执行场景的数据库。除了Redis之外,Node.js也是单线程,Nginx也是单线程,但他们都是服务器高性能的典范。 非阻塞多路I/O复用机制 在这之前先要说一下传统的阻塞I/O是如何工作的:当使用read或者write对某一文件描述符(File Descriptor FD)进行读写的时候,如果数据没有收到,那么该线程会被挂起,直到收到数据。阻塞模型虽然易于理解,但是在需要处理多个客户端任务的时候,不会使用阻塞模型。 I/O多路复用实际上是指多个连接的管理可以在同一进程。多路是指网络连接,复用只是同一个线程。在网络服务中,I/O多路复用起的作用是一次性把多个连接的事件通知业务代码处理,处理的方式由业务代码来决定。在I/O多路复用模型中,最重要的函数调用就是I/O 多路复用函数,该方法能同时监控多个文件描述符(fd)的读写情况,当其中的某些fd可读/写时,该方法就会返回可读/写的fd个数。 Redis使用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll的read、write、close等都转换成事件,不在网络I/O上浪费过多的时间。实现对多个FD读写的监控,提高性能。 举个形象的例子吧。比如一个tcp服务器处理20个客户端socket。A方案:顺序处理,如果第一个socket因为网卡读数据处理慢了,一阻塞后面都玩蛋去。B方案:每个socket请求都创建一个分身子进程来处理,不说每个进程消耗大量系统资源,光是进程切换就够操作系统累的了。C方案**(I/O复用模型,epoll):将用户socket对应的fd注册进epoll(实际上服务器和操作系统之间传递的不是socket的fd而是fd_set的数据结构),然后epoll只告诉哪些需要读/写的socket,只需要处理那些活跃的、有变化的socket fd的就好了。这样,整个过程只在调用epoll的时候才会阻塞,收发客户消息是不会阻塞的。 最后 欢迎大家一起交流,喜欢文章记得点个赞哟,感谢支持!

优秀的个人博客,低调大师

阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:8. 委托事件

CZGL.AliIoTClient 里设置了 7 个委托事件,在程序的不不同生命周期触发。 1)7个委托事件 /// <summary> /// 服务器属性设置 /// </summary> public PublishPropertyEventHandler PubPropertyEventHandler; /// <summary> /// 服务调用 /// </summary> public PublishServiceEventHandler PubServiceEventHandler; /// <summary> /// 收到其它Topic时触发 /// </summary> public PublishCommonEventHandler PubCommonEventHandler; /// <summary> /// 当 QOS=1或2时,收到订阅触发 /// </summary> public uPLibrary.Networking.M2Mqtt.MqttClient.MqttMsgPublishedEventHandler PubedEventHandler; /// <summary> /// 向服务器发布 Topic 时 /// </summary> public uPLibrary.Networking.M2Mqtt.MqttClient.MqttMsgSubscribedEventHandler SubedEventHandler; /// <summary> /// 向服务器发布 Topic 失败时 /// </summary> public uPLibrary.Networking.M2Mqtt.MqttClient.MqttMsgUnsubscribedEventHandler UnSubedEventHandler; /// <summary> /// 断开连接时 /// </summary> public uPLibrary.Networking.M2Mqtt.MqttClient.ConnectionClosedEventHandler ConnectionClosedEventHandler; 使用方法 public static void TestEvent(object sender, MqttMsgPublishEventArgs e) { { // handle message received string topic = e.Topic; string message = Encoding.ASCII.GetString(e.Message); Console.WriteLine("- - - - - - - - - - "); Console.WriteLine("get topic message,Date: " + DateTime.Now.ToLongTimeString()); Console.WriteLine("topic: " + topic); Console.WriteLine("get messgae :\n" + message); } client.PubPropertyEventHandler += TestEvent; 这里是旧版本的文档,可以参考一下。 https://www.cnblogs.com/whuanle/p/10786991.html

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册