客户端架构
Posted Icarus_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了客户端架构相关的知识,希望对你有一定的参考价值。
- 1、了解移动端架构师需要具备的技术栈与能力
- 2、如何从0开始架构一个中大型APP
- 3、如何做好项目的技术选型
- 4、认识为“好物”项目量身定制的开发套件
- 5、HiLog库疑难点分析与架构设计
- 6、HiLog基础框架搭建
- 7、HiLog堆栈信息打印与日志格式化功能实现
- 8、基于HiLogPrinter实现日志可视化模块
- 1、HiTabBottom组件疑难点分析与架构设计
- 2、HiTabBottom的单Tab组件封装
- 3、HiTabBottomLayout封装与应用
- 4、APP基础框架结构设计
- 5、基于HiTabBottom实现APP底部导航框架
- 6、Fragment常见问题解决
- 7、HiTabTop架构设计与功能实现
- 8、HiTabTop自动滚动功能分析与实现
- 1、打造下拉刷新HiOverView视图
- 2、实现下拉刷新HiRefreshLayout
- 3、HiRefreshLayout调试完善
- 4、HiBanner架构设计与ViewPager定制
- 5、打造高通用的HiBannerAdapter
- 6、实现HiBanner的高度定制
- 7、HiBannerDelegate封装与指示器HiIndicator定制
- 1、以架构师角度认识Kotlin
- 2、Kotlin开发环境搭建技巧
- 3、Kotlin必备基础
- 4、Kotlin方法与Lambda表达式
- 5、Kotlin方法进阶
- 6、Kotlin构造方法与继承
- 7、深入理解Kotlin抽象类与接口
- 8、深入理解Kotlin泛型和注解
- 9、让人爱不释手的Kotlin扩展(Extensions)技术探秘与应用
- 10、Kotlin扩展案例
- 11、Kotlin重构HiCircleIndicator
- 12、Kotlin实用技巧
- 1、从开机到SystemServer进程及服务创建流程分析【高能预警】
- 2、Launcher应用启动之进程启动
- 3、ActivityThread源码分析【见微知著】
- 4、View树测绘流程分析
- 5、页面刷新机制分析
- 6、手势分发来源
- 7、Activity任务栈管理
- 8、FragmentTransaction事务执行流程分析【见微知著】
- 9、Fragment页面重叠与新版懒加载
- 10、RecyclerView家族图谱分析
- 11、RecyclerView源码解析【见微知著】
- 12、RecyclerView优化之回收复用机制探秘
- 13、高易用HiDataItem组件封装之需求分析
- 14、高易用HiDataItem组件封装
- 1、架构师该如何选择导航框架
- 2、对比Jetpack Navigation和ARouter的差异
- 3、架构师如何做好技术选型
- 4、Jetpack Navigation架构解析
- 5、Jetpack Navigation原理探秘
- 6、Jetpack Navigation自定义注解处理器
- 7、Jetpack Navigation进阶改造
- 8、ARouter的配置用法
- 9、ARouter编译时原理分析
- 10、ARouter运行时原理剖析
- 11、需求疑难点分析及成果展示
- 12、基于ARouter实现登录拦截与全局降级策略
- 1、多种线程创建方式与对比
- 2、线程优先级核心及应用技巧
- 3、线程状态剖析及四种方法应用
- 4、线程间通信核心
- 5、线程安全的本质
- 6、线程安全之原子类
- 7、线程安全之Synchronized
- 8、线程安全之ReentrantLock案例详解
- 9、线程安全之共享锁排他锁及锁的设计优化
- 10、线程池实现原理剖析
- 11、线程池源码分析
- 12、线程池中线程复用原理
- 13、简洁易用的多线程操作框架HiExecutor封装
- 14、探秘Kotlin协程机制
- 15、Kotlin协程挂起与恢复原理,逆向剖析还原
- 16、Kotlin协程应用
- 17、架构师如何做多线程优化
- 1、android网络编程核心技术
- 2、HiRestful设计思想分析
- 3、HiRestful之方法解析器
- 4、HiRestful之拦截器派发
- 5、从源码到原理剖析Retrofit核心技能 【见微知著】
- 6、为HiRestful添加Retrofit支持
- 7、自定义View之InputItemLayout
- 8、登录模块开发
- 9、注册模块开发
- 10、接口拦截与路由处理
- 11、个人中心模块开发
- 1、HiAdapter搭建首页架构需求及疑难点分析
- 2、HiAdapter能力升级
- 3、HiRecyclerView风骚实现分页预加载
- 4、基于HiRecyclerView架构通用列表
- 5、首页模块导航与内容需求及疑难点分析
- 6、首页模块顶部导航栏与内容区域联动
- 7、基于约束布局ConstraintLayout搭建列表Item
- 8、首页模块列表数据绑定
- 9、首页列表性能优化
- 10、用户体验优化之沉浸式
- 1、侧边导航菜单HiSlider样式定制
- 2、HiSlider数据适配
- 3、SpanSizeLoopUp不同寻常实现分组思路
- 4、SpanSizeLookUp不同寻常实现分组效果
- 5、ItemDecoration实现分组标题
- 6、基于HIAbsListFragment快速构建商品列表页
- 7、设计开发者支撑工具HiDebugTool并支持Https网络调试能力
- 8、Https抓包原理与弱网络场景模拟
- 1、Jetpack架构组件库解析
- 2、Lifecycle组件架构实现原理
- 3、LiveData组件架构实现原理
- 4、实现不用反注册,不会内存泄露的消息总线
- 5、ViewModel实例复用原理新解析
- 6、SavedState组件数据存储与复用原理全解析
- 7、Room架构组件原理解析
- 8、Room+LiveData监听数据库数据变更刷新页面原理分析
- 9、基于Room封装APP离线缓存框架HiStorage
- 10、基于HiStorage拓展HiRestful实现接口缓存能力
- 11、首页缓存适配和ViewPager刷新调优
- 12、基于LiveData实现登陆结果通知和账户信息管理
- 1、Android消息机制之消息生产
- 2、Android消息机制之消息消费
- 3、Android消息机制之ThreadLocal
- 4、Android类加载之双亲委派
- 5、Android类加载之高阶面试题与源码分析
- 6、走进Android热修复世界
- 7、Tinker的实战应用
- 8、Tinker实现原理之补丁全量合成流程分析
- 9、Tinker实现原理分析之动态加载dex实现热修复流程分析
主流架构演进与项目架构改造
- 1、走进Kotlin x Java 设计模式
- 2、深入理解Kotlin 与 Java 单例模式
- 3、别有洞天的Kotlin装饰器模式
- 4、深入理解Kotlin 与 Java 建造者模式
- 5、深入理解Kotlin 与 Java 适配器模式
- 6、如何利用设计模式进行App架构的设计
- 7、通知列表接口系分与资源获取工具HiRes封装
- 8、通知列表模块实现
- 1、如何理解架构设计
- 2、MVC和MVP分析及手写实现
- 3、传统MVVM分析及手写实现
- 4、Jetpack下的MVVM及手写实现
- 5、DataBinding高频用法及传经送宝
- 6、基于MVVM模式重构首页模块
- 7、从架构师角度理解模块化、组件化
- 8、单一工程、模块化、组件化、插件化及容器化分析
- 9、基于模块化重构工程结构
- 10、从插件化到回归Android标准化
- 11、组件化实战封装HiNavigationBar
- 12、HiNavBar设计及实现思路分析
- 13、HiNavBar实现动态添加按钮&解决标题溢出
- 1、高易用高扩展搜索组件HiSearchBar封装
- 2、HiSearhView之思路讲解与初始态实现
- 3、HiSearhView之关键词实现
- 4、搜索模块功能细分与架构搭建
- 5、基于MVVM实现实时搜索与商品搜索状态
- 6、历史搜索状态设计与实现
- 1、走进IOC架构世界
- 2、Hilt DI库高频用法传经送宝
- 3、Hilt运行时依赖注入实现原理分析
- 4、AmountView通用计数器组件设计与实现
- 5、设计与实现下单模块
- 6、拓展HiRestful支持PUT,DELETE请求
- 7、基于Hilt实现收货地址模块
- 8、城市选择器组件结构设计实现思路分析
- 9、城市数据预处理与持久化
- 10、基于HiStorage实现城市选择器组件
- 11、地址列表页设计与实现
- 12、城市选择组件HiCity封装
- 1、如何高效的构建渠道包?
- 2、Gradle项目构建基础
- 3、Gradle项目构建之Task任务
- 4、Gradle 插件开发之Transform
- 5、Javassist字节码插桩技术实战
- 6、发布Gradle插件到JCenter
- 7、基于Jenkins实现持续集成与自动打包、发布及通知
- 8、Android library 发布与JCenter
- 9、v1、v2签名原理
- 10、直面底层还原apk打包流程
- 11、APK安全的攻与守
混合架构设计与开发
- 1、架构师该如何高效的学习Flutter
- 2、Flutter开发环境搭建及常见问题
- 3、走进Flutter的Widget世界
- 4、如何进行Flutter布局开发
- 5、轻松掌握Flutter调试技巧
- 6、基于http库封装Flutter网络层框架
- 7、基于dio扩展网络层框架并编写单元测试
- 8、推荐模块接口系分与Dao层设计
- 9、推荐模块结构框架搭建
- 10、推荐模块Item实现
- 1、Flutter框架和原理剖析
- 2、探析Flutter渲染机制之三棵树
- 3、如何在原有的项目中集成Flutter?
- 4、复杂场景下的Flutter混合架构设计【秒开性能0损耗】
- 5、Flutter与Native通信原理剖析
- 6、基于MethodChannel实现Flutter与Naitive通信架构HiFlutterBridge
- 7、Flutter推荐模块集成
- 8、基于Flutter实现主流的首页架构
- 1、Flutter侧鉴权功能实现与登录态同步
- 2、收藏模块接口系分与Dao层设计
- 3、收藏模块结构框架搭建
- 4、收藏模块Item实现
- 5、复杂场景下Flutter嵌入Native组件实战
- 6、Flutter Native组件的通信功原理与实现
- 7、playground模块设计
- 8、Flutter性能调优
- 9、Flutter引擎加载机制与热更新方案探索
- 10、Flutter热更新方案实现与应用
- 1、架构师该如何高效的学习RN
- 2、RN开发环境搭建及常见问题
- 3、RN自定义组件封装
- 4、轻松掌握RN调试技巧
- 5、基于fetch+promise库封装RN网络层框架
- 6、浏览历史模块接口系分与Dao层设计
- 7、浏览历史模块结构框架搭建
- 8、浏览历史模块Item实现
- 9、走进RN社区和其常见组件
- 1、RN框架和原理剖析
- 2、如何在原有的项目中集成RN?
- 3、RN混合架构开发实战技巧【传经送宝】
- 4、RN与Native通信原理剖析
- 5、基于NativeModule实现RN与Native通信架构HiRNBridge
- 6、RN历史浏览模块集成
- 7、RN引擎预加载管理框架开发
- 8、Native UI组件开发实战
- 9、Native UI组件的事件通信指南
- 10、RN性能调优
稳定性及性能调优
- 1、作为架构师该如何提升应用的稳定性?
- 2、如何提升应用代码质量?
- 3、建立有效的Code Review机制
- 4、Crash监控与排查
- 5、Java混淆代码还原
- 6、如何做好Crash防护来实现一个“永不”Crash的App
- 7、Native Crash监控
- 8、addr2line堆栈还原
- 9、HiDebugTool能力扩展
- 1、性能优化的重要性及意义
- 2、启动优化之耗时统计&启动白屏优化
- 3、从0到1设计实现异步并发启动框架TaskFlow
- 4、TaskFlow筑基之Task任务
- 5、TaskFlow合体之Project任务组
- 6、TaskFlow灵魂之TaskRuntime调度器
- 7、TaskFlow涅槃之TaskRuntime依赖树检查
- 8、TaskFlow大乘之TaskFlowManager启动器
- 9、页面加载耗时优化实战
- 10、页面滑动流畅度FPS优化实战
- 11、内存泄漏排查定位
- 12、不合理大图检测插件
- 13、如何进行APK包大小瘦身
- 1、AndroidX升级适配的必要性
- 2、如何在老项目中使用AndroidX
- 3、升级适配常见问题解决
- 4、升级之后如何配置混淆
- 5、实战老项目升级适配
- 6、折叠屏适配实战
- 7、Android Q暗黑模式适配
- 8、新一代组件化动态化方案App Bundle使用场景和优势
- 9、AppBundle动态交付原理
- 10、AppBundle文件结构分析
- 11、使用Bundletool测试AppBundle
- 12、AppBundle拆分注意事项
- 13、架构师必须要掌握的权限治理
BS架构和CS架构的区别
C/S架构的优缺点:
*优点:
1.客户端因为是独立设计,所以可以实现个性化
2.因为客户端是需要进行安装的,可以不需要重复安装和加载
3.因为客户端是独立开发的,所以有能力对客户端进行安全设计
4.如果遇到不同的操作系统,需要为不同的操作系统各开发一套客户端
*缺点:
1.因为客户端是不需要重复安装,所以用户可以不更新与升级,增加了维护成本。
2.因为需要开发客户端和服务器两套程序,所以开发成本会增加
B/S架构的优缺点:
*优点:
1.因为B/S架构具备通用性,所以开发成本较低。
2.因为不需要安装客户端,所以客户端不需要进行升级,只需要更新后台代码即可实现所有客户端的更新。
3.因为B/S架构多用WEB网页进行开发,所以增、删功能也非常容易,只需要修改网页即可完成
*缺点:
1.耗流量,每次都要加载全部的内容(不过有缓存可以降低流量损耗)
2.因为没有独立的客户端,所以无法实现个性化(通过账号体系可以实现)
3.因为没有独立设计客户端,所以客户端难以实现安全控制(HTTPS、控件)。
4.难以实现特殊的操作(删本地文件),所以所有的杀毒软件都是C/S架构的。
B/S架构更多的时候是使用了HTTP协议、而C/S架构更多的时候使用的WinSocket协议(TCP、UDP)
以上是关于客户端架构的主要内容,如果未能解决你的问题,请参考以下文章