dingding

上周五的时候,跟@大野一起吃饭,聊到了钉钉Android 2015 都做了些什么,达到什么效果,聊完以后,大野说 “擦,这个应该放到网上跟大家分享一下”,并给我规定了一个时间,周一搞定这个事情,今天上午忙完以后,我准备今天下午来这里分享一下钉钉Android的2015. 我先给大家分享一下钉钉Android 2015 取得了哪些成绩Crash率降低到万二,领先行业千一的水平

在去年早些时候,我们做了一个功耗的测试,钉钉功耗全面优于微信、QQ


聊天里大图片的浏览 流畅度 优于微信,大家可以下载附件里的一个superimage.zip里的这个图片,在钉钉的聊天、微信聊天、QQ聊天里打开这张图片,查看大图,来滑动一下大图,你会发现钉钉滑动更快。这里钉钉率先采用了分块加载技术。

在大图浏览的时候,精确定位手指点击,放大有需求的区域,方便细节查看。当查看一个原图的时候,比如你想看左下角到底是什么内容,手指双击图片的左下角,你会发现你点击的区域不会消失,会放大这里,图片的上半部分可能不会显示,反之,你点击图片的上半部分的时候,上半部分会放大出来的。见下图,点击有框的部分,出来的效果,这个效果是微信和QQ都没有的


Android IM 消息问题两小时定位,关于丢消息,或者状态不对的问题,我们可以两小时定位

在Android上的冷启动,我们是优于微信。在手机上,杀死微信、钉钉,然后点击微信ICON,你会发现需要等待一会,才出来微信的Splash页面,钉钉的Splash页面是秒起,与QQ处于同一个水平。钉钉冷启动到列表页面页面3秒内可以完成,微信则需要5秒

不停发送表情,钉钉顺畅地活着,微信死了。有A B两个手机,这两个手机分别装了微信,钉钉,从A手机不停地发送表情到B手机,我们在魅蓝手机品牌上,B手机上的微信死了,表情太多,处理不过来,换成钉钉,你会发现钉钉还顺畅而低调地接收着。

聊天界面的流畅度,从感官上钉钉优于微信,并且滚动速度优于微信

在6月份进行了OOM的优化,OOM的BUG减少了70%

那么Android 2015我们都做了什么呢?Android完成了模块拆分,各模块间采取了接口依赖的方式,降低了以前开发的时候相互依赖,解决一个BUG,可能由于回归不全面而造成一些没有发现的BUG上线,同事个模块间采用aar的方式依赖,方便了模块版本的回退,不再通过代码回滚的方式来进行回滚。这里加速了大家的开发效率和质量

引入FRESCO中的图片分配到native和一些native的bytearray重用思想,进一步降低了图片的内存空间,与内存碎片的问题,同时我们还做了FRESCO没有做的事情,那就是当新的机制不生效,如何进行降级的问题,比如FRESCO的SO加载失败,那么FRESCO就不会显示这张图片,钉钉Android里即使SO加载不起来,图片会分配到JAVA层,同样可以显示,还有就是byte array的降级,当native突然坏了,可以拷贝JAVA层,从natvie到native,从JAVA到native,从native到JAVA,从JAVA到JAVA,我们做了全面的降级兼容机制,这里已经超越了FRESCO以前的使用机制,体验更好

建立了监控大盘,可以清楚地看到那个模块消耗流量、电量,更方便我们来维护钉钉的整体健康,同时也对我们线上的问题排查效率更快,可以看一下下边的流量饼图和电量饼图。


形成性能闭环,在开发中进行数据收集,灰度中进行数据采集,线上进行监控,形成性能闭环在开发版本,我们会对泄漏进行检测,比如Activity 泄漏,Fragment泄漏,文件句柄没有关闭的检测等等,在同学进行开发的时候,就能发现各种可能存在的问题。



在灰度版本中,我们会手机一些诸如流畅度的数据来分析我们APP的健康度



在线上正式版,我们会生成流量饼图等数据

WEB容器引入了HPM机制,从而使得我们的微应用像native app一样的流畅,同时我们还支持了H5的native导航栏

简化了国际化字符串的复杂度,钉钉的默认自由是英文,而不是中文,很多时候,我们的同学在填写字符串的时候,只记得填写中文的字符串,而忘记了默认的字符串,从而导致切换到英文以后,可能由于找不到资源而崩溃。这里我们采取了简化方案,有一个字符文件,这个文件包括各种翻译,然后通过脚本去生存英文字符集,中文字符集等,同时还通过我们的美杜莎项目,可以从服务器端来下载翻译,达到多端统一的目的,下边是我们的字符文件的一个缩略图。


建立了Trace系统,与悟空的火眼对接,可以很方便地看到每条消息的状态,加速了问题定位能力

建立了端上的异常处理机制,主要包括内测不够了,磁盘不够了,进行磁盘释放、内存释放

针对钉钉的VIP用户,我们建立了VIP报警机制,可以及时地看到VIP用户的使用情况,更好滴服务好VIP用户


与测试同学一起,建立了4级灰度机制,将90%的BUG扼杀在正式版本之前,内部daily build,1K内测组,5WRC组,Pre-Release。内部daily build:主要是很对钉钉内部的同学进行使用
1K组内测组:主要是包括共创用户,这里是包括外部用户的,有1000左右的内测用户
5W RC组:包括1K内测组的,同时也是包括钉钉内部同学的,除此以外,还包括共创企业,目前只有2W的用户,我们的目标是5W的用户在这个组里
Pre-Release:这里主要是在发布之前,我们会推送给大概10W用户,然后开始观察数据,通过motu来收集crash情况,通过我们的客服反馈来收集客服那里反馈的问题,在确定都没有问题以后,我们开始全面推送

与测试同学一起,完善了测试体系,部分核心代码的单测、STC静态扫墓、自动化脚本、功能测试、性能测试、适配测试,这里还要提一下的就是,我们使用了test in来进行跑测试,每个迭代在代码第一次全部集成以后,就会每天到test in跑两次,每次100台机器,更好地发现crash和适配问题。

** **** 就先写到这里吧,感觉好多的东西,什么时候再回来丰富一下,one more thing,我把目前Android的一个整体设计图,附在下边吧,可以让大家全方位地了解钉钉Android。

以上的成绩并不是我一个人来完成的,而是全体钉钉同学,包括Android同学,服务器端同学,测试同学等大家一起来完成的,非常感谢同学们在2015的努力与付出。 ** 接下来2016年,我们将会做些什么呢,其实2016年我们想做的事情很多,我这里写几个大的事情吧。Android瘦身,如果我们不瘦身,那么我们将成为App届的巨无霸,会给我们的用户直接带来流量损失,这里我们需要变得更苗条。

多进程,让App跑的更健康

非UI的代码单测达到80%


By the way,如果有同学对我们已经实现的东西,或者我们尚未做的事情,感兴趣的话,我们可以来一起共同学习成长。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容