Contact

Posted on By Vivian Sun

一、 项目简介

  1. 功能描述

    Contact 联络人

    用户可以编辑联络人信息,拨号,查看个人信息等

  2. Members

    • venjee
    • Raygee
    • abbi
    • Vivian
  3. 开发时间:2017.8.10 ~ 至今 (开发中)

二、 平台支持

Android版本已发布,设备出厂预装

三、 开发方式和架构内容

  1. Android开发
  2. 使用Git作为版本管理
  3. 使用Android Studio开发客户端
  4. 随机器预装方式升级方式
  5. 使用Android官网,github,Stackoverflow和codekk作为主要的知识查找
  6. 使用Lint, FindBugs, BlockCanary, monkey test做app代码和quanlity检查

四、 数据缓存机制

五、 安全

  1. log日志敏感信息

    log中禁止敏感信息的输出,比如联系人名称,电话号码等

六、 遇到的问题

  1. 铃声选择

    铃声选择调用的系统的picker

    Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);

    但是如果有third party的应用也支援这个filter, 可能会造成选择的混乱。

    为了维持之前spec:使用系统的铃声选择。解决方案是给intent指定package name,这样只会弹出系统默认的那个。

    intent.setPackage(“com.android.providers.media”);

    package name是通过: adb shell dumpsys activity找出来

七、 项目优化

针对项目优化,主要做了下面几项

  • 清除无用代码:unused methods, comment code
  • 清除危险性较低的无用模块:例如GA,自定义主题,更新
  • 选择几个较独立的类优化:Application,Fragment,ResultList,EZMode
  • 选则几个独立功能模块来优化:例如输入延迟处理,搜索算法
  • 框架上的优化:RxJava & RxAndroid
  • 性能优化

详情请参看 “Contact-Optimization”

八、 其他

项目档案

九、 总结

十、 Reference