原笔迹手写控件支持保存为 svg 图片

最近研究了一下 svg 图片,可缩放矢量图片这个特性,也要在手写控件上支持。花费了不少精力,最终实现了这个功能。支持原笔迹,压感,笔锋,无失真缩放,这个特性,算是比较先进的了。后期对网络的支持更进一步。

看效果图(博客不支持显示 SVG,看一下谷歌浏览器的效果吧。):
paintview_svg

 

Android开发必备站点:androiddevtools.cn

因为众所周知的技术原因,Android 相关的官方网站无法访问,造成 Android 开发相关的工具,官方文档都无法访问,特别是SDK,ADT无法更新。这里推荐一个新手老鸟都必备的网站: androiddevtools.cn

收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。

欢迎大家推荐自己在Android开发过程中用的好用的工具、学习开发教程、用到设计素材,欢迎Star、Fork 。

试用团队协同工具 worktile

最近一直苦于没有一个很好的项目管理工具,上网搜索,推荐不少。例如 worktile, teamition, basecamp, redmine 等等。综合考虑到功能,语言,费用以及团体推广难度,最终选用了 worktile. 一款免费、好用的团队协同工具,让你的团队随时随地一起工作。

优点:
简单,好用。降低团体的学习成本。
免费。免费的简报功能很重要。免费也是团体内推广的重要因素。

缺点:
希望有番茄工作法类似的计时功能。主要是提醒自己半个小时就休息一下。其实这也不算是缺点,只是自己希望增加的功能。

总结:
团体协同工具,提说目前在国外很火,国内处于起步阶段,个人觉得如果推广和执行得当,的确能很好的改善团体协作的工作效率,对于项目经理来说,更是提高效率的很好的工具。当然,作为个人的项目管理工具,也是一个很好的选择。

Openfire 3.10.2 文档概要

此文为翻译习作,英文原文请参看:
http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/index.html 

Openfire provides comprehensive group chat and instant messaging (IM) services using the XMPP protocol.

Openfire 基于 XMPP 协议,提供了成熟的群组聊天以及即时通信(IM)服务。

Documentation: 文档:

  • Installation Guide – How to install Openfire. 安装指导–如何安装
  • Upgrade Guide – Instructions for upgrading an existing Wildfire installation into an Openfire installation. 升级指导–如何将当前的 Wildfire(Openfire 前身) 升级为 Openfire
  • Database Installation Guide – How to setup your database for use with Openfire. 数据库安装指导–如何安装 Openfire 数据库
  • SSL Guide – A guide to setting up Openfire’s SSL secure socket support. SSL 指导–如何设置 Openfire SSL 安全 Socket 支持
  • LDAP Guide – A guide to setting up Openfire to work with LDAP user stores. LDAP 支持–如何设置 Openfire 使其可以使用 LDAP 用户存储。关于 LDAP
  • Custom Database Integration Guide – A guide to integrating Openfire authentication, user, and group data with a custom database. 定制数据库集成指导–如何在定制的数据库上集成 Openfire 认证,用户以及群组数据。
  • Pluggable Roster Support Guide – A guide to integrating Openfire rosters with an alternate store. 可插入的花名册支持指引–如何集成 Openfire 花名册备用存储(有点拗口)

继续阅读Openfire 3.10.2 文档概要

Android Framework 代码的混淆

因项目需要把 Android Framework 自主开发部分的代码进行代码混淆,首先的工具是 PROGUARD。但是 PROGUARD 更多是用于 APK 的代码混淆。网络上还没有看到对 Framework 代码混淆的案列。

网上找不到方法,只好自己动手了。研究了两天,终于实现了 Framework 层的代码混淆。

1.修改 Android.mk

代码放在 framework/base 目录下,编译生成 framework.jar,其实这不是一个很好的做法,因为与 Android 源生的代码混合在一起,造成低耦合。前期考虑不当了,后期维护就相对麻烦。

最关键的一点,修改 Android.mk, 使需要混淆部分的包和类单独编译。因为 framework 其他代码最好不要混淆,以免引起找不到类的出错提示。

然后设置 LOCAL_PROGUARD_ENABLED := nosystem,很重要,不然类的方法不会混淆成abcd类似的名称。

然后指定 proguard.flag,设定不混淆(保留)对外公开接口的类,重新编译。可以用模块编译 mmm 命令提高编译效率。

继续阅读Android Framework 代码的混淆

Socket 通信,小试牛刀

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

一直想在尝试两台设备之间互相连接,通信,交互的功能。了解到Socket,很有意思。基本可以实现我的设想,甚至可以多台设备互联,不清楚成熟的物联网又是通过什么什么进行互联?

我的初步目标是用 Android 手机控制小车,不过小车估计自己是做不来了,硬件能力都荒废了。

再熟悉一下 Socket 的工作机制:

socket

继续阅读Socket 通信,小试牛刀

折腾Web项目

最近在折腾Web相关的项目,Web相关知识从零开始。不过,相比嵌入式驱动开发,Web项目的入门门槛还算是低的。这也是我这种懒人想死守嵌入式驱动开发的原因,毕竟门槛高,竞争比较少。

这次的Web练手项目,主要是根据用户提供的关键字,搜索出相应的题目以及答案。

项目的整个架构由我策划,基于Spring,整合Lucene搜索引擎,中文识别用IKAnalyzer,服务器用Ubuntu + tomcat。

历时两周,硬件+软件+知识储备都是从零开始,也算是对Web项目开发有了初步的认识。

同时新上手了Intellij idea这个主流的IDE,毕竟从零开始嘛,开发工具肯定用主流的,快捷键切换为Eclipse的即可。

也对Maven基于项目对象模型(POM)有所了解,主要用来简化项目的构建工作。当然刚接触时被一堆配置信息搞得晕头转向,特别是网上没有源的库还要自己手动配置整理。但一旦配置完成后,POM文件的可重用性,真的很方便,而且最终的项目打包时,库的集成方面的工作也是无忧解决。大赞。

继续阅读折腾Web项目

解决触摸屏 ft5x06 I2C 总线无法通讯问题

现象描述:

新平板产品量产过程中,工厂反映有1%的触摸屏出现无法正常工作。拿到不良的触摸屏后,通过分析系统启动的 log,发现触摸屏驱动已经加载,但是 probe 函数中打印无法找到 0x38 设备。0x38 设备就是 ft5x06 的设备从地址,证明 I2C 通讯没有成功。但是奇怪的是,这些不良的触摸屏在上一款硬件雷同的平板上可以正常工作。

原因分析:

I2C 通信不成功的原因无非以下几点:

  1. 通讯协议不正确。
  2. I2C从设备地址不正确
  3. I2C通讯线上没有加上拉电阻:由于I2C的从设备的SDA,SCL的PIN是输出开漏的,所以必须加上拉电阻,同时根据I2C设备的数量上拉电阻的大小也会不同。从1K~10K以上,当然不能太大,也不能太小。
  4. 电路干扰
  5. 通信时序

因为我们上一款平板的触摸屏驱动是由 RK 直接提供的,而且我们也量产1年时间,没有发现类似的问题。出问题的这款平板硬件跟上一版本的雷同,软件驱动也是一样的,所以认为软件驱动应该没什么问题,电气性的问题概率会大一点。

尽管如此,我还是重新检查了一遍触摸屏驱动,调整 I2C 速率,重新烧录后发现还是老样子。

决定去硬件组看看。硬件的同事用示波器观察了 I2C 的通信波形,发现出现了中间电平。数字电路不是只有高电平,低电平,1和0吗?怎么出来了一个中间电平了。什么是中间电平?例如芯片规格规定高电平是高于2.4V,电平低于0.4V,如果出现了1.4V的话,那就是中间电平了。

解决方案:

出现中间电平,可能是因为触摸屏内阻比较大,分压过大,造成低电平下不来。

可以通过修改上拉电阻,提高上拉电阻的分压比例,降低触摸屏内阻的分压比例,达到低电平降下来的效果。换10K上拉电阻,老样子,再换…直到换了一个50K的电阻之后,低电平果然就下来了,I2C 通信波形也很正常,触摸屏工作正常!但是50K上拉电阻的情况下,其它本来正常的触摸屏的波形就不是很好。这个方案不完美。

然后就考虑通过调整 CPU I2C 端口驱动电流来实现上拉电阻提高分压比例的方法,RK3188的 I2C 端口默认是 2 ma, 通过软件配置寄存器,将驱动电流调整为 4ma 后,波形正常了,不良的触摸屏也可以正常使用了。而且对其他正常的触摸屏也没有影响。

问题解决!