工作室日记——QG最终考核

总算结束了,考核的日子的确不是太好过,在10天内完成一个项目,不能用第三库,全部代码都要自己写。
我们移动组考核有C语言和安卓题目,在训练营已经把我一生的C语言写得差不多了,所以我果断选择安卓题目
安卓的题目是做一个通讯录,要有联系人和群组增删查改。还要上传头像,个人名片,程序锁,搜索框,按名字排序,索引栏,生日提醒,主题设置。
扩展功能有用socket连接,登录,注册,忘记密码,上传名片。

最基础是联系人和群组的增删查改

APP开发的代码我就不具体贴出来了,主要说一下用了什么吧,有用到ContentResolver,学了ContentProvider这么久终于要用到了,ContentProvider提供的内容由ContentResolver来解析,然后用这个ContentResolver进行增删查改。系统的联系人的储存时用sqlite,然后要分析数据是怎么储存的,有专门储存联系人名字的表,有专门储存组名的表,还有储存联系人其他数据的表,主要是有3项,一项contact_Raw_ID,一项数据类型(姓名类型,电话类型,事件类型……),一项数据(姓名,电话,日期……),说到数据大部分数据储存在data1列中的只有头像是以byte[]储存在data15。
所以具体的思路是(以查询为例):
遍历联系人的表,根据他们的contact_Raw_ID再去遍历数据的表,读取到类型和数据,用根据类型将数据复制给实体的相应的属性,弄成一个链表,返回出去。还有手机号是可以多个的,所以实体的手机号也要是一个链表类型

然后要用到程序锁

程序锁的话我之前有篇博客就是写他的实现方法的
安卓日记——教你做简单的应用锁
还有要实现搜索框功能
这个比较简单
设一个TextChangeListener就好了然后过滤联系人链表

至于索引功能

首先要自定义一个View,显示26个字母加个#号,然后在点击的时候看他点击的位置/每个字母高度=字母索引,然后ListView跳到相应的位置,还要搞一个圆形的TextView在屏幕中间显示索引值,点击或者滑动时显示出来。

然后就是名字排序

ListView的每个Item主要用两项,首先是字母,然后是联系人的内容,如果是第一个这个字母的人,字母就设为可见,否则去掉
需要一些工具类来将名字首字转换为拼音,还有按拼音大小排序

个人名片的话

我是自己新建一个sqlite的表来储存的,仿系统储存联系人的表,不过简化了很多

主题设置

我在style里设置了4个主题,日间模式,夜间模式,护眼模式,纯色模式。然后自定义模式的话,我想到用sharepreference储存设置的参数,然后在每个activity的initView判断如果是自定义主题就改变某些View的属性。

扩展功能方面

主要是后台的功能,幸好之前有点接触,不然的话根本无从下手
我选择python作我的后台,我之前比赛做过一款app也是用python后台,也是用socket连接的
后台主要是处理登录,注册,修改密码,忘记密码,上传名片功能
首先要设计好交互的数据格式,果断采用比较方便解析的json格式
app发给后台json的第一项是行为,然后后台根据不同行为执行不同操作,返回的话,第一项是放状态码,如果成功就为suuccess,失败就为fail,App根据不同的返回验证码做出不同的反应。
App的Socket部分我也不多说了,主要是执行时新开线程,得到数据时用Handler返回主线程就是了

说那么多程序的实现,之后说说这次考核的感受吧

总得来说:痛并快乐着

高压的工作状态让你不得不在短时间内学习大量的东西,这是一个难得的迅速提升的机会。
然后我之前一个不明白基类有什么用,特别是BaseActivity,知道一个项目做大了才发祥,原来我们要重复那么多没什么必要的代码,基类设计好真的能节省很多时间
还有可以积累一些常用的工具类,也有助于提升工作效率

最后还要做一个设计报告,今晚跟室友一起去交了,答辩的时间还没定,还是有点小紧张,毕竟考官是强哥
最终能不能进,听天由名吧

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值