Android Contacts源码研究心得

    这算是我接触的第一个比较大的项目,从2010年11月一直到我离开华硕2011年4月都在做,只是可惜没有完成3.0版本的移植。乘我离职之前,我要把一些心得记录下来,以后如果还能看到这篇文章,一定会颇有感触。

 

    刚开始接触项目,团队有很多人都没有真正接触过Android,所以我就成为了冲在最前面的敢死队员啦,哈哈,这也给了我一个很好的机会,那就是做主UI。主UI能接触到各个模块,以及大量GOOGLE源码,对于我这个JAVA菜鸟来说,GOOGLE源码的各种代码风格和设计模式都让我豁然开朗,这对于我来说应该是最重要的东西。

 

    经过差不多一个月的摸索,大致掌握了几个重要Activity的跳转和传参,但是我们UI的需求是把Contacts联系人列表和详细信息在一个Activity中显示出来,这对我来说肯定是最最复杂和困难的,2个Activity拥有各自复杂的生命周期以及参数传递,要和成一个就已经很复杂,而且联系人列表这个界面,会在很多情况下被重用,比如电话那里调用的几个界面,搜索模式等等,也就是说我在合并的同时也要考虑到其他会用到这个Activity的地方,这让我郁闷了很久,但是时间不等人,没办法,硬着头皮上。最早的考虑是用ActivityGroup,但是查了很多资料,发现这个东西并不符合我现在如此复杂的2个Activity的合并,最后选择了代码合并,这个着实让我蛋疼。。。

 

 

     如上图,第一个界面是联系人列表,点击《阿虎王》,跳转至该联系人的详细信息,心得UI要求是在同一个界面,并且要把原始的TabHost完全抛弃,只有我们自己写的界面。下面这个就是最后完成的界面,当然我模拟器用的分辨率比较低,控件之间会有点拥挤。

 

 

PS: 我的应用是在平板上发布的,所以在模拟器上看会挤在一起,大家将就看看效果图.

 

(对这个图稍微说明下,最上面的ALL GROUP是2个界面的刷新,ALL就是所有联系的模式,如图,GROUP图如右图,GROUP会在后面详细介绍。左图右边详细信息中添加了很多源码里面没有的东西,比如每个电话会多出SKYPE/NIMBUZZ动作条,GROUP所在组,生日等等,并且把信息分为Connection和Information,另外还会计算生日离今天的天数,进入7天会有提醒,并且在联系人头像那里画上一个蛋糕,等等操作。)

 

    合并的过程中遇到了非常非常多的问题,差不多用了一个月,才把各种小问题给解决了,但是UI的设计版本一改再改,让我有点吃不消,好了,设计和学习的问题我就到此为止,下面说一些在修改源码过程中我觉得有学习意义的地方。

 

    首先是一个界面的来回跳转,上面几个图并非新开一个Activity,只是在一个Activity上刷新UI而已,每个部分都有自己的异步查询,因为所有的信息都是实时到数据库中取得的,整个界面可以分为左右两块,左边这里又分为上中下3块,上就是ALL GROUP这块,中就是Me这块,最下面就是比较重要的List,右边的话就是只有一块,只是在不同的界面下调用不同的Layout。

 

<-----------------------------------------------     分割线       --------------------------------------------------->

   

    以上是我还在华硕上班的时候写的,当写到这里的时候,已经过去两个多月了。。。思路完全跟不上了。。。这篇关于android联系人源码的文章看来是搁浅了。。。

    学习到了那么多新的东西,对我来说,比较重要的还是Intent的使用,源码里面使用的90%是隐式调用,让我对各种隐式调用有了比较深刻的理解,以后有时间,我会写一篇关于Intent使用心得的文章,最后我还是要发布这文章,对我来说算是对第一个大项目的纪念吧。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值