锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / Java开源技术 / Android中文输入法实现
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源,禁止转载和任何形式的非法内容使用,违者必究


Android中文输入法实现

前言

本文主要是一些提示,要做具体的开发请到github上找一些例子参考下,锐英源曾经研究过很多例子,这里也对贡献例子的开发者致谢。

要点

• IMF 的结构
• Key Event 的处理过程
• IME 实现
• 使用JNI

Key Event

android.view.ViewRoot
com.android.server.WindowManagerService
IWindowSession openSession(IInputMethodClient, IInputContext)
deliveryKeyEvent() deliveryKeyEvenToViewHierarchy()
view.dispatchKeyEventPreIme()
view.dispatchKeyEvent()

IME实现

创建工程
• IME安装、注册
• 激活输入法
• IME的界面与事件响应
• 发送候选字
• 按键音与振动
• 偏好设置
• 状态栏

IME实现-创建工程

android create project
--package com.redirectin.android.ime
--name iCosta --activity iCosta
--target 2 --path .
• android create avd --target 2 --path /android/avd/goldfish --name goldfish
• emulator -avd goldfish
• ant debug | install | reinstall
Tip: ~sdk1.5\platforms\android-1.5\templates\android_rules.xml

IME实现-界面与事件响应

软键盘
✦ View,与应用GUI完全相同
✦ 系统自带了Keyboard/KeyboardView
• 硬件键盘
✦ IME Service总是拦截键盘事件

Android JNI 编码

JNI可以调用用C++底层,在码表查找上高效处理,节省响应时间。

打包、安装、引用

.so => libs/armeabi
• /data/data/pkg_name/lib/libxxx.so
• java: System.load(“xxx”);

库要安装上,如果不安装,激活输入法会提示该软件停止运行错误。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内