U Plus V2.0

我们的智慧家庭U+项目二期,APP升级方案,简单画了下UI的交互式草图。

目标是让用户体验更好,操作更便捷。所以尽量减少了用户输入,界面的跳转,通过左右、上下滑动来进行操作与设置,如”行云流水”。

默认设备列表,按用户的使用频率排列,对常用的设备,一键能够操作。并且在设置界面仍可以按房间,种类自由分类查看。

Android桌面联系人的实现

contact1如图即为要实现的效果,在Launcher上第一页显示常用联系人,从一个到六个不等。并且长按实现删除功能,所有图标缩小,左上角出现X号,点击删除。

开始尝试在Launcher中直接实现,计划把原有的celllayout换成relativelayout,但Launcher会判断,加载的WorkSpace是否是celllayout,不是,不能编译通过。

往下有两条路,之一,继续修改Launcher源码,使其可以加载relativelayout,之二,把celllayout划分到无限细的格,这样也可以放下不规则的布局。但初步分析这两种都方法都比较困难。

突然有人提到了Widget,灵光一现,在Widget的范围内,可以自定义布局,这样基本显示应该没有问题,接下来就是布局的变换到按键事件的响应。因为有六种布局,之间还需要有动画过渡,之前是在一个Layout上,同时有六种布局,只显示一种,其它为gone,但Widget限制Layout只在第一次加载时会有动画效果,所以之后分别用了六个Layout来分别显示不同个数的联系人布局,这样动画问题解决了。

最复杂的是数据的加载过程,第一,需要与联系人模块沟通,指定联系人添加,删除反应到桌面。第二,会从联系人数据库中得到原始头像,自动生成8类大小不一的头像。在联系人数量变化时,自动切换到相应布局,加载对应的头像。第三,桌面联系人与联系人模块分别维护了常用联系人的状态,容错处理也是一块,否则会出现桌面为空,但联系人确认为己经有满6人,无法添加的问题。contacts

第一,与联系人的沟通,点击添加会弹出联系人的“添加新联系人界面”,在列表中勾选想添加的联系人后,会发Broadcast给桌面联系人(StartActivityForResult不能在Widget中使用),Intent中封装的是一HashMap<Integer, String[]>,Integer记录的联系人的ID, String[]包含姓名,电话号码等。获取这些信息会在桌面联系人模块中备份一份。

第二,由ID从数据库中读取联系人的头像,按照定义的规则对头像进行截取,缩放,修圆角等处理,并存储到数据库。由于操作比较费时,会先计算出要显示某张图,其余的会在后台线程中处理后添加数据库。

第三,容错处理,在每次开机是即onEnable函数中,会列出桌面联系人的所有ID,判断此ID是否在联系人模块当中,若不再,就从桌面删除此人,若在,判断此人桌面联系人的标志位是否正确,不正确,同样会从桌面删除。之后会列出联系人数据库中所有标志位为1即在桌面显示的联系人的ID,判断此ID是否在桌面联系人当中,不在,则把标标位置为0.

其它方面包括界面显示时数据的Load过程,添加,删除联系人时,布局的切换过程,正常,编辑模块的状态维护等,细节比较多,整个工程耗时近一个月,2000行左右代码。

E700

E700基于MTK6517 + VIA CBP 7.2C的G+C双模智能手机方案,通过CTA验收,及CT测试入B库.其实他不是一个项目,后续衍生的一系列的产品,远销售海内外了,缅甸,俄罗斯,也门,450M网络的覆盖地。其间还有中式英语与也式英语的激烈碰撞,这沟通工作实在了得.

Haier-N710E

 N710E

你没看错,这就是我们最近在忙的东西。
Android2.3+800MHZ+256RAM+512ROM+300WCamera
挺中规中矩的配置,但电信有活动,充200话费送手机,还是不错的。

有买这款手机的同志们可以跟我联系(包软件售后:P)

 

D520的传说


 

        最近那可是相当的忙,D520的项目传说中有上百万的订单,我们这些开发人员的工作可想而知.最可怕的不是有多累,而是仍不被别人理解.其实也不无谓,做好自己的工作就行,其它的让别人说去吧.
        最近一直在想将来会向那个方向发展,项目管理,还是继续做工程师,当被问及的时候,两次都毫不犹豫的选择了后者.想法其实很简单,想实实在在的做些东西,能被大家所认可,专心的做一样产品.但实行其来挺不容易的.
        还在做VIA的项目,有空再把最近遇到的问题及解决方法与大家分享下,不久的将来也许会做Android的方案,挺期待的.

此项目是有史以来最耗费精力的事了,成三位数的Bug,一堆的相关问题,很难带的一个项目.

VIA平台移植T9输入法

 
           VIA平台直到VTUI2
5x的1.2.1.的版本,都只支持
EZI,Putian,Sunrun,Han
Wang的输入法.而不包括T9.
       
VTUI2上的输入法大概分为3部分,一部分是UI上的显示,另一部分是integration layer,另一部分即为T9 Core的添加与引用.UI显示部分VIA有通用的处理,包括输入预览与候选导航切换.所以移植的主要工作是实现第二,三部分,即VIA平台T9 integration layer的实现及T9 Core的添加与引用.
         整个移植过程,差不多花费了二月左右的工作量,己基本实现英文,拼音,笔划的输入,代码超过3000行,比较简洁,但却牺牲了通用性.日后会不断补充完善.接下来几天,会把实现的过程及比较困难的地方写出来,一则是给自己有个记录,二则也可以与大家交流,共同提高.

Iditu 你的好友定位地图 2010

   
      距上次发布版本己经一年多了,此次Iditu服务器端与客户端同步进行了较大规模的更新。其中Iditu服务器端整合了社交类网站所需的功能,如好友,博客,论坛,完整的个人档案等。这些模块将全部为Iditu的定位功能服务,会使Iditu的基础平台更加的完善,也为将来的进一步扩展打下了坚实的基础。 
      客户端也进行了升级,主要解决了地图移动时的显示问题,优化的内存占用。GPS信息的读取也更加准确与智能。   
     
当然,这些远不是Iditu所能做到的,不久从第四轮迭代开发开始,真正的核心功能将会出现。所有这些功能都将架设在此基础平台之上。

TATA SMS需求的实现

       
       基于VIA Selle1.0在FC500的机型上添加了:空短信Page
Message,重复短信Duplicate Message,类似UTK的短信订阅服务Message Service等功能.
      
以上皆为印度TATA的需求规范,其中包括允许发送内容为空的短信并存储,收到类型为Page
Message的消息时,显示回呼界面。重复短信要求跟据MsgID,OriginalAddress,ContentData为依据,收到重复短信时覆盖掉原有项,并提示重复消息.由于FC500是无卡的版本,没有UTK的功能,Message
Service实现了由列表项快速订阅相关短信服务的功能.以上实现可以在Embedded的列表中找到相关文章.

手机端”六点盲文输入法”的实现

      
       在D300的基础上添加“六点盲文输入法”,它使用手机中的1,2,3,4,5,7,8键来输入,并使语音接口读出输入后的候选字,及其词解释.如"723458"键,输入"中",则语音会读出"中,中国的中".
      
实现利用了第三方的输入法引擎及TTS,在编码转换及匹配,接口的统一,候选的处理等方面,做了大量工作.其间写了一些的支持程序,如编码的转换,16进制与其对应字符串间的转换等.这些程序稍候会上传到这里,希望对以后遇到同样问题的朋友有所帮助.