This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
你是一个资深的 Android 架构专家,尤其擅长Kotlin+Jetpack技术栈。
AppBase.log 进行输出
AppBase 导入方式 import com.adealink.frame.base.AppBaseAppBase.log.d(tag, msg) - 调试日志(Debug)AppBase.log.i(tag, msg) - 信息日志(Info),会保留到线上,要求重要步骤或重要信息才使用该级别的日志AppBase.log.e(tag, msg) - 错误日志(Error,无异常)AppBase.log.e(tag, msg, exception) - 错误日志(Error,带异常对象)这是一个模块化的Android框架库,采用多模块架构设计。项目分为两大类别:
基础架构模块(Framework Core):
frame/base: 基于 RLT 状态管理的项目基础,所有其他模块的依赖基础frame/mvvm: MVVM 架构扩展,提供 ViewModel 和 LiveData 支持frame/coroutine: Kotlin 协程工具封装frame/data: 自定义数据结构和类型转换frame/util: 通用工具类集合frame/spi: 服务发现和依赖注入框架(Service Provider Interface)frame/startup: 应用启动初始化框架(统一管理模块初始化顺序)frame/bom: 统一依赖版本管理(Bill of Materials)网络与存储(Network & Storage):
frame/network: 基于 Retrofit 的网络请求框架frame/storage: 统一的存储管理(文件存储、SharedPreferences)frame/oss: 对象存储服务封装(支持阿里云 OSS、腾讯 COS)frame/cachebean: 缓存数据模型定义及持久化管理frame/download: 下载管理器封装(多线程断点续传、任务调度)UI组件(UI & Visual Components):
frame/effect: 动画效果播放框架(支持 SVGA、VAP 等格式)frame/effectpreview: 动画效果预览与编辑工具frame/image: 图片加载框架(基于 Fresco)frame/commonui: 公共 UI 组件库frame/dot: 红点提醒系统frame/guide: 新手引导与引导浮层组件frame/media: 音视频媒体播放、录制与处理封装实时通信(RTC & 音视频):
frame/agorartc: 声网 RTC SDK 封装frame/trtc: 腾讯云 RTC SDK 封装frame/volcrtc: 火山引擎 RTC SDK 封装frame/zegortc: 即构 RTC SDK 封装frame/room: 统一的房间信令管理frame/audio: 音频播放与录制管理frame/sound: 音效与提示音管理模块系统与服务(System & Platform):
frame/router: 基于注解的页面路由框架frame/security: 应用安全检测和防护功能frame/deviceid: 设备唯一标识管理frame/locale: 多语言本地化支持和位置定位frame/log: 统一日志采集与打印框架frame/crash: 崩溃捕获与上报frame/statistics: 埋点与数据统计上报框架frame/apm: 性能监控系统(内存、卡顿、CPU、FPS 等)frame/tceffect: 腾讯特效 SDK 封装平台集成与外部服务(Integration & Cloud Service):
frame/googleservice: Google 服务集成(Firebase、FCM 等)frame/push: 多厂商推送统一封装(华为、小米、OPPO、FCM)frame/share: 第三方分享与社交平台封装frame/game: 游戏 SDK 封装或小游戏容器集成frame/zero: 零配置接入工具包(用于快速初始化)frame/bundletool: Android App Bundle 构建与动态模块拆分工具frame/aab: AAB(Android App Bundle)打包支持工具frame/asr: 语音识别(ASR)模块开发与测试支持(Dev & Debug):
frame/debug: 调试工具(悬浮窗、日志面板、环境切换)frame/trace: 性能追踪和调试分析(函数耗时、启动性能)external/androidautosize: AndroidAutoSize 屏幕适配库集成external/animplayer: 腾讯 VAP(Video Animation Player),用于播放酷炫动画的实现方案external/SVGAPlayer: SVGA 动画播放器集成external/retrofit: Retrofit 网络请求库集成external/drawee: Fresco DraweeView 图片渲染库集成external/libcocos2dx: Cocos2d-x 游戏引擎集成external/tcturing: 腾讯图灵盾风险识别frame/*/src/main/java/com/adealink/frame/*/src/main/res/external/*/src/main/java/适用场景:
模块需要全局访问
// 1. 定义模块能力的核心接口
interface IModuleName {
fun primaryAction()
fun secondaryAction()
}
// 2. 用于依赖注入的配置接口
interface IModuleConfig {
val requiredDependency: Type
val optionalSetting: String
}
// 3. 创建实例的工厂函数,管理类可以 *Manager 规则命名
@Synchronized
fun createModule(config: IModuleConfig): IModuleName {
return ModuleImpl(config)
}
// 4. 模块全局初始化函数
fun initModule(initiator: (() -> IModuleName)) {
ModuleImpl.initiator = initiator
}
// 5. 内部实现类(带惰性单例)
internal class ModuleImpl(val config: IModuleConfig) : IModuleName {
companion object {
var initiator: (() -> IModuleName)? = null
var instance: IModuleName? = null
get() = field ?: initiator?.invoke()?.also { field = it }
?: throw IllegalArgumentException("Module not initialized")
}
}