客戶端程序優(yōu)化

一盾致、架構(gòu)演化

1、獨(dú)立型應(yīng)用:
    功能特征:?業(yè)務(wù)簡(jiǎn)單荣暮,用戶操作體驗(yàn)簡(jiǎn)單庭惜,頁(yè)面量少
    開(kāi)發(fā)團(tuán)隊(duì)特征:人數(shù)少,溝通方便穗酥,
    業(yè)務(wù)特征:業(yè)務(wù)變化頻繁护赊,不穩(wěn)定
2、平臺(tái)型應(yīng)用:
    功能特征:業(yè)務(wù)稍復(fù)雜砾跃,用戶操作體驗(yàn)稍復(fù)雜骏啰,頁(yè)面量增多
    開(kāi)發(fā)團(tuán)隊(duì)特征:人數(shù)稍多,溝通成本已成為重要條件之一
    業(yè)務(wù)特征:業(yè)務(wù)變化穩(wěn)定抽高,多增加新業(yè)務(wù)器一,少修改老業(yè)務(wù),業(yè)務(wù)相關(guān)性低
3厨内、生態(tài)型應(yīng)用:
    功能特征:業(yè)務(wù)復(fù)雜祈秕、關(guān)聯(lián)性高,用戶操作復(fù)雜雏胃,頁(yè)面量大
    開(kāi)發(fā)團(tuán)隊(duì)特征:多團(tuán)隊(duì)開(kāi)發(fā)请毛,溝通成本較高
    業(yè)務(wù)特征:業(yè)務(wù)變化穩(wěn)定,多增加新業(yè)務(wù)瞭亮,少修改老業(yè)務(wù)方仿,業(yè)務(wù)相關(guān)性高

二、技術(shù)挑戰(zhàn)

1、業(yè)務(wù)復(fù)雜性
    頁(yè)面多
    流程復(fù)雜
    業(yè)務(wù)關(guān)聯(lián)性增強(qiáng)
2仙蚜、設(shè)備多樣性
    設(shè)備配置參差不齊此洲,高端設(shè)備、低端設(shè)備配置跨度大
    網(wǎng)絡(luò)狀況參差不齊委粉,優(yōu)秀WIFI網(wǎng)絡(luò)與GPRS帶寬水平跨度大

三呜师、性能優(yōu)化指標(biāo)

    1、啟動(dòng)時(shí)間
    2贾节、運(yùn)行流暢度
    3汁汗、卡頓時(shí)間、次數(shù)
    4栗涂、流量
    5知牌、重復(fù)下載
    6、HTML加載速度
    7斤程、耗電量
    8角寸、內(nèi)存占用
    9、GC
    10忿墅、WIFI掃描
    11扁藕、安裝包存儲(chǔ)
    12、本地緩存

四球匕、最佳實(shí)踐

    1纹磺、電量?jī)?yōu)化
          系統(tǒng)兼容性帖烘、業(yè)務(wù)亮曹、技術(shù)基礎(chǔ)、Wakelock
          耗電量增加指標(biāo):耗電排名秘症、耗電率
          引起耗電量升高因素:CPU使用率照卦、定位服務(wù)、線程掛起乡摹、輪詢服務(wù)役耕、網(wǎng)絡(luò)連接服務(wù)
          解決思路:dump所有線程,觀察線程消耗的CPU時(shí)間聪廉,從而定位到運(yùn)行線程的代碼
    2瞬痘、流量?jī)?yōu)化
          增量更新、網(wǎng)絡(luò)協(xié)議板熊、RPC
          流量增加指標(biāo):網(wǎng)絡(luò)請(qǐng)求流量閾值
          引起流量升高因素:網(wǎng)絡(luò)請(qǐng)求框全、遠(yuǎn)程資源下載
          解決思路:hook所有請(qǐng)求,指定流量閾值干签,針對(duì)超過(guò)閾值的請(qǐng)求進(jìn)行協(xié)議優(yōu)化津辩、業(yè)務(wù)優(yōu)化
    3、內(nèi)存優(yōu)化
          對(duì)象創(chuàng)建、對(duì)象占用喘沿、內(nèi)存泄露
          內(nèi)存異常指標(biāo):頻繁GC闸度、內(nèi)存消耗排名、長(zhǎng)時(shí)間使用內(nèi)存釋放率
          引起內(nèi)存異常因素:內(nèi)存泄露蚜印、Bitmap莺禁、異常長(zhǎng)時(shí)間持有對(duì)象無(wú)法釋放內(nèi)存
          解決思路:memtrace/hprof內(nèi)存分析,遍歷對(duì)象晒哄,釋放無(wú)用Bitmap睁宰,HTML頁(yè)面內(nèi)存消耗分析,對(duì)象池復(fù)用
    4寝凌、存儲(chǔ)優(yōu)化
          緩存同步策略柒傻、增量更新
          存儲(chǔ)異常指標(biāo):內(nèi)存增長(zhǎng)過(guò)快,內(nèi)存只漲不降
          引起存儲(chǔ)異常因素:緩存同步策略問(wèn)題
          解決思路:緩存同步策略優(yōu)化较木、增量更新红符,盡早釋放無(wú)用緩存

    5、應(yīng)用級(jí)架構(gòu)優(yōu)化
          插件化伐债、模塊化预侯、服務(wù)化
          架構(gòu)級(jí)異常:大中型應(yīng)用多業(yè)務(wù)開(kāi)啟長(zhǎng)連接、處理推送峰锁、處理即時(shí)聊天信息
          引起架構(gòu)級(jí)異常隱私:應(yīng)用級(jí)架構(gòu)設(shè)計(jì)問(wèn)題萎馅,溝通不暢
          解決思路:將應(yīng)用中的業(yè)務(wù)進(jìn)行模塊化設(shè)計(jì),降低功能與業(yè)務(wù)的耦合度虹蒋,參考iOS系統(tǒng)的設(shè)計(jì)思路糜芳,將諸如:推送、緩存魄衅、心跳等基礎(chǔ)服務(wù)功能從具體業(yè)務(wù)中獨(dú)立出來(lái)峭竣,使多個(gè)業(yè)務(wù)通過(guò)統(tǒng)一標(biāo)準(zhǔn)調(diào)用此類基礎(chǔ)服務(wù),提高架構(gòu)兼容性晃虫、穩(wěn)定性皆撩、擴(kuò)展性

五、穩(wěn)定性

  1哲银、Crash優(yōu)化
        指標(biāo):Crash率 0.1%扛吞、持久性閃退 < 0.001%
  2、啟動(dòng)閃退
        指標(biāo):?jiǎn)?dòng)時(shí)間
  3荆责、啟動(dòng)卡死
        指標(biāo):30s卡死
  4滥比、ANR
        指標(biāo):5sANR

六、超級(jí)App的運(yùn)維體系

1草巡、異常監(jiān)控

    客戶端:性能守呜、電量型酥、流量、內(nèi)存查乒、穩(wěn)定性弥喉、異常統(tǒng)計(jì)上報(bào)
    服務(wù)端:異常分析、提取特征玛迄、風(fēng)險(xiǎn)預(yù)測(cè)由境、自動(dòng)報(bào)警、狀態(tài)跟蹤

2蓖议、電量計(jì)算

    系統(tǒng)級(jí)數(shù)據(jù)采集:BatteryStatsHelper -> BatteryServiceImpl -> batterystats.bin
    電量消耗模型
            維度:CPU虏杰,Wakeup,Wakelock勒虾,WIFI纺阔,Tcp,WIFIScan修然,Sensor
            權(quán)重:power_profile.xml @ framework-res.apk
    關(guān)鍵技術(shù)優(yōu)化:Androidv4.4之后笛钝,系統(tǒng)收掉電量權(quán)限。目前獲取電量辦法是模仿整個(gè)Android系統(tǒng)計(jì)算電量愕宋,即從BatteryStats.bin中獲取每一個(gè)維度的權(quán)重玻靡,將維度和權(quán)重結(jié)合就可以算出Android系統(tǒng)的耗電量。

3中贝、快速定位診斷

    電量診斷:自動(dòng)收集CPU囤捻、Sensor、Wakelock的耗電數(shù)據(jù)邻寿、dump線程棧
    流量診斷:自動(dòng)收集高流量url
    閃退診斷:捕捉native閃退日志蝎土,內(nèi)存狀態(tài)日志

本文將不定期更新,敬請(qǐng)關(guān)注老厌。

參考文章:https://yq.aliyun.com/articles/59942?spm=5176.100239.blogcont69316.94.YliSMO

感謝:阿里云棲社區(qū)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瘟则,一起剝皮案震驚了整個(gè)濱河市黎炉,隨后出現(xiàn)的幾起案子枝秤,更是在濱河造成了極大的恐慌,老刑警劉巖慷嗜,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淀弹,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡庆械,警方通過(guò)查閱死者的電腦和手機(jī)薇溃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)缭乘,“玉大人沐序,你說(shuō)我怎么就攤上這事。” “怎么了策幼?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵邑时,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我特姐,道長(zhǎng)晶丘,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任唐含,我火速辦了婚禮浅浮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捷枯。我一直安慰自己滚秩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布淮捆。 她就那樣靜靜地躺著叔遂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪争剿。 梳的紋絲不亂的頭發(fā)上已艰,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音蚕苇,去河邊找鬼哩掺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛涩笤,可吹牛的內(nèi)容都是我干的嚼吞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蹬碧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼舱禽!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起恩沽,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤誊稚,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后罗心,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體里伯,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年渤闷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疾瓮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡飒箭,死狀恐怖狼电,靈堂內(nèi)的尸體忽然破棺而出蜒灰,到底是詐尸還是另有隱情,我是刑警寧澤肩碟,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布卷员,位于F島的核電站,受9級(jí)特大地震影響腾务,放射性物質(zhì)發(fā)生泄漏毕骡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一岩瘦、第九天 我趴在偏房一處隱蔽的房頂上張望未巫。 院中可真熱鬧,春花似錦启昧、人聲如沸叙凡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)握爷。三九已至,卻和暖如春严里,著一層夾襖步出監(jiān)牢的瞬間新啼,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工刹碾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留燥撞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓迷帜,卻偏偏與公主長(zhǎng)得像物舒,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子戏锹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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

  • 目錄介紹 1.關(guān)于知識(shí)圖譜 1.1 關(guān)于Android知識(shí)圖譜 1.2 關(guān)于博客類型知識(shí)圖譜 1.3 關(guān)于印象筆記...
    楊充211閱讀 8,670評(píng)論 19 35
  • 他在母親膝蓋上閉上了雙眼锦针,停留在眉間的苦痛荠察,此刻也伴隨生命釋然而舒展開(kāi),開(kāi)始永恒的夢(mèng)伞插,擺脫了背叛割粮,虛偽盾碗,無(wú)助媚污,入獄...
    卿誠(chéng)1閱讀 171評(píng)論 0 1
  • 我們把這些觀念親手灌輸進(jìn)他們幼小的心靈,等孩子變壞之后卻說(shuō)這是天性使然廷雅。 如果一個(gè)孩子長(zhǎng)期受這樣的女人養(yǎng)育耗美,那么不...
    兒童智能Haley閱讀 264評(píng)論 0 0
  • 概述 本文將對(duì)Artsy平臺(tái)進(jìn)行分析京髓,發(fā)表一些個(gè)人觀點(diǎn)。 公司簡(jiǎn)介 Artsy創(chuàng)立于2009年商架,目前規(guī)模已經(jīng)達(dá)到5...
    曾樑閱讀 2,013評(píng)論 0 4
  • 在C4D吧中堰怨,不少吧友制作“鎖鏈和鎖頭”的例子時(shí),都出現(xiàn)不少問(wèn)題蛇摸。一方面是我寫(xiě)的不詳細(xì)备图,沒(méi)有說(shuō)明白;另一方面...
    DIGITALMAN閱讀 4,100評(píng)論 2 39