新东方在线APP

教育 K12教育 案例ID:193532
橘子的鱼儿
9 年经验· 北京新东方迅程网络科技股份有限公司
微信扫码沟通,客服可协助直接对接工程师;如当前档期不合,也可继续推荐相似案例作者。

案例介绍

在新东方在线项目开发过程中,作为 Android 组的 Leader,我主要负责整体架构设计、 功能迭代、性能、体验优化。解决问题如下:  为了优化内存,了解到 zygote 在 fork 的新进程会继承预加载的 resource 资源,这些 资源基本是系统的资源,然后通过反射获取将其移除。降低内存 20M 左右  为了提升崩溃日志写入速度,使用了基于 mmap 的 MappedbyteBuffer 减少系统拷贝 到内核带来的性能损耗,提升速度数倍  为了优化包体积,采用动态加载 so,方案是往 nativeLibraryPathElements 的最前 面插入一个 NativeLibraryElement, 还包括资源加载采用 xxhdpi 一套、混淆代码  为了减少崩溃带来的用户损失率,打造了一个不闪退的 app,通过虚拟机调用 thread 的 dispatchUncaughtExecption,来到我们自己的 uncaughtException 方法,清空所有状 态信息,推出当前的 activity,不触发系统的检测(卸载 app)  优化 mvp 架构,P 调用 V 时每次判断不为 null,在基类中采用代理统一判断,通过 注解的方式解决 V 中对应多个 P 的多次创建  为了检测项目运行的流畅度,使用了 Looper 配合 Choreographer 实现了每个 Activity 的帧率信息统计

新东方在线APP

教育 · K12教育 案例ID:193532
联系该工程师
微信扫码,建群沟通
作者: 橘子的鱼儿 - 9年经验- 北京新东方迅程网络科技股份有限公司

案例介绍

在新东方在线项目开发过程中,作为 Android 组的 Leader,我主要负责整体架构设计、 功能迭代、性能、体验优化。解决问题如下:  为了优化内存,了解到 zygote 在 fork 的新进程会继承预加载的 resource 资源,这些 资源基本是系统的资源,然后通过反射获取将其移除。降低内存 20M 左右  为了提升崩溃日志写入速度,使用了基于 mmap 的 MappedbyteBuffer 减少系统拷贝 到内核带来的性能损耗,提升速度数倍  为了优化包体积,采用动态加载 so,方案是往 nativeLibraryPathElements 的最前 面插入一个 NativeLibraryElement, 还包括资源加载采用 xxhdpi 一套、混淆代码  为了减少崩溃带来的用户损失率,打造了一个不闪退的 app,通过虚拟机调用 thread 的 dispatchUncaughtExecption,来到我们自己的 uncaughtException 方法,清空所有状 态信息,推出当前的 activity,不触发系统的检测(卸载 app)  优化 mvp 架构,P 调用 V 时每次判断不为 null,在基类中采用代理统一判断,通过 注解的方式解决 V 中对应多个 P 的多次创建  为了检测项目运行的流畅度,使用了 Looper 配合 Choreographer 实现了每个 Activity 的帧率信息统计

相似案例推荐

发布任务

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

1小时精推人才

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

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