花了一个星期, 终于实现出一个简易的手写输入法。 见图

整个过程涉及到了一系列自己不熟悉的东西,为此走了些弯路,其中:

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平台已有的接口。

涉及到屏幕的更新, 笔迹的绘制和清除。

创建一个透明窗口来简化处理这些, 不知可行否, 都需要验证。

手写输入法实现过程中的问题相关推荐

  1. 小程序执行运行过程原理_活性污泥法基本原理、净化反应过程、工艺类型和运行过程中存在的问题...

    ↑ 点击上方"表面活性剂平台"关注我们 活性污泥法实质上是天然水体自净作用的人工强化,能从污水中去除溶解态和胶体态的可生物降解有机物以及能被活性污泥吸附的悬浮固体和其他物质,具有对 ...

  2. 解决回归过程中内生性问题的方法之一-工具变量法

    OLS是常用的回归方法之一,那么OLS在使用过程中最重要的一个前提是解释变量与扰动项不相关,解释变量可以理解为我们研究时的自变量,扰动项可以理解为我们研究时与自变量独立的控制变量,如果出现解释变量与扰 ...

  3. 卷积法求解系统的零状态响应_求解LTI系统零状态响应过程中的解法辨析

    求解 LTI 系统零状态响应过程中的解法辨析 马 丁 [摘 要] 摘要:利用卷积计算 LTI 系统的零状态响应时,单位冲激响应 h ( t ) 的求解是其中至关重要的一步.但用冲激平衡法及傅里叶反变换 ...

  4. java 方法执行结束局部变量释放_JAVA-方法在执行过程中,JVM的内存分配和变化情况,栈(stack)的情况浅析...

    方法在执行过程中,在JVM中的内存是如何分配的?内存是如何变化的? 一.方法只定义不调用,是不会被执行的,并且在JVM中也不会给该方法分配"运行所属"的内存空间.只有在调用这个方法 ...

  5. 电脑手写输入法_百度输入法“手写输入”为什么不是老年人的专利?AI的进步...

    智能手机的不断普及,也让人机交互取得了很快的发展,就从大家一下常用的设计输入法来看,效果也是越来越智能化了,一个输入法的自我修养选择gboard的原因有很多种,这也是作为一款我国国民输入法的第一要素, ...

  6. 网络营销专员浅析如何面对网络营销过程中的降权处理

    在企业网站进行网络营销过程中通过各种优化方式以达到营销目的期间,没有任何站长可以确保网站在运营优化期间一次降权情况都不发生的,其实发生降权问题并不可怕,可怕的是从没有处理好降权问题,就会影响后续网站运 ...

  7. Java读取文件流用什么对象_使用Java IO流实现对文本文件的读写过程中,通常需要处理下列( )异常。_学小易找答案...

    [论述题]请根据第一次平时作业的选题,结合第二次课内容,自拟一个论文提纲. [单选题]在 switch ( expression )语句中, expression 的数据类型不能是 ( ) [单选题] ...

  8. matlab生产计划问题,用MATLAB解决综合生产计划编制过程中的优化问题

    第 18卷第 3期 2005年 6月 常 州 工 学 院 学 报 Journal of Changzhou Institute of Technology Vol. 18 No. 3 Jun. 200 ...

  9. 提取过程_大米多肽提取过程中如何应用膜分离技术呢?

    大米多肽是大米蛋白质经蛋白酶作用后,再经特殊处理而得到的蛋白质水解产物,大米多肽主要含有肽分子混合组分及少量的游离AA.糖类.水份和无机盐等.大米多肽可以调节人体的生长.发育.免疫调节和新陈代谢,使人 ...

最新文章

  1. R语言ggplot2可视化:可视化人口金字塔图、人口金字塔显示不同性别不同年龄段的人口数,是了解人口组成的最优可视化方法、人口金字塔图可以用来表示按体积排序的群体的分布、形成漏斗结构
  2. 机器学习中目标函数、损失函数、代价函数之间的区别和联系
  3. 4种方法可以缓解网络瓶颈
  4. hdu4554 A Famous Game 概率期望
  5. [转载]什么是 Design Hackathon?
  6. VUE的导入(HelloWord)
  7. 图像局部特征(十八)--BOW
  8. 北京理工大学计算机考研真题,北京理工大学计算机专业基础历年考研真题汇编附答案...
  9. 云课堂计算机教室怎么使用,锐捷“云课堂2.0”焕发计算机教室青春活力
  10. 中国伺服电机市场现状调查与投资战略分析报告2022-2028年
  11. 安卓手机实现wifi中继、WiFi信号增强
  12. linux实验2 vi编译器的使用
  13. java水果超市管理系统
  14. 国外优秀免费空间不完全名单
  15. JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK11特性讲解】
  16. 计算机应用项目中 属于科学计算应用领域,下列计算机应用项目中,属于科学计算应用领域的是(    )...
  17. c语言弹出窗口的函数名,用C语言做弹出窗口
  18. Java 数据交换格式反射机制SpringIOC原理分析
  19. 基于php的企业公文流转审批系统-计算机毕业设计
  20. 初识QT(十二)——VS中使用Qt方法详解

热门文章

  1. Linux 运行级别
  2. SDN软件定义网络之流表及其组成
  3. python画十字_如何在pyqtgraph中绘制十字线和绘制鼠标位置?
  4. 关于android双进程守护-后台持续定位功能+项目IM中写到自己的即时通讯
  5. MRPII/ERP实施和应用十大忠告(转载)
  6. Linux后台开发系列之「13.标准 IO 库」
  7. python找不到scripts文件夹_Python目录下中没有Script文件夹
  8. JavaScript触发a标签事件
  9. 爬取某音乐163平台搜索单曲及专辑音乐
  10. 函数组:SCMS_CONV 字符内码转化