携程

生活消费 · 出行 案例ID: 181900
联系该工程师
微信扫码,建群沟通
作者: SENSE - 7年经验- 上海携程计算机有限公司

案例介绍

路由组件

我负责开发了 Android 端的路由组件:

1、 实现方式:通过在 AndroidManifest.xml 里面设置每个 Activity 对应的别名,在App 启动时初始化一个map,用来保存 Activity 的别名、对应的 Class 对象,在需要跳转页面时只需要在 map 中搜索到对应的Activity的Class对象即可跳转。

2、 为了解决 onActivityResult 返回结果代码繁琐的问题,在 Activity 上添加了一个无页面的Fragment,通过Fragment 的 startActivityForResult 跳转页面,并且在 Fragment 的 onActivityResult 去回调接口,并返回数据给 Activity。

3、Activity 的别名支持设置一个或者多个,可解决同一个 Activity 对应不同的业务场景问题。 通过定义别名为“lc”的透明 Activity 来实现检查是否已经登入账号的需求,只需要跳转“scheme://lc/alias”即可完成登入账号成功后直接跳转 alias 别名的 Activity 的需求。

水印打卡相机组件

我负责开发了水印打卡相机功能,可以进行短视频的录制等,解决问题如下:

1、为了解决无法直接对外部纹理添加水印的问题,通过先将外部纹理绘制到 FBO 的纹理附件上进行添加水印操作,从而实现水印效果。

2、 为了解决预览时图形效果是变形的问题,采用了 OpenGL ES 正交投影的方法,从而实现正常的预览效果。

计步器模块

我负责开发了每日计步功能,类似*运动,支付宝计步功能,解决问题如下:

1、 由于 android4.4 以下或者一些特殊的*不提供计步传感器,所以这些机型采用加速度传感器进行计步;针对android4.4 以上提供了计步传感器,通过计步传感器计步功耗小,计步准。

2、 由于计步传感器不会根据天来分割,只是返回当前步数的总和,为了解决跨天计步模块归零问题,通过零点分隔广播,来对计步模块进行分割,只要跨天了计步模块就归零并从零开始计步。

3、 为了解决少数*接收不到零点分割广播,在计步传感器回调数据时,判断当前时间是否与上次回调数据的日期是否不同,日期若不同,则判定为隔天数据,从而计步模块数据归零并重零开始计步。

相似案例推荐

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在 1 小时内与您联系确认。

1小时精推人才

需求方专属客服,免费梳理匹配

需求方客服微信二维码
扫码加微信 · 客服人工对接
微信沟通 联系需求方端客服 看中这位工程师了?客服帮你 1 小时对接沟通 → ×