大肥鱼桌宠是一款跑在 Android 悬浮窗上的“桌面宠物 + 轻量真机助手”玩具级应用——它住你屏幕顶层,平时是一只会动、有很多真人动作素材的小宠物,点它能聊天、能用无障碍读当前屏幕、能被你一句话唤起别的 App。
点击空白处退出提示
大肥鱼桌宠是一款跑在 Android 悬浮窗上的“桌面宠物 + 轻量真机助手”玩具级应用——它住你屏幕顶层,平时是一只会动、有很多真人动作素材的小宠物,点它能聊天、能用无障碍读当前屏幕、能被你一句话唤起别的 App。
大肥鱼桌宠(随抬宠)作为我开发的安卓应用主要拥有5个模块:
1聊天模式,点击悬浮桌宠后出现菜单,可以选择聊天模式,与ta进行聊天,聊天模式接入deepseek模型,用户可以根据需要调节她的语气等
2更换状态,可以更改ta的待机动作
3api,用户可以自行填入api让ta更智能
4工作模式,可以辅助用户在手机上进行一些简单的工作,如:打开某些应用等
5关闭,主要用来终止ta的运行
同时在休闲时她也会自行切换待机动作,让ta不再无趣
技术线
Kotlin + Android
悬浮窗 WindowManager(TYPE_APPLICATION_OVERLAY)
无障碍读屏(AccessibilityService)
纯 ImageView + Handler.postDelayed 状态机做待机/行走(无游戏引擎)
逐帧图片 walk_* + WhiteRemover 位图 flood-fill 去白底
DeepSeek HTTP 文本聊天(填 API Key)
监听通知/剪贴板;QUERY_ALL_PACKAGES 扫已装应用直启
架构
PetService(悬浮服务)
└ PetView 悬浮条
├ ImageView 宠图/帧
├ 单机→对话 / 长按→菜单(读屏/应用▾…)
└ 无障碍→ScreenPool 存前台文本
工具:AppLauncher(对话“打开X”→直启)、WhiteRemover(去白)
AI: DeepSeekClient/PetBrain
亮点
悬浮桌宠能干实事:能动、能聊、能读屏/通知、能唤起应用
“打开微信”口述本地直启,兼容分身/改名
去白保人物的滑动连通填空思路认真、轻量
难点
大多卡权限不卡代码
叠层读屏会把悬浮框自己读进去 → 需按本包剔出
白底贴图无透明通道,“去白不伤人物”纯算法无边完美解
PetView 超大单类 → 改一动三(曾误删方法),可维护性差是隐性坑
无 GMS/无 speech key 时机上中文语音不可救(需引擎 key)
我在项目中负责的
人物动作图、行走帧、去白验证
参数调参,去白效果分级,人设语料,PetView 拆分



评论