SOUI官方论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 179|回复: 4

启程输入法架构

[复制链接]

11

主题

177

帖子

635

积分

版主

Rank: 7Rank: 7Rank: 7

积分
635
发表于 2019-10-30 14:34:40 | 显示全部楼层 |阅读模式
启程输入法包含很多模块,核心就是两个:一个输入法接口,一个是输入法击键逻辑处理。
输入法接口包含IME和TSF两种,代表微软2代输入法。输入法接口是在编辑器中打开输入法时需要加载的模块,是一个导出特定接口的DLL。
由于编辑器程序可能是32位也可能是64位,因此输入法接口DLL也要对应的有32位和64位版本。
一般的输入法都是把击键处理直接放到这个输入法接口DLL中。击键处理不仅要处理击键逻辑,还要负责加载皮肤,显示界面等。
把这些代码全部放到输入法接口里,优点是由于都在同一个模块处理起来比较简单。
但缺点更多:
1、输入法接口模块会很大,4份输入法接口都要增大。
2、输入法崩溃后,会导致宿主进程崩溃。这是最大的问题。现在输入法逻辑都很复杂,随便一个BUG都可能导致用户的工作全部作废。
启程输入法的输入法接口只做最简单的按键转发,所有逻辑都在服务进程里处理。
这样的好处首先是输入法接口功能最小化,逻辑简单,升级也通常不需要升级这些接口,稳定性好,不容易崩溃。
其次就是所有界面相关的逻辑都在服务进程,服务进程只有一份,内存占用,磁盘占用都更少。
当然也有缺点:
启程输入法的服务进程默认是由输入法接口来启动的。在部分程序中(比如Edge),如果一个输入法没有经过签名,这个输入法是不允许在浏览器中启用第三方进程的。所以启程输入法在Edge浏览器中如果服务之前没有打开将不能使用。

1

主题

7

帖子

56

积分

24:00金丹期

Rank: 2

积分
56
发表于 2019-10-30 15:12:12 | 显示全部楼层
对于启程又有了更深入的了解,会越来越好的,加油!!

251

主题

561

帖子

2906

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2906
发表于 2019-10-31 11:40:55 | 显示全部楼层
学习大佬理念,期待输入法做的更上一层楼

251

主题

561

帖子

2906

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2906
发表于 2019-10-31 11:41:57 | 显示全部楼层
支持任意码表吗?可在小拆五笔中推广一波,小拆五笔是外挂在百度五笔上的,理念是追求极限速度

11

主题

177

帖子

635

积分

版主

Rank: 7Rank: 7Rank: 7

积分
635
 楼主| 发表于 2019-10-31 14:15:52 | 显示全部楼层
admin 发表于 2019-10-31 11:41
支持任意码表吗?可在小拆五笔中推广一波,小拆五笔是外挂在百度五笔上的,理念是追求极限速度 ...

一般的码表都支持,不知道它的码表有什么特别的没有。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|SOUI官方论坛 ( 粤ICP备18103663号-2 )

GMT+8, 2019-11-17 18:40

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表