穿上喷气背包与世界共同跳动 | Android 开发者故事

366 阅读6分钟
应用全球化的趋势正在让一些公司快速崛起,开发团队如何在这样的背景下提高效率、放眼世界,是所有规模达到一定程度的公司共同面对的问题。


字节跳动公司旗下的抖音 (TikTok) ,是中国开发者的产品中全球化程度相当高的一个,它的开发团队目前全部位于中国。在单一国家和地区的用户规模天花板对于抖音并不遥远时,它的开发团队早早穿上了喷气背包,飞到高处看到了更广阔的天地。

可靠组件提升工作效率
工整模型培养好习惯

抖音于 2016 年 9 月在中国上线,而登陆海外市场的计划也于 2017 年 3 月开始启动,经过近两年的出海征程,抖音已经在全球市场取得了巨大成功,并在Google Play Best of 2018 获诸多奖项,摘得 "最佳应用" (印尼区)、 "最佳娱乐应用" (全球)、 "用户喜爱应用" (韩国、墨西哥及日本区) 等多项大奖。


                                 △ 抖音在2018年在 Google Play 上获得了多项大奖

随着团队规模的扩张,国际业务线的复杂化,如何让源源不断加入的新同事在庞大而精细的产品架构中更加高效整洁地编写代码,长期保持代码库的易维护性和协作性,是门大学问。

Google 推出了 Android Jetpack 系列组件以来,越来越多的 Android 开发者们开始使用这个 "喷气背包" 里的组件打磨产品。

抖音 Android 开发团队的阿沐和小火说,Jetpack 给他们团队带来的,是通用开发效率和稳定性上的提升。比如,在使用了 Lifecycle 以后,他们不用再去管理 Activity 生命周期的内容,可以放心将这部分工作全部代理给 Lifecycle了。


                                                   △ 抖音的工程师们在工作中

团队中的阿达曾经自己注册了一些观察者,有时候会忘记反注册而造成内存泄漏,在整体采用 LiveData 之后,这些问题已经不会出现。

阿沐表示,曾经的一些程序 crash 以及 OOM 问题,很多是因为开发方式导致的。有一些 crash 问题在灰度测试的时候可以第一时间发现,但有些 OOM 的问题其实可以 "潜伏" 很久,不经过长时间的运转以及问题的积攒是难以发现的,通过使用 Jetpack 的开发组件,可以从源头上避免这些问题的产生,这对整体工程的质量有明显帮助。而 Jetpack 在团队内部的兴起,在规范开发流程上也有所帮助。


                                                          △ 抖音工程师的工位

在对新员工培训的时候,阿沐和其他经验丰富的同事会套用一些 Jetpack 的范式,请新人参考范式写代码,这样不容易出错。 "如果照旧的那种模式去写的话,有时候会忘记,尤其一些工作经验不太足的新员工,Jetpack 的应用效果对他们的提高更明显。" 阿沐表示 Jetpack 的出现,意外地在新员工培训层面为团队减轻了不少负担。

高速发展不忘做好本地化
微小提升也能节约大成本

抖音如今在日本、东南亚以及欧洲和北美市场都获得了可观的用户数量,这与团队着重聆听各地区用户的声音有关。

经过两年多的发展,抖音已经从最初那个音乐短视频社区演化成为一个新型内容平台,而在这个平台上,相比国内用户,抖音的海外用户更看重编辑功能。


而在一些问题较为复杂的市场,抖音的 Android 端开发团队也做了一些特别的工具来捕捉问题。在印尼等东南亚国家,应用启动阶段的性能体验是开发团队需要考虑的重点,Android 端团队会制作一些工具,以便于发现当地用户的应用启动不顺畅是什么原因造成的,比如有些是 DNS 解析阶段出了问题,有些是下载或者上传以及拉取信息流阶段出现了问题,最后端团队根据他们开发工具定位到的问题,来协助其他部门的同事进行服务端、网络、CDN 的优化工作。


                                       △ 新技术的应用帮助字节跳动公司降低运营成本

随着国际化进程的加快,新的技术也在节约公司运营成本上做出了贡献。字节跳动公司一直对新技术有所关注,很早的时候开发团队就在考虑将 HEIF 格式应用到所有预览动图上。如今 Android 9 在有支持的设备上增加 HEIF 功能后,现在抖音的开发团队正在进行测试,评估原生系统 HEIF 应用下的加载速度、电量等情况。 "虽然对小型开发商来说,去适配 HEIF 格式可能不是一件投入产出比特别明显的工作,但对于抖音这样现在数据吞吐量极大的应用而言,即使这样一点微小的提升,应用落地后每年能为公司节约的带宽成本也是很可观的,这也是团队坚持向更好的体验和技术转移的一个动力。" 阿沐说。

在工具链方面,目前抖音的 Android 开发团队已经全部使用 Android Studio 进行工作,使用 profiler 定位性能问题是他们最常用的功能。

热爱生活的人们,在世界的各个角落用手机记录着自己的喜怒哀乐。而工程师们和他们写下的代码,在这个全球化进度加深的时代,也穿上了喷气背包,与世界一起跳动着,行走着,记录着,并一同快乐着。

如果您也有关于使用 Android 技术的精彩故事想要跟更多的开发者分享,欢迎点击这里填写报名表并提交参与