程序聚合 软件案例 基于Rime的Android输入法

基于Rime的Android输入法

2025-09-07 22:59:43
行业:生活服务
载体:安卓APP
技术:Kotlin、Android Jetpack、Android SDK、AndroidX

业务和功能介绍

市面上的输入法虽然功能丰富,但往往夹杂大量花哨设计,且存在隐私收集问题,难以满足程序员对简洁、高效和可控性的需求。作为开发者,我有明确的词库修改需求和协议抽象偏好,而现有输入法几乎不支持用户对输入逻辑进行深度定制。为此,我开发了该项目——一款面向程序员的 Android 输入法,基于 Rime 引擎构建,提供了更大的自由度,以及更少的无关功能。
- 拼音输入与分词支持:支持基础拼音输入,可手动添加分隔符进行分词
- 用户词库管理:支持搜索、删除、排序(按名称升序),并优化了词库加载与编辑逻辑
- 剪贴板功能:具备剪贴板编辑器,支持删除单条记录、清空剪贴板,并可设置条目上限
- UI 使用 Jetpack Compose 构建:界面响应式、主题统一,视觉一致性强
- 键盘增强功能:支持三态 Shift 键、全键盘触摸振动、自动翻页提示、实体键盘适配
- 光标控制面板:支持选择、复制、剪切、粘贴、移动光标等高级操作,仅在有选中文本时启用
- 二级功能按键:支持快速输入常用符号(如括号、引号、运算符等),可通过配置文件自定义绑定行为

项目实现

1. 这个项目是我一个人独立完成的,一年前开始开发的,至今仍在维护。我用 Kotlin 编程语言和 Jetpack Compose 来构建界面,整个输入法的操作界面都是我自己设计和实现的。为了支持拼音输入,我还集成了 Rime 输入引擎,并通JNI让它能在 Android 上正常运行。
2. 项目亮点:
使用 Jetpack Compose 构建输入法界面:在 Android 输入法框架中使用 Compose 是非常少见的做法,不仅提升了界面响应速度和一致性,也让 UI 更易维护
支持二级功能按键自定义:用户可以通过配置文件自由定义符号输入、快捷操作等行为,实现高度个性化的输入体验
突破 Rime 限制,实现词库编辑功能:通过修改 Rime 源码,绕过原有限制,实现了用户词库的搜索、删除与排序功能,满足了高频用户的词条管理需求
3. 项目难点
将 Compose 应用于输入法服务:输入法属于系统级组件,Compose 的生命周期与输入法框架不完全兼容,需要额外处理焦点、状态恢复等问题
模块间状态同步复杂:前端界面、底层引擎、设置页面与输入法服务之间需要实时同步状态,我使用了 EventBus 来实现跨模块通信,确保数据一致性
性能优化过程曲折:项目初期存在明显卡顿,我尝试减少过渡绘制但效果有限。最终发现是 librime 的日志功能导致性能瓶颈,关闭日志后才彻底解决卡顿问题

示例图片视频


古城
1天前活跃
方向: 爬虫/脚本-爬虫/脚本、移动端-安卓、
交付率:100.00%
相似推荐
小六免费网
1,目前分为短剧类,游戏类,游戏补丁类,常用工具,还有小六工具这几个模块。 2,游戏主要是分享一些转载来的游戏,不存在侵权行为,如有侵权,立刻删除。 3,常用工具主要是装机工具,还有编辑工具等日常用到的工具,网站目的只是方便用户去下载,因为其他网站下载有很多广告,我们主要为了让用户能够无广告的去下载常用软件。 4,主要是自研工具让大家免费使用,将来会研发更多的工具放上去,目前正在完善中。
H5游戏聚合服务
1.前端基于CocosCreator,服务器基于NodeJS,采用WebSocket通讯; 2.H5前端与游戏服务器的状态同步,即前端不参与任何数据计算,完全保证用户数据安全性 3.H5页面通过url参数及APP提供的“桥”与APP直接交互,游戏服务器与APP服务器使用HTTP(S)请求交互,涉及白名单,请求压缩等功能; 4.游戏内容,根据不同的游戏类别,提供不同的游戏内容; 5.Redis缓存,实现游戏运行时数据的热更新。
u3d开发的AVG文字冒险游戏
1.AVG功能 2.小的集卡战斗 3.小游戏合集 AVG主要是文字冒险,包括对话,角色头像,互动演出等等 集卡战斗是卡牌战斗的设计方式,类似宝可梦的战斗舞台 小游戏包括连连看,记忆力挑战等,主要是为了获取游戏内资源
godot开发的多平台抽卡小游戏-水浒抽卡模拟器
主要有几个玩法: 开卡收集:不同渠道(小卖部、文具店、夜市)开卡成本和概率不同,还加了“保底机制”和“闪卡概率”,让抽卡更有期待感。 事件系统:每天会有随机天气和事件(比如父母奖励零花钱、同学找你换卡),会影响掉率或者资源。这让游戏更接近“暑假日常”的氛围。 交易交换:可以跟 NPC 同学交换卡片,模拟当年的操场文化。 图鉴系统:108 将分天罡、地煞两类,每张都有外号,收集满是很有成就感的目标。 生活要素:比如写作业、父母好感度,这些会干扰玩家的收集节奏,让游戏更像“一个暑假的故事”,而不是单纯抽卡。 地图探索(正在迭代):玩家不再点按钮,而是控制角色走到小卖部、夜市、鉴定店,才能触发对应功能,增加了沉浸感。
手游项目核心战斗核心逻辑
实时操作战斗系统包括角色属性系统,技能系统,特效系统等,c++实现主逻辑,lua脚本扩展策划可根据需求增加技能和特效,每局战斗开始由服务器下发伪随机数种子,客户端拿到种子后生产随机数队列,在战斗过程用来决策各种随机事件,战斗过程记录玩家介入操作事件,战斗结束后将战斗结果和玩家介入操作事件上传服务器,然后由服务器随机验证战斗结果。 服务器和客户端都是c++实现,所以战斗模块是由同一份代码实现。 这个想法以及相关实现已经申请国家发明专利。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服