【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡 引言本次二开布局没有变,但是下一次整体布局会有变,不过本次开发发现朋友圈跳转功能的流程步骤也做了一定的变化。原生项目复杂就复杂于就算一个颜色的改动可能都比较麻烦,不像普通web项目或者vue项目,其次原生项目安卓Android的环境配置是很复杂的,很多人 第一步可以搞一周 甚至一个月都搞不成功,再次之前说了可以用trae辅助我们编程,但是真正的开发和调试还是得Android studio 离开Android studio 原生安卓项目也是没法运行的,至少trae满足不了,vs要满足也比较麻烦,本篇改颜色和主页图标,本项目代码 毫不夸张的说 就是WhatsApp的初期代码,历史大概有15年了。 本篇【05】有一定的布局调整,按道理是UI没理解意思,毕竟第一次设计的版是预算不够的设计版,是不改布局的情况下的。 项目技术栈优雅草蜻蜓I即时通讯水银版 - 技术栈列表概述:本项目是一个基于微服务架构的现代即时通讯解决方案。2025年8月进行了大规模技术升级与重构,并于8-9月期间集中进行兼容性调整与Bug修复,旨在提升系统稳定性、可维护性和未来扩展性。 一、 移动客户端 (Android)- 开发语言: Java
- 开发模式: 原生开发
- 兼容性底座: 最低支持 Android API 5 (Android 5.0)
- 核心框架升级:
- 项目已从原生的 Android Support 库全面升级到 AndroidX,以获得更好的性能和维护性。
- 推送集成:
- 集成 极光推送 (JPush) SDK,用于处理应用在后台或进程被杀时的消息离线推送。
二、 服务端 (Backend)- 核心语言: Java
- 主要框架: Spring Boot
- 用于构建和编排所有业务逻辑和业务流程,提供RESTful API接口,是连接各个微服务的核心枢纽。
- JDK 版本:
- 当前版本: JDK 1.8
- 未来计划: 已有明确计划升级至 JDK 17(因时间安排暂未执行,旨在获得新的语言特性和性能提升)。
三、 微服务与基础设施 (Microservices & Infrastructure)本次升级的核心是将单体服务拆解为独立、可扩展的微服务。 即时通讯服务: - 协议: XMPP (Extensible Messaging and Presence Protocol)
- 实现: 独立部署的 XMPP 服务,负责最核心的点对点、群组聊天等实时消息分发。
消息回执服务: - 实现: Tigase Server 7.1.3
- 职责: 专门处理消息的已发送、已送达、已阅读等状态回执,确保消息的可达性。
消息队列服务: - 组件: RocketMQ 4.3.2 (rocketmq-all-4.3.2)
- 职责: 处理服务间的异步通信、流量削峰、任务队列等,保证系统的高可用和高性能。
上传服务: - 实现: 独立制作的 Upload 服务
- 职责: 专门处理图片、文件、语音等附件的上传、存储和管理,与主业务逻辑解耦。
推送服务: - 实现: 独立制作的 Push 服务
- 集成: 内部封装了 极光推送 SDK,负责将消息通过系统通道推送给Android客户端。
缓存与队列服务: - 组件: Redis
- 职责: 用作高速缓存,提升访问速度;同时处理临时消息队列和会话状态存储。
四、 数据存储 (Data Storage)主数据库: - 组件: MongoDB
- 版本升级: 已从旧的 3.4.0 成功升级至 4.0 版本。
- 用途: 存储非结构化的聊天记录、用户动态、群组信息等海量数据,利用其灵活的Schema特性适应IM业务的快速迭代。
关系型数据库: - 可能选项: MySQL8.0 下一步做改进的。
- 可能用途: 存储用户账户、好友关系、群组列表等结构化数据。
总结与技术亮点- 架构现代化: 从可能存在的单体架构成功转型为微服务架构,服务间通过 RocketMQ 和 HTTP API 进行通信,解耦彻底。
- 技术债务清理: 积极处理历史技术债务,包括 AndroidX 迁移和 MongoDB 大版本升级,为未来开发铺平道路。
- 专业化分工: 每个核心功能(通讯、上传、推送、回执)都由独立服务承担,职责单一,更易于扩展、部署和故障排查。
- 成熟组件选型: 选用 RocketMQ, Redis, Tigase 等经过大规模实践验证的中间件,保证了系统底层的稳定性和可靠性。
- 明确的发展规划: 已有清晰的 JDK 17 升级计划,显示出团队对技术演进的前瞻性。
详细步骤解析消息页面这几个选项目前是
前端布局:媒体对象(Media Object)布局 这种布局在前端开发中被称为媒体对象(Media Object)布局,由Nicole Sullivan在2010年提出。它是一种常见且实用的模式,特别适合展示图文内容列表。 这个布局知识可以单独去搜索相关前端知识,
|