通用的 Android 客户端架构设计 (mp.weixin.qq.com)

【简介】

主要从以下几个方面进行设计:MVP设计风格、整体架构、日志系统、网络系统、本地存储、Test模块.

点击查看原文 >>

@code小生 2018-07-15 22:22 / 0个评论
赞过的人: @技术头条 @code小生
要不要再学学下面的文章?
IM服务器设计-如何解决消息的乱序 (www.codedump.info)
IM消息需要面对的另一个难题:如何保证收到的消息不乱序。下面先展开看看要解决这个难题有哪些障碍。
by @技术头条 2024-03-21 23:00 查看详情
IM服务器设计-网关接入层 (www.codedump.info)
IM服务系列文章: IM服务器设计-基础 IM服务器设计-消息存储 网关接入层负责维护与客户端之间的长连接,由于它是唯一一个与客户端进行直接通信的服务入口,
by @技术头条 2024-03-21 23:00 查看详情
美团大规模KV存储挑战与架构实践 (tech.meituan.com)
KV 存储作为美团一项重要的在线存储服务,承载了在线服务每天万亿级的请求量,并且保持着 99.995% 的服务可用性。在 DataFunSummit 2023 数据基础架构峰会上,我们分享了《美团大规模 KV 存储挑战与架构实践》,本文为演讲内容的整理。文章主要分为四个部分:第一部分介绍了美团 KV 存储发展历程;第二部分分享了内存 KV Squirrel 挑战和架构实践;第三部分阐述了持久化 KV Cellar 挑战和架构实践;最后一部分介绍了未来的发展规划。希望这些内容对大家有所帮助或启发。
by @技术头条 2024-03-21 22:53 查看详情
IM服务器设计-消息存储 (www.codedump.info)
这部分专门讲述IM消息存储的设计。消息存储的难度在于,要考虑以下的场景:

1、离线消息存储。即发送消息时对方不在线该怎么处理。
2、单聊、群聊消息。
3、随着用户量越来越大,应该以后如何扩展。
by @技术头条 2024-03-13 13:33 查看详情
IM服务器设计-基础 (www.codedump.info)
IM做为非常经典的服务器系统,其设计时候的考量具备代表性,所以这一次花几个篇幅讨论其相关设计。

主要内容相当部分参考了 一套海量在线用户的移动端IM架构设计实践分享一文,在此之上补充了更好的消息存储设计以及集群设计。

by @技术头条 2024-03-13 13:32 查看详情
被忽视的暗面:客户端应用漏洞挖掘之旅 (gh0st.cn)
客户端应用漏洞是许多人在进行漏洞挖掘和安全测试时容易忽视的领域。随着技术的更迭和攻防手段的升级,客户端应用漏洞也逐渐出现在大众视野中(APT攻击、攻防赛事等等),在本次议题中,我们将重点关注PC侧的客户端应用程序,如即时通讯、远程服务、视频软件等应用,探索其中存在的漏洞和潜在的安全风险。
by @技术头条 2024-01-17 23:06 查看详情
应用获取客户端真实IP (jokerbai.com)
背景信息因为产品需要,要在应用端获取到真实的客户端IP,由于应用前面经过了多次代理,所以默认情况下是获取不到真实IP的。基本概念在实现之前,先简单了解一下常用来获取IP的几个header。
by @技术头条 2023-11-30 23:32 查看详情
深入 Android 可信应用漏洞挖掘 (paper.seebug.org)
重点介绍了主流厂商的TEE环境中的TA实现以及常见的攻击面并分享了一些针对TA做安全研究的技巧与方法,比如如何尽可能快速的拥有一台具备Root权限的手机用于研究与测试。同时还介绍了如何实现对TA进行模拟以及使用到的Fuzzing技术和部分调优策略。
by @技术头条 2023-10-30 23:40 查看详情
Android|集成 slf4j + logback 作为日志框架 (mazhuang.org)
最近在做一个 Android APP 的日志改造,我搜了一下「Android 日志框架」,大多网友推荐的是 logger、timber、xLog 等等,看着也不错。不过出于几年后端开发的经验和习惯,我进一步了解,发现熟悉的 log4j 和 logback 在 Android 上也有人做过适配,所以最终决定使用 slf4j + logback,以在前后端开发中取得一致的体验。
by @技术头条 2023-10-30 22:56 查看详情
真实世界的Go设计模式 - 对象池模式 (colobu.com)
对象池(object pool pattern)是一种设计模式。一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的用户可以从池子中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁它。这是一种特殊的工厂对象。

若初始化、实例化的代价高,且有需求需要经常实例化,但每次实例化的数量较少的情况下,使用对象池可以获得显著的效能提升。从池子中取得对象的时间是可预测的,但新建一个实例所需的时间是不确定。

另外,利用对象池,我们可以重用对象,减少对象的分配,对于垃圾回收的编程语言,也是一种提高性能的手段。
by @技术头条 2023-09-10 23:38 查看详情