客户端程序优化

一、架构演化

1、独立型应用:
    功能特征:�业务简单,用户操作体验简单,页面量少
    开发团队特征:人数少,沟通方便,
    业务特征:业务变化频繁,不稳定
2、平台型应用:
    功能特征:业务稍复杂,用户操作体验稍复杂,页面量增多
    开发团队特征:人数稍多,沟通成本已成为重要条件之一
    业务特征:业务变化稳定,多增加新业务,少修改老业务,业务相关性低
3、生态型应用:
    功能特征:业务复杂、关联性高,用户操作复杂,页面量大
    开发团队特征:多团队开发,沟通成本较高
    业务特征:业务变化稳定,多增加新业务,少修改老业务,业务相关性高

二、技术挑战

1、业务复杂性
    页面多
    流程复杂
    业务关联性增强
2、设备多样性
    设备配置参差不齐,高端设备、低端设备配置跨度大
    网络状况参差不齐,优秀WIFI网络与GPRS带宽水平跨度大

三、性能优化指标

    1、启动时间
    2、运行流畅度
    3、卡顿时间、次数
    4、流量
    5、重复下载
    6、HTML加载速度
    7、耗电量
    8、内存占用
    9、GC
    10、WIFI扫描
    11、安装包存储
    12、本地缓存

四、最佳实践

    1、电量优化
          系统兼容性、业务、技术基础、Wakelock
          耗电量增加指标:耗电排名、耗电率
          引起耗电量升高因素:CPU使用率、定位服务、线程挂起、轮询服务、网络连接服务
          解决思路:dump所有线程,观察线程消耗的CPU时间,从而定位到运行线程的代码
    2、流量优化
          增量更新、网络协议、RPC
          流量增加指标:网络请求流量阈值
          引起流量升高因素:网络请求、远程资源下载
          解决思路:hook所有请求,指定流量阈值,针对超过阈值的请求进行协议优化、业务优化
    3、内存优化
          对象创建、对象占用、内存泄露
          内存异常指标:频繁GC、内存消耗排名、长时间使用内存释放率
          引起内存异常因素:内存泄露、Bitmap、异常长时间持有对象无法释放内存
          解决思路:memtrace/hprof内存分析,遍历对象,释放无用Bitmap,HTML页面内存消耗分析,对象池复用
    4、存储优化
          缓存同步策略、增量更新
          存储异常指标:内存增长过快,内存只涨不降
          引起存储异常因素:缓存同步策略问题
          解决思路:缓存同步策略优化、增量更新,尽早释放无用缓存

    5、应用级架构优化
          插件化、模块化、服务化
          架构级异常:大中型应用多业务开启长连接、处理推送、处理即时聊天信息
          引起架构级异常隐私:应用级架构设计问题,沟通不畅
          解决思路:将应用中的业务进行模块化设计,降低功能与业务的耦合度,参考iOS系统的设计思路,将诸如:推送、缓存、心跳等基础服务功能从具体业务中独立出来,使多个业务通过统一标准调用此类基础服务,提高架构兼容性、稳定性、扩展性

五、稳定性

  1、Crash优化
        指标:Crash率 0.1%、持久性闪退 < 0.001%
  2、启动闪退
        指标:启动时间
  3、启动卡死
        指标:30s卡死
  4、ANR
        指标:5sANR

六、超级App的运维体系

1、异常监控

    客户端:性能、电量、流量、内存、稳定性、异常统计上报
    服务端:异常分析、提取特征、风险预测、自动报警、状态跟踪

2、电量计算

    系统级数据采集:BatteryStatsHelper -> BatteryServiceImpl -> batterystats.bin
    电量消耗模型
            维度:CPU,Wakeup,Wakelock,WIFI,Tcp,WIFIScan,Sensor
            权重:power_profile.xml @ framework-res.apk
    关键技术优化:Androidv4.4之后,系统收掉电量权限。目前获取电量办法是模仿整个Android系统计算电量,即从BatteryStats.bin中获取每一个维度的权重,将维度和权重结合就可以算出Android系统的耗电量。

3、快速定位诊断

    电量诊断:自动收集CPU、Sensor、Wakelock的耗电数据、dump线程栈
    流量诊断:自动收集高流量url
    闪退诊断:捕捉native闪退日志,内存状态日志

本文将不定期更新,敬请关注。

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

感谢:阿里云栖社区

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

推荐阅读更多精彩内容

  • 目录介绍 1.关于知识图谱 1.1 关于Android知识图谱 1.2 关于博客类型知识图谱 1.3 关于印象笔记...
    杨充211阅读 8,627评论 19 34
  • 他在母亲膝盖上闭上了双眼,停留在眉间的苦痛,此刻也伴随生命释然而舒展开,开始永恒的梦,摆脱了背叛,虚伪,无助,入狱...
    卿诚1阅读 164评论 0 1
  • 我们把这些观念亲手灌输进他们幼小的心灵,等孩子变坏之后却说这是天性使然。 如果一个孩子长期受这样的女人养育,那么不...
    儿童智能Haley阅读 259评论 0 0
  • 概述 本文将对Artsy平台进行分析,发表一些个人观点。 公司简介 Artsy创立于2009年,目前规模已经达到5...
    曾樑阅读 1,980评论 0 4
  • 在C4D吧中,不少吧友制作“锁链和锁头”的例子时,都出现不少问题。一方面是我写的不详细,没有说明白;另一方面...
    DIGITALMAN阅读 4,078评论 2 39