dingding

上周五的時候磺陡,跟@大野一起吃飯让簿,聊到了釘釘Android 2015 都做了些什么敬察,達到什么效果,聊完以后尔当,大野說 “擦莲祸,這個應(yīng)該放到網(wǎng)上跟大家分享一下”,并給我規(guī)定了一個時間椭迎,周一搞定這個事情锐帜,今天上午忙完以后,我準備今天下午來這里分享一下釘釘Android的2015. 我先給大家分享一下釘釘Android 2015 取得了哪些成績Crash率降低到萬二畜号,領(lǐng)先行業(yè)千一的水平

在去年早些時候缴阎,我們做了一個功耗的測試,釘釘功耗全面優(yōu)于微信简软、QQ


聊天里大圖片的瀏覽 流暢度 優(yōu)于微信蛮拔,大家可以下載附件里的一個superimage.zip里的這個圖片,在釘釘?shù)牧奶毂陨⑽⑿帕奶旖拧Q聊天里打開這張圖片,查看大圖疼蛾,來滑動一下大圖肛跌,你會發(fā)現(xiàn)釘釘滑動更快。這里釘釘率先采用了分塊加載技術(shù)察郁。

在大圖瀏覽的時候衍慎,精確定位手指點擊,放大有需求的區(qū)域绳锅,方便細節(jié)查看西饵。當(dāng)查看一個原圖的時候,比如你想看左下角到底是什么內(nèi)容鳞芙,手指雙擊圖片的左下角眷柔,你會發(fā)現(xiàn)你點擊的區(qū)域不會消失,會放大這里原朝,圖片的上半部分可能不會顯示驯嘱,反之,你點擊圖片的上半部分的時候喳坠,上半部分會放大出來的鞠评。見下圖,點擊有框的部分壕鹉,出來的效果剃幌,這個效果是微信和QQ都沒有的


Android IM 消息問題兩小時定位聋涨,關(guān)于丟消息,或者狀態(tài)不對的問題负乡,我們可以兩小時定位

在Android上的冷啟動牍白,我們是優(yōu)于微信。在手機上抖棘,殺死微信茂腥、釘釘,然后點擊微信ICON切省,你會發(fā)現(xiàn)需要等待一會最岗,才出來微信的Splash頁面,釘釘?shù)腟plash頁面是秒起朝捆,與QQ處于同一個水平般渡。釘釘冷啟動到列表頁面頁面3秒內(nèi)可以完成,微信則需要5秒

不停發(fā)送表情右蹦,釘釘順暢地活著诊杆,微信死了。有A B兩個手機何陆,這兩個手機分別裝了微信晨汹,釘釘,從A手機不停地發(fā)送表情到B手機贷盲,我們在魅藍手機品牌上淘这,B手機上的微信死了,表情太多巩剖,處理不過來铝穷,換成釘釘,你會發(fā)現(xiàn)釘釘還順暢而低調(diào)地接收著佳魔。

聊天界面的流暢度曙聂,從感官上釘釘優(yōu)于微信,并且滾動速度優(yōu)于微信

在6月份進行了OOM的優(yōu)化鞠鲜,OOM的BUG減少了70%

那么Android 2015我們都做了什么呢宁脊?Android完成了模塊拆分,各模塊間采取了接口依賴的方式贤姆,降低了以前開發(fā)的時候相互依賴榆苞,解決一個BUG,可能由于回歸不全面而造成一些沒有發(fā)現(xiàn)的BUG上線霞捡,同事個模塊間采用aar的方式依賴坐漏,方便了模塊版本的回退,不再通過代碼回滾的方式來進行回滾。這里加速了大家的開發(fā)效率和質(zhì)量

引入FRESCO中的圖片分配到native和一些native的bytearray重用思想赊琳,進一步降低了圖片的內(nèi)存空間街夭,與內(nèi)存碎片的問題,同時我們還做了FRESCO沒有做的事情慨畸,那就是當(dāng)新的機制不生效莱坎,如何進行降級的問題衣式,比如FRESCO的SO加載失敗寸士,那么FRESCO就不會顯示這張圖片,釘釘Android里即使SO加載不起來碴卧,圖片會分配到JAVA層弱卡,同樣可以顯示,還有就是byte array的降級住册,當(dāng)native突然壞了婶博,可以拷貝JAVA層,從natvie到native荧飞,從JAVA到native凡人,從native到JAVA,從JAVA到JAVA叹阔,我們做了全面的降級兼容機制挠轴,這里已經(jīng)超越了FRESCO以前的使用機制,體驗更好

建立了監(jiān)控大盤耳幢,可以清楚地看到那個模塊消耗流量岸晦、電量,更方便我們來維護釘釘?shù)恼w健康睛藻,同時也對我們線上的問題排查效率更快启上,可以看一下下邊的流量餅圖和電量餅圖。


形成性能閉環(huán)店印,在開發(fā)中進行數(shù)據(jù)收集冈在,灰度中進行數(shù)據(jù)采集,線上進行監(jiān)控按摘,形成性能閉環(huán)在開發(fā)版本包券,我們會對泄漏進行檢測,比如Activity 泄漏院峡,F(xiàn)ragment泄漏兴使,文件句柄沒有關(guān)閉的檢測等等,在同學(xué)進行開發(fā)的時候照激,就能發(fā)現(xiàn)各種可能存在的問題发魄。



在灰度版本中,我們會手機一些諸如流暢度的數(shù)據(jù)來分析我們APP的健康度



在線上正式版,我們會生成流量餅圖等數(shù)據(jù)

WEB容器引入了HPM機制励幼,從而使得我們的微應(yīng)用像native app一樣的流暢汰寓,同時我們還支持了H5的native導(dǎo)航欄

簡化了國際化字符串的復(fù)雜度,釘釘?shù)哪J自由是英文苹粟,而不是中文有滑,很多時候,我們的同學(xué)在填寫字符串的時候嵌削,只記得填寫中文的字符串毛好,而忘記了默認的字符串,從而導(dǎo)致切換到英文以后苛秕,可能由于找不到資源而崩潰肌访。這里我們采取了簡化方案,有一個字符文件艇劫,這個文件包括各種翻譯吼驶,然后通過腳本去生存英文字符集,中文字符集等店煞,同時還通過我們的美杜莎項目蟹演,可以從服務(wù)器端來下載翻譯,達到多端統(tǒng)一的目的顷蟀,下邊是我們的字符文件的一個縮略圖酒请。


建立了Trace系統(tǒng),與悟空的火眼對接衩椒,可以很方便地看到每條消息的狀態(tài)蚌父,加速了問題定位能力

建立了端上的異常處理機制,主要包括內(nèi)測不夠了毛萌,磁盤不夠了苟弛,進行磁盤釋放、內(nèi)存釋放

針對釘釘?shù)腣IP用戶阁将,我們建立了VIP報警機制膏秫,可以及時地看到VIP用戶的使用情況,更好滴服務(wù)好VIP用戶


與測試同學(xué)一起做盅,建立了4級灰度機制缤削,將90%的BUG扼殺在正式版本之前,內(nèi)部daily build吹榴,1K內(nèi)測組亭敢,5WRC組,Pre-Release图筹。內(nèi)部daily build:主要是很對釘釘內(nèi)部的同學(xué)進行使用
1K組內(nèi)測組:主要是包括共創(chuàng)用戶帅刀,這里是包括外部用戶的让腹,有1000左右的內(nèi)測用戶
5W RC組:包括1K內(nèi)測組的,同時也是包括釘釘內(nèi)部同學(xué)的扣溺,除此以外骇窍,還包括共創(chuàng)企業(yè),目前只有2W的用戶锥余,我們的目標是5W的用戶在這個組里
Pre-Release:這里主要是在發(fā)布之前腹纳,我們會推送給大概10W用戶,然后開始觀察數(shù)據(jù)驱犹,通過motu來收集crash情況嘲恍,通過我們的客服反饋來收集客服那里反饋的問題,在確定都沒有問題以后着绷,我們開始全面推送

與測試同學(xué)一起蛔钙,完善了測試體系,部分核心代碼的單測荠医、STC靜態(tài)掃墓、自動化腳本桑涎、功能測試彬向、性能測試、適配測試攻冷,這里還要提一下的就是娃胆,我們使用了test in來進行跑測試,每個迭代在代碼第一次全部集成以后等曼,就會每天到test in跑兩次里烦,每次100臺機器,更好地發(fā)現(xiàn)crash和適配問題禁谦。

** **** 就先寫到這里吧胁黑,感覺好多的東西,什么時候再回來豐富一下州泊,one more thing丧蘸,我把目前Android的一個整體設(shè)計圖,附在下邊吧遥皂,可以讓大家全方位地了解釘釘Android力喷。

以上的成績并不是我一個人來完成的,而是全體釘釘同學(xué)演训,包括Android同學(xué)弟孟,服務(wù)器端同學(xué),測試同學(xué)等大家一起來完成的样悟,非常感謝同學(xué)們在2015的努力與付出拂募。 ** 接下來2016年,我們將會做些什么呢,其實2016年我們想做的事情很多没讲,我這里寫幾個大的事情吧眯娱。Android瘦身,如果我們不瘦身爬凑,那么我們將成為App屆的巨無霸徙缴,會給我們的用戶直接帶來流量損失,這里我們需要變得更苗條嘁信。

多進程于样,讓App跑的更健康

非UI的代碼單測達到80%


By the way,如果有同學(xué)對我們已經(jīng)實現(xiàn)的東西潘靖,或者我們尚未做的事情穿剖,感興趣的話,我們可以來一起共同學(xué)習(xí)成長卦溢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末糊余,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子单寂,更是在濱河造成了極大的恐慌贬芥,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宣决,死亡現(xiàn)場離奇詭異蘸劈,居然都是意外死亡,警方通過查閱死者的電腦和手機尊沸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門威沫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人洼专,你說我怎么就攤上這事棒掠。” “怎么了壶熏?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵句柠,是天一觀的道長。 經(jīng)常有香客問我棒假,道長溯职,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任帽哑,我火速辦了婚禮谜酒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妻枕。我一直安慰自己僻族,他們只是感情好粘驰,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著述么,像睡著了一般蝌数。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上度秘,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天顶伞,我揣著相機與錄音,去河邊找鬼剑梳。 笑死唆貌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的垢乙。 我是一名探鬼主播锨咙,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼追逮!你這毒婦竟也來了酪刀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤羊壹,失蹤者是張志新(化名)和其女友劉穎蓖宦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體油猫,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年柠偶,在試婚紗的時候發(fā)現(xiàn)自己被綠了情妖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡诱担,死狀恐怖毡证,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蔫仙,我是刑警寧澤料睛,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站摇邦,受9級特大地震影響恤煞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜施籍,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一居扒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丑慎,春花似錦喜喂、人聲如沸瓤摧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽照弥。三九已至,卻和暖如春进副,著一層夾襖步出監(jiān)牢的瞬間这揣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工敢会, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留曾沈,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓鸥昏,卻偏偏與公主長得像塞俱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吏垮,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容