Android 原笔迹手写控件,压感,笔锋不可少!

手写控件相关文章:http://kevinems.com/tag/%E6%89%8B%E5%86%99

本人在好记星平板电脑 N818S 上开发的原笔迹手写控件,压感,笔锋都实现了,笔迹保存,还原,删除,放大,缩小,旋转,移动功能也实现了,控件的API简单易用,可以说是一个比较完善的控件了,并集成到 Framework,小有成就感啊。

当初需求统计,分析是就认定是一个相对复杂的控件,所以前期做了不少工作,后期编码实现的时候相对还算比较顺利。

这是第一次真正意义上遵循了标准的软件开发流程,开发效率果然提高不少。科学的开发方法,事半功倍。

流程大概:

  1. 需求统计
  2. 需求分析
  3. 概要设计
  4. 详细设计
  5. 编码
  6. 测试
  7. 软件交付
  8. 软件维护

平台:好记星 N818S,Android 4.2,汉王电磁屏,电磁笔

笔触效果:钢笔,铅笔,马克笔,毛笔

效果图:

一个终端培训师的作品~~~

PaintView

welcome

继续阅读Android 原笔迹手写控件,压感,笔锋不可少!

原笔迹手写–圆珠笔效果

圆珠笔跟毛笔效果,还是有挺大的区别的。

首先,圆珠笔是硬笔,笔尖有滚珠,硬尖,书写时没有很明显的提、按动作,书写快速,流畅。

所以笔锋变化不能太大,效果也必须有更加笔挺,硬朗的感觉。

下面是我实现的效果,大家觉得如何?

自我感觉笔锋变化还可以再小一点,这个更倾向钢笔了。

SeetaFace2AndroidDemo 扩展,支持 arm64 架构

最近在研究基于 Android 平台的人脸识别,seetaface2 开源算法是知名度比较高的一个,github 上有比较完善的代码,但是推荐的 Android demo 只支持 arm32 平台,研究了一下,编译了 arm64 位的库,方便在目前的主流手机上进行测试。在这里记录一下,有兴趣的可以 github 查看,地址如下:

https://github.com/kevinems/SeetaFace2AndroidDem

Readme:
这是中科视拓开源项目SeetaFace2的android示例

由于模型文件较大,需要用户自己去下载然后放到app模块的assets目录下,或者/sdcard/seeta/model目录下。 记得修改一些环境变量为你自己的配置环境,如ndk、cmake等,祝好运。

====================================================

kevinems: 在原作者的基础上,修改如下,具体可以查看修改记录:

  1. Android Studio 4.0 上编译通过。
  2. 使用重新编译的 seetaface2 的库,并支持 arm64。(原项目没有提供 arm64 库,所以在目前的主流手机上都跑不了)
  3. demo 修改为使用后置摄像头。

Android apex 学习总结

最近对 apex 文件进行了大致的了解,其中主要涉及到安全方面的学习,在这里跟大家分享一下:

  1. apex 是什么?
    Android Pony EXpress (APEX) 是 Android 10 中引入的一种容器格式,用于在较低级别系统模块的安装流程中使用。此格式可帮助更新不适用于标准 Android 应用模型的系统组件。一些示例组件包括原生服务和原生库、硬件抽象层 (HAL)、运行时 (ART) 以及类库。
  2. apex 文件的构成
    apex_manifest.json, AndroidManifest.xml, apex_payload.img,apex_pubkey
    其中我们需要关注的是 apex_payload.img和 apex_pubkey。
    apex_payload.img 是由 dm-verity 支持的 ext4 文件系统映像。各种原生常规文件包含在 apex_payload.img 文件中。
    apex_pubkey 是用于为文件系统映像验签的公钥。
  3. apex 如何生成?
    apex 在 Android 源码编译,需要进行相应的配置,然后编写相关的模块编译文件 Android.bp,最终编译生成 unflatten 的 apex 文件。
  4. apex 文件如何安装?
    通过 packageInstaller 或者 adb 等安装工具安装。
  5. apex 如何验签?
    apex 有两层的签名,第一层,首先 apex 其实也是一种 apk 文件,所以系统会对 apex 整体进行一次签名,签名和验签过程与 apk 一样。
    第二层,apex 中 apex_payload.img的 vbmeta 描述符中包含哈希树,通过 dm-verity 来验签。/system 分区下的 apex 文件通过 dm-verity 保证安全;/data 中的 apex 文件在启动时, 由 apex 服务来进行验签,验签原理与 dm-verity 一致。
  6. 我们的系统支持 apex 更新吗?
    目前 msm8937 的 sdk 中并没有启用 apex 更新功能。启动这个功能需要相关的配置,并重新编译系统。
    而添加支持的方式也很简单,在 {device.mk} 中添加一下语句,同时配置各个服务的 rc 文件,使服务支持 apex 更新。
    $(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
  7. 供应商系统有必要启动 apex 更新支持吗?
    个人认为没必要。apex 目前支持的更新模块主要 Google 核心运行时库,而这些更新更多是由 Google 来做支持。

最近在线教育有点火

最近由于新冠肺炎疫情的影响,学校无法按时正常开学,在线教育就火起来了。没办法啊,减少接触,只能选择在线教育了。无奈。

在线教育相关的在线课堂,电子书包等项目,也催生了对手写技术的需求,最近就有不少人跟 Kevin 打听原笔迹手写的相关技术。

但愿疫情早日过去,大家可以放心地外出游玩。武汉加油,深圳加油!


读书笔记:深入理解Android卷I

闲来无事,重新系统地学习一下 Android 系统的整个框架,《深入理解Android卷I》这本书之前貌似有看过,但是那时对 Android 的理解尚浅,有很多地方都没有理解,现在重读,相信一定能对 Android 系统原理有更加深入的理解,“学而时习之,不亦说乎”。

书籍的具体章节,这里就不重新码字了,有兴趣的可以自己看看。这里只是记录自己读书的一些新的发现以及心得。

虽然这本书的内容是居于 Android 2.2 的,但是 Android 的很多编程理念,原理还是相通的。

继续阅读读书笔记:深入理解Android卷I

更新云服务器

最近阿里云的 ecs 主机老是内存不足,博客卡顿的很,一直找不出时间好好折腾折腾,就趁着春节假期把操作系统升级了。新型肺炎作怪,没办法出去浪了,就好好折腾一下吧。

主要升级是把系统从 ubuntu14.04 升级到了 ubuntu18.04。18.04自己一直在用,没有遇到什么问题,升级到18.04,也不至于太落后于时代了。另外一个原因是 ubuntu14.04 无法升级 php 到5.6以上版本,而新版的 wordpress 需要升级 php 到5.6以上版本,所以升级到18.04是迟早的事情。

另外把 apache 改为 nginx,nginx 对内存的需求稍微小一点,对于云主机那可怜的内存,更加适合。

git 服务器也一并搭建好了,这个就轻车熟路了。关于密钥登陆功能,对密钥的使用原理,经过这几年对签名验签的学习,终于理解了,就是一对密钥,私钥放在本地,公钥放在服务端,加密解密的过程。

为了节省可怜的1G内存,还开启swap虚拟内存,尽管看着效果不是很明显。

wordpress 评论的邮件通知功能,听说会跟静态cache冲突,放弃了。

目前就这些了,不折腾其它功能了,毕竟服务器还是稳定为先。


2019小总结

工作:
2019年工作中的主要任务是5.1的维护,以及年初7.1,后来的9.0,以及目前的Android的10.0的预演,偶尔支援一下其他项目。
Android 方面,预演的过程中,对Android的编译系统更加了解,同时对Android新版本的变更有更深入的了解,例如安装应用的流程,以及更严格的 selinux 策略,新的avb验签流程,以及project treble架构等。Android 7.0、9.0、10.0的变化的确挺大,提前的项目预演有助于项目的成功。
其他方面,偶尔会支援一下其他项目,编译web系统,对 python 有了更深一步的学习。

继续阅读2019小总结

光大银行惊现原笔迹手写控件

前两天去光大银行办理业务,签字的时候,光大银行用的是手写签字板。我签字的时候,发现光大银行的手写签名的效果还是挺好的啊,跟我的手写控件的效果有得比啊。于是认真观察一下,哇,这不是跟我的手写控件的效果一模一样的效果么?这笔锋,这流畅度,这搬圆滑的曲线,真的很像很像。

可惜那时没有拍个照片,回来好好对比。后来想想的确有可能是我的手写控件,因为之前的客户有提过他们会给各个银行提供手写板方案,所以很有可能是客户把这个手写控件应用到银行的签名系统了。


原笔迹手写控件还可以这样玩–绣花机

更多内容,可以查看相关文章:原笔迹手写技术与智能绣花机的第一次亲密接触

以下是原笔迹手写控件在绣花机上的实例应用,实例中的手写效果没有使用压感屏,如果配合电磁屏的平板设备,效果会更好。