手写输入法实现过程中的问题
来源:互联网 发布:java视频上传 编辑:程序博客网 时间:2024/04/28 04:52
花了一个星期, 终于实现出一个简易的手写输入法。 见图
整个过程涉及到了一系列自己不熟悉的东西,为此走了些弯路,其中:
Android编译系统
手写引擎用的是汉王, 汉王整个是用汇编实现, 这里采用的编译方法是先将汉王编程静态库,再编成动态库。
Android平台简化了Makefile的编写,写编译的脚本比较容易, 其中也碰到一些问题可以看看
http://blog.csdn.net/linux_lyb/archive/2009/05/07/4156572.aspx
JNI(JAVA本地接口)
由于引擎非java实现, 引擎的使用只能是通过调用本地接口来完成。 JNI不复杂, 只是一开始没有接触过, 在对象的路径、名称、函数定义等基础上出现人为失误,导致调用不成功。
java数据类型
返回识别的结果, 我定义了2种接口, 返回jstring和jbyteArray, 其中jbyteArray的赋值一直理所当然的以为用memcpy, 结果是必须使用java提供的接口, 类似(*env).SetByteArrayRegion(result, 0, byteSize, (jbyte*)&retbuf[0]);
编译知识
有一个问题说出来比较丢脸, 最初在编译的过程中,一直找不到汉王引擎函数的定义,链接不成功。起初一直以为问题出在编译参数、编译器版本、汇编语法上, 忘了留意到一个细节, JNI由c++实现, 最后头文件里加上extern "C"解决。
下一步: 全屏手写输入的实现, 主要是:
1、Touch事件的获取
直接从窗口管理器获取或者从底层的事件服务里获取。
为了让在全屏手写的时候, 其它窗口的控件也能收到Touch事件, 必须将非手写需要的事件回送。
2、笔迹的绘制
直接写屏或者使用android平台已有的接口。
涉及到屏幕的更新, 笔迹的绘制和清除。
创建一个透明窗口来简化处理这些, 不知可行否, 都需要验证。
- 手写输入法实现过程中的问题
- 设计中的手写识别(输入法)思路 -- 上篇
- 设计中的手写识别(输入法)笔画--中篇
- 设计中的手写识别(输入法)思路 -- 上篇
- 设计中的手写识别(输入法)笔画--中篇
- 设计中的手写识别(输入法)思路 -- 下篇
- 中文手写输入法闪退问题
- 输入法语言实现过程
- wince手写输入法以及软键盘拼音输入法的问题
- 中文手写输入法在iOS8.1上的崩溃问题
- 关于Wince6安装第三方中文手写输入法的实现
- 手写JAVA NIO实现Socket通信及其过程中注意的问题
- WinCE 调试某手写输入法时遇到的加载手写库失败的问题
- 手写输入法截图
- 蒙括手写输入法
- 百度手写输入法
- WinCE手写输入法
- WinCE键盘输入法,WinCE输入法切换,WinCE中文手写输入法,实现字母,数字,中文输入快捷切换
- regulate my codes
- 深入“typedef"
- 谱尼测试提供食品检测
- 流水线&超流水线
- 《asp.net夜话》一书视频ASP.NET夜话视频1-17章下载(ASP.NET夜话2009年5月9日更新)
- 手写输入法实现过程中的问题
- 需要做的 工作
- 右键添加CMD命令
- 十个简单好用的设计技巧
- SHMenuBar学习整理
- C#组件开发
- 备份OA数据
- Oracle数据库的闪回恢复区及多归档路径的设置
- 注册了 很开心