File encoding & line delimiter

平常是Win7下使用Eclipse,SourceInsight,Notepad++作为主要的开发工作,但代码会提交到Linux服务器上,最近的项目遇到了File encoding & line delimiter不统一的问题。

File encoding:本想用UTF-8无Bom的格式来保存所有文件,但不争气的SourceInsight却不支持UTF-8格式,无耐之下只能使用ANSI,只是遇到中文注释就比较头痛,且某些XML的资源文件,要求UTF-8.

Line delimiter:之前一直没太注意,但使用Beyond Compare的二进制对比时,发现提交前后有差异,有的显示unix,有的显示pc,还有mix。原来在SourceInsight下,默认使用的是PC(Windows)格式,Elipse默认是unix,同一文件被两者编辑时会出现此问题。解决方法把两种工具设制格式统一,使用Elipse的工具把己有文件转换下。

(more…)

普及型智能家庭的需求分析及实现方案

1.用户需求:

从自己的生活出发,总结了下哪些方面可以改进或者更方便自己的生活.

时间: 活动: 关心点: 原来: 改进:
11:00–6:00 睡觉 家里的安全 锁好门窗 家庭安全系统,(门窗)侵入报警,关联110
起床上卫生间,亮灯 手动开关灯 下床压力感应,脚灯逐渐亮起,朝那个方向走就只亮哪个方向的灯
6:00–7:00 起床 早饭 起来做 前一天晚上都己预约好,电饭煲,微波炉,煮蛋器等.
天气,新闻 看手机,报纸 在刷牙,洗脸凡有镜子的地方,都会有天气即早间头版定制的新闻显示
7:00–7:30 上班路上 路况 听交通广播 打开导航,显示实时路况,提前规划路线
新闻 听广播 车内计算机(手机)自己播放己订阅的分类新闻
7:00–5:00 上班 孩子的安全 打电话? 小孩的手表即带的GPS,打开手机/网页,即可查看孩子的实时位置,心跳等生命体征是否正常.
5:00–5:30 回家 进门 钥匙,家里的电器 无钥匙进入(密码,指纹),家庭OS的自动问候,自动打开电视,灯光,热水.
8:00–9:00 上网 购物 只能看图片,描述 3D试衣,试戴,
9:00–1:00 游戏 好玩 手柄 Kinnect的体感游戏,同时锻炼手体,与家人/朋友一起互动游戏.

不够全面,这里只是引子,可以发散,只是平常的一日,还有周未休息日,节假日都会有很多可改进的地方,不同的年龄,职业,性别的人都不一样。

综上,家庭的智能化还有很大的发展空间,有很多具体的方面可以切入,大众的接受度会随着生活水平的提高慢慢提升。

针对富裕家庭,有如Haier U-Home之类的高端一体化解决方案,本文主要讨论针对大多数普通家庭(如90平)实施智能化的方案。着重是在大众可接受的成本范围内实现更多功能。

2.新房装修的实现方案:

智能家庭至今没有统一的协议规范,目前常用的包括433,zigbee, wifi以及ble.他们之间的优劣有很多的资料可以参考,对于新房而言,最重要的选择一种统一协议,多于一种无论是对于控制还是互通互联,都造成不小的麻烦,成本也会高出不少。这里以zigbee为例:

a.) 家里的所有插座及灯的控制开关,都使用带有zigbee模块的产品。

b.) 家里的窗帘,窗户跟据自己的需要也都换用带zigbee控制模块的产品。

c.) 新买的家用电器,包括电视,空调,热水器,先衣机之类尽量选购带Wifi模块的。(似乎支持zigbee的产品较少)

还有一种变通的解决方案,常规的红外家电,使用zigbee转红外模块实现控制。

d.) 最重要的是有一个控制中心,实现最简单的星型网络。这是我们目前正在做的。但相似功能的产品己有不少,可以淘宝zigbee.

 ehome

如上图,控制中心起到了关键做用,但实际也并不复杂,不一定非要买一个全功能高端产品,用自己的智能手机外接一个zigbee的模块即可,这也是我们在研究的方向。

如果等不及我们的方案,自行淘宝zigbee。

3.在现有住房基础上的改造方案:

基本过程同上,主要是开关的改造。比新装修稍微麻烦些。

4.展望

理想的情况是使用Ble作控制协议,之后大部分手机都会支持ble。控制中心,其实也就是一个手机。这会是最优化的解决方案。

自动编译打包的bash脚本

最近在调试一个项目,频繁的在mming,snod,copy-img,挺不方便的,写一个脚本来的快。之前用的脚本倒挺多,自己写倒挺少挺短,这次来个稍微长点的,用习惯了C++,java,感觉脚本的语法不够直观,甚至还不如Python。

#!/bin/bash

#debug app framework jni hal,snod and copy to img folder

(more…)

GMS包与Android版本序列号

我们MT6517的项目要做国外的市场,要求在原有版本基础上添加GMS包.(理论上现有方案需要过CTS与GTS,之后向Google申请,由Google正式Release GMS包给到厂商)

同时有两个项目,一个是HE-E700,另一个叫N7100,其中N7100是从HE-E700中Fork出来的一条分支.奇怪的事情发生了,按同样的流程移植GMS包,N7100可以正常使用Google Play等服务,但HE-E700这个分支却一直报错,”意外停止”,”服务器错误”等.

花了几天的时间调试,查找问题,GoogleBaidu都没能找到原因.后来只好用比较土的办法,用二分法逐个版本验证,逐步缩小提交的范围.其间两台服务器编译了N个版本.

最终找到了原来最意想不到的地方,竟然是版本号的差异倒置.即给手机的序列号命名中,不允许有”-“号,即不能是HE-E700,只能是E700.(空格也不行.)

在devs.c的文件中 memcpy(serial_number, “HE-E700”, 8);

ANSI,UTF-8,UTF-8无BOM,ANSI as UTF-8

同一个文件,在Windows下,与在Ubuntu下为何显示的编码格式不同?

不同的编码格式为何在Eclipse,SourceInsight,Git有些能显示,有些不能?

最近工作中遇到的问题,带着种种疑问,逐步来揭秘.

1.UFT-16都是通用的,只要系统/工具支持,就能正常显示,无论是在哪个系统之下.

2.Windows的默认编码格式是ANSI.(对于简体中文版本Windows来说就是GBK/GB2312)

Ubuntu的默认编码格式是UTF-8无BOM,即Notepad++所识别成的ANSI as UTF-8

1

在Windows中新建一个纯英文的ANSI编码格式的文件 在Ubuntu中Gedit会显示为UTF-8 正常显示

2

在Windows中新建一个中英文的ANSI编码格式的文件 在Ubuntu中Gedit会提示错误,选择编码后显示GB2312 使用GBK格式打开正常

3

在Ubuntu中新建一个纯英文的UTF-8编码格式的文件 在Windows中用Notepad++打开会显示为ANSI 正常显示

4

在Ubuntu中新建一个中英文的UTF-8编码格式的文件 在Windows中用Notepad++打开会显示为ANSI  as UTF-8,

即UTF-8无BOM正常显示

3.总结

1

纯英文文本 ANSI = UTF-8无BOM = ANSI as UTF-8,

2

含有中文的文本 ANSI,UTF-8,之间需要显示的转换才能正常显示

对于Android代码,最好还是用UTF-8无BOM的形式来存储,在系统切换时更方便.在各个开发工具之间也都能正常显示,SourceInsight除外

KSOAP2—WCF

Android想要调用WebService,两种方式,其一HttpGet,HttpPost,Restful协议,其二是通过开源的第三方组件KSOAP2.几天的尝试过程中遇到了种种挫折,但最后也终于调通了,给有兴趣的朋友分享下,以免多走弯路.

1. 使用VS2012新建WCF,默认是基于.NET4.5,实践证明各个版本的KSOAP2(包括最新的3.0.0-RC.4),都无法成功,会报各种错误. (more…)

Android添加缅语字体与Root

缅甸的客户要求手机内置缅语与输入法,小语种在android源码中没有添加.客户给出了相关的APK.其中一个是缅甸语键盘输入法,直接安装即可,但此时在编辑界面输入时无缅语输出.还有一个APK,安装运行自动重启,此时再次输入即可以正常显示缅文.

但此APK需要有Root权限,即使编译为ENG版本,依然提示设备未Root.这里省过千言万语的寻找root的过程(MTK的E-Service不回答此类Root问题),直接给出最终的Root方案.

(more…)

Bugfree 添加权限管理

公司在用Bugfree,一是免费,二是开源,之前也试过CQ之类的工具,实际使用还是Bugfree简单实用,但它也存在明显的缺陷,如没有任何的权限管理.项目管理员把某Bug指派给某工程师,但此工程师仍有再次指派的权限,某些不自觉的就会私自再次指派,非常不利于Bug及其进度管理.

通过修改Bug.php添加指派给的权限控制,即仅有Bugfree管理员及项目管理员才有权限修改指派给(测试人员新建Bug的时候可以选择).

流程比较清晰,修改如下,标红色的部分为改动,主要是两处对管理员的判断,$_SESSION[‘TestIsProjectAdmin’],$_SESSION[‘TestIsAdmin’].

(more…)

Android AutoTest tools and methode

There are four ways to do autotest in android platform.
Testing Fundamentals

“The Android testing framework, an integral part of the development environment, provides an architecture and powerful tools that help you test every aspect of your application at every level from unit to framework. ”

(more…)

Intranet,Win7,IIS,Virtual Server

I want to host a website in IIS at my computer,which is in the Intranet.Initially I follow this article http://bbs.pcbeta.com/viewthread-233903-1-1.html. But the site can only be opened by the intranet computers, and nothing I can do about it for a time.

As the result of Google, may be the firewall cause this problem.So I close the 360 security guard, and 360 Anti-virus.But it still can’t be open.Then continues to Google and baidu,and finally I solve the problem.

There are two key points:
1.The port of the virual server can’t assign to 80.(Chian Unicom block the port)
2.The windows internal firewall also need to close or open a port for you website.