移动生态探索与实践

会议室:北京厅 2
出品人:郭金

这是一个最好的时代,技术永远没有停止演进,移动端技术生态依旧繁荣。

<... 展开 >

专题出品人:郭金

百度资深研发工程师

2014 年入职百度,先后负责社交化、基础性能等技术方向,目前负责百度 App 客户端工程与架构方向。在 App 复杂的背景和多样化的技术目标要求下,设计并完成百度 App 架构与工程能力升级,并着力于打造研发流程一体化平台,实现并行开发、快速迭代、高效复用。

地点:北京厅 2

专题:移动生态探索与实践

这是一个最好的时代,技术永远没有停止演进,移动端技术生态依旧繁荣。

面对隐私安全的挑战和增量市场到存量市场的竞争,无数开发者通过实践、组合创新,拓展了应用和想象力的边界,很多领域值得探索与深耕,如工程和架构治理、移动端 DevOps、性能优化、跨端技术、视频全链路优化、AR/VR/元宇宙、区块链、人工智能和机器学习等等。本专题将挑选业内最具代表性的技术方案及案例,为你介绍移动端仍可深度探索的领域。

by 周磊(流炎)

支付宝
基础平台技术部 技术专家

随着用户对终端体验、稳定性、隐私保护、安全等越来越重视,针对这些技术风险的管理防控要求也越来越高,尤其是线上问题的诊断和修复应急。支付宝端怎么能从传统的发现->诊断->修复->推送->生效,转变为端上实时全面管控;以及如何从体系化视角,提供诊断、预防、修复的基础支撑,本次分享将对此进行详细解析。

演讲提纲:

1. 回顾:时代背景下的客户端隐私和体验挑战

  • 客户端隐私和体验挑战
    • 莫名其妙被手机提示访问隐私,但不知道是谁?
    • 接入的三方库访问了什么权限心里没底?
    • 用户反馈后台耗电但不知道怎么耗的?
  • 支付宝:解决上述问题需要哪些基础能力支撑

2. 演进:客户端切面管控体系建设

  • 切面的角度、粒度及能力如何设计
  • 溯源能力如何做
    • 如何跨线程溯源、分层次溯源
    • 切面应该附带的场景信息
  • 基于切面粒度、溯源、场景,管控能力如何做

3. 应用:切面管控能力落地场景

  • 三方库权限管控
  • 线上体验、隐私问题
    • 打疫苗
    • 应急快反

4. 未来探索

  • 多维度、跨栈切面能力融合,扩大管控范围
  • 实现模块级别管控,如权限、存储隔离

你将获得:

  • 支付宝在终端隐私体验风险管控领域遇到的挑战和解法
  • 支付宝在终端管控体系的演进发展路线
  • 支付宝终端管控体系未来发展方向思考

by 吴凯凯

字节跳动
技术专家

在移动应用开发中,对用户体验影响最大的是崩溃,而在崩溃中,最难解决的疑难问题就有 Memory Corruption 类型崩溃。为什么难排查?原因有如下几方面:1. 开发者对不同 Memory Corruption 类型的触发原因了解不清晰;2. 崩溃现场往往是随机的,可能不是触发问题的崩溃堆栈;3. 业界没有一个完善的线上监控归因方案。

我们经过探索与实践,开发出一系列相关产品,在 TikTok、抖音、头条等业务上大规模使用,解决了许多线上长期存在的疑难崩溃。这些产品既有让开发者可以直接调试线上用户发生的崩溃,又有可以让崩溃现场不随机,高效归因触发内存问题的原因等。最后,我们将经验分享出来,介绍这些产品在开发过程遇到的问题,以及如何解决的,同时也会跟大家分享,这些产品在字节的收益和真实的疑难崩溃案例分析,希望能帮助开发者提高自己产品的品质。

演讲提纲:

1. Memory Corruption 介绍

  • 什么是 Memory Corruption
  • 触发原因和类型介绍
    • Buffer overflow
    • Wild pointer
    • Use-after-return
    • Double free
    • 多线程导致
    • 其它

2. Memory Corruption 的排查思路

  • 线下排查工具原理和适用性介绍
    • ASan 
    • TSan 
    • Malloc Scribble 
    • Guard Malloc 
    • Malloc Guard Edges 
    • Malloc Stack Logging 
    • Zombie Objects
    • 结合 Xcode ASan 和 GWP-ASan 优势,在灰度中,监控每个内存的使用
    • 解决 Xcode Zombie Objects 难归因和性能损耗问题   
  • 线上排查方案和疑难崩溃案例分析
    • Zombie -  添加归因方案,高效解决 OC 对象内存问题
    • GWP-ASan - 归因多种类型 Memory Corruption,稳定复现崩溃现场
    • Coredump - 调试线上崩溃技术,解决线下难复现问题

3. 展望未来

  • 方案智能归因
  • 打造综合的解决方案

你将获得:

  • 了解字节跳动关于 Memory Corruption 的一些技术探索与成果
  • 掌握 Memory Corruption 崩溃排查思路
  • 开拓思路,了解如何搭建线上 Memory Corruption 监控工具

by 吉妙通

金山办公
移动端研发总监

受限于移动设备本身的内存和性能,在移动端上开发大型原生应用势必会碰到不少难点。以最常用的移动端打开 Office 文档浏览为例,需要在移动端本身内存限制的条件下快速展示用户文档,在开发初期最经常碰到的问题就是内存 OOM,通过研究尝试不同的内存设计方案以及文档加载流程上的优化,最终可达到毫秒级快速展示首页文档内容,秒级完整打开大部分用户文档,且在不断加载浏览的过程中通过对象池,图片内存重用等机制解决内存抖动问题以及 OOM 问题,再通过渲染显示架构的不断调整设计最终达到理想的效果。

本次演讲将通过 WPS Office for Android 的性能优化实践,介绍移动端/Android 上原生应用在数据加载处理、渲染显示这两条主要链路上的选型、设计和优化。

演讲提纲:

1. 大型原生应用性能的核心问题

  • 如何在移动设备内存限制下顺利解析加载复杂 Office 文档
  • 怎样以尽可能短的时间让用户快速看到文档数据提升移动设备上的阅读体验
  • 在解决文档加载首页显示问题后,怎样完美处理文档完整性并快速加载后续数据展示

2. 如何处理大文档快速加载

  • 图片,音频,视频等大数据分时延迟处理
  • 文档 IO 处理边读边排按需加载机制
  • KBits 压缩型数据结构设计
  • 结合案例分析

3. 高帧率渲染逻辑设计

  • 更合适的文档渲染方案迭代选型
  • 多线程竟争协同处理机制
  • 结合案例分析

你将获得:

了解大型原生应用安卓研发中碰到的难点,可用于实际开发过程中碰到的类似场景:

  • 如何处理解决大量图片、音视频数据的内存性能
  • 如何根据实际情况在空间和时间上进行权衡
  • 如何选择更合适的渲染方案提升应用流畅度

by 张留涛

大疆
Android 开发组经理

在研发过程中如何度量新版本的变更范围和测试程度,是质量左移的必经之路,不仅能最大限度的保障测试有效性,还能控制宝贵的时间投入,做到让开发有信心、测试能放心。

本次演讲,主要结合我们在 DJIFLY 上对增量代码实时染色方案的落地经验,来具体讲述复杂场景下如何将其与团队的工作流深度融合,如何面对组件化方案带来的挑战及其解决思路。

演讲提纲:

1. 概览:增量代码实时染色方案

  • 什么是代码染色
  • 为什么要增量

2. 挑战:应对多仓库、多 Module 的场景

  • 实际项目中不同的仓库组合场景
  • 设计符合自身预期的数据结构

3. 流程:与 DevOps 深度结合

  • 在 DevOps 中的执行节点
  • 服务于哪些角色,如何服务
  • 报告的生产与合并

4. 闭环:如何在工作流中解读报告

  • 解读的方式与时机,寻找适合组织阶段的方式
  • 过程中遇到的问题,染色失败的几种情况
  • 解读结果的闭环,如何与单元测试和手工测试相结合

5. 细节:混淆对代码染色有影响吗?

  • JaCoCo 的插桩时机
  • JaCoCo 的插桩数据与源码的匹配关系

6. 未来:挑战与机遇

  • 组件化带来的挑战与解决思路
  • 精准化测试的陷阱,为工具赋予智慧

你将获得:

  • 了解代码染色技术在复杂项目中的落地经验
  • 了解组件化结合后的问题及解决思路
  • 了解混淆对代码染色的影响
  • 了解代码染色与单元测试、手工测试的配合关系

by 李腾飞

字节跳动
后端研发工程师

随着移动互联网的快速发展,各大厂都拥有自己的超级 APP,为了尽快的满足用户需求,研发同学需要在这些超级 APP 上快速完成功能迭代的同时,还要保证质量。以抖音举例,上百名来自不同部门的研发同学每周都会向抖音工程中集成各自的功能(支付、feed流、电商等),为了解决整个研发过程中的问题,字节内部自研了一套叫 Bits 的 Mobile DevOps 系统,用于支撑字节内部所有 APP 的 CI/CD 流程,保障了抖音、头条等头部 APP 的单周版本迭代。

本次分享将给大家介绍 Bits 系统从 0 到 1 过程中的一些工程经验和想法,通过 MR 从创建到合入的过程展现整个研发流程的细节和功能。

演讲提纲:

1. 背景

  • 字节移动端研发流程中碰到的问题
  • 字节 Mobile DevOps 演进过程和现状

2. 平台功能设计

  • 流程引擎 - 驱动上层业务流程,满足不同研发流程的需求
  • Pipeline 引擎 - 支持业务自定义负责流水线的触发、编排、状态流转执行,以及流水线元数据信息维护
  • 组件平台 - 组件托管/版本管理,为组件化开发做支撑
  • 集成区 - App 版本管理和集成,是过渡到 CD 的桥梁

3. 落地与实践

  • 多仓合码在业务中的使用
  • App 版本管控设计和流程
  • 从需求到代码之间的状态流转设计

4. 总结与展望

  • 尝试新的研发模式和流程,进一步为业务提供价值
  • 功能通用化,支持适合不同团队规模的研发模式和流程

你将获得:

  • 了解字节在 Mobile DevOps 的工程实践经验
  • 从上层视角了解字节内部针对不同 Mobile 端研发流程问题是如何解决的
  • 了解 Bits 如何把各个单点的功能平台化,以及完整的研发流程链路

by 袁晗光

百度
资深研发工程师

提升效率永远是软件研发要追求的目标,让代码实现跨平台运行似平就是永恒的主题。当前本该一样的业务逻辑双端需要各实现一遍,最后不仅体验上有着细微的差别,QA 也需要双端各验证一遍;以及由于 UI 代码没有很好的和业务逻辑代码解耦合,导致业务逻辑代码复用困难等,这些影响人效的瓶颈该如何突破?

本次将分享为什么偏爱 KMM 技术?如何减少为不同平台编写和维护相同业务逻辑代码所花费的时间,同时又能保留 NA 编程的录活性和优势。

演讲提纲:

1. 概述

  • KMM 基本原理介绍
  • 同类跨平台框架对比 - Flutter & React Native

2. KMM 开发环境介绍

  • Android Studio & Xcode 环境配置
  • 如何在已有的工程中集成 KMM – AAR & Framework 

3. 重要技术建设

  • 平台差异化实现方式 - expect/actual 
  • 多线程 - Frozen 状态、Atomic 类、Kotlin协程
  • 网络、数据库、业务组件(账号、打点、分享)
  • 已有组件交互插件 & 二进制打包发布插件

4. 实践落地

  • 落地情况介绍 
  • 业务收益 

你将获得:

  • 了解 KMM 在 App 开发中的价值
  • 了解团队是否适合应用 KMM 来提升研发效率
  • 了解 KMM 开发过程中常见的问题及解决技巧

交通指南

北京·四季酒店

Beijing International Convention Center
地址:北京市朝阳区亮马桥路48号
  • 微信咨询

  • 电话咨询

    联系电话:+86 15600537884

微信联系我们

小姐姐