写点什么

专访刘刚:360 手机卫士的性能监控与优化

  • 2016-08-09
  • 本文字数:1804 字

    阅读完需:约 6 分钟

作为一款移动端产品,除了要保证安全性之外,手机卫士还需要考虑尽量减少对手机资源的消耗,而要做到这些,360 手机卫士对于自身的性能优化、性能监控,以及对不同产品的适配问题,有哪些改进之处值得我们借鉴呢?

2016 年 8 月 18-19 日,由极客邦、InfoQ 和听云联合主办的 APMCon2016 中国应用性能管理大会将在北京举行(现在报名,享8 折优惠),聚焦当前最为关键的移动端、Web 端和Server 端的性能监控和管理技术。

本届大会,我们有幸邀请到了360 手机卫士高级技术经理 刘刚,前来分享《手机卫士之性能演进历程》的内容,会详细地介绍Android 端手机卫士的性能优化之路,如何做到对系统故障的预防、监控、诊断、响应等技术细节。

InfoQ:360 手机卫士的性能优化经历了哪几个阶段?

刘刚:我大概是在 2013 年 10 月来到手机卫士,经历了手机卫士优化的 3 个阶段:

第一个阶段主要是插件化和拆分进程,这个阶段主要的目的是解决方法数和内存的问题。

第二个阶段功能模块插件化,这个阶段的目的解决两件事:

  1. 解决卡慢问题,因为代码模块化解耦后,主程序的代码(核心 dex)减少,并且经过一定优化后,比所有竞品 APK 体积小,运行内存小;
  2. 功能模块独立,用户可以按需下载,独立升级;

第三个阶段主要是性能监控常态化,这个阶段主要是通过 AOP 的手段,进行实时监控,持续对内存、启动速度、电量、流量等优化。

InfoQ:对于手机卫士这种产品,在性能上有哪些优化点?

刘刚:手机卫士产品作为最常用的移动端产品,和其他移动端产品最大的区别是在非主动使用的情况下,在保证用户手机安全性的同时,要求我们在后台进程对于系统的影响做到最小,所以对于后台进程要做到占用更小的内存,更高效的执行速度,使用非轮询方式等。

InfoQ:对于代码检测,你们使用了哪些工具,是否自己开发了相关的工具?

刘刚:对于代码检查,我们使用 Lint、findbugs 和我们 360 自己独有的代码红线工具,其中 findbugs 我们进行了定制化的修改,添加了检测器,主要检查流关闭问题。

InfoQ:我看到你们使用 AOP 实现静态埋点,为什么使用这种技术?

刘刚:其实 AOP 和无痕埋点我们都有,我们 AOP 主要是做流量、电量等一些监控,这种不存在兼容性的适配问题,无痕埋点这种我们主要是用于启动速度,内存等一些监控,我们是根据监控的对象进行了不同的选型。

InfoQ:静态埋点如何保证最少资源消耗,如何做可扩展?

刘刚:我们使用静态埋点是采样的机制,有云控的开关和有效的监控期,另外在静态埋点处我们只是做了一个异步采样机制,并没有其他执行代码,这样基本上能保证较少的资源消耗,因为静态埋点的机制决定了,扩展性是相对较弱的,我们是通过预埋一些桩,在 AOP 里加了一些动态化的监控机制,通过下发插件或者云控指令的方式进行了一定程度的扩展。

InfoQ:对于实时的性能监控,你们有哪些手段?

刘刚:主要对于进程的冷热启动、Activity 等四大组件的加载时间、线程和 task 的卡慢和内存监控、启动次数,具体的实现方式和原理都会在 APMCon2016 上进行分享。

InfoQ:对于移动应用的性能问题定义了哪些指标?

刘刚:移动端的设备性能差别非常大,性能指标和机型、ROM 相关性特别大,像内存指标不同 ROM、机型上的差异很大,所以定义性能指标时一定和机型进行参考,我们的性能指标主要是包含内存、冷热启动时间、四大组件的加载时间、流量、电量等。

InfoQ:我看到你们使用了插件化技术,对于插件的性能监控和修复,与一般的应用相比有哪些特殊的地方?

刘刚:我们的插件都具有独立的可升级能力,修复只要利用插件升级即可,像热修复对于插件意义没有那么大。另外我们手机卫士的插件都是通过我们自己的编译后台生成的,具备所有的静态 AOP 和动态监控能力,和我们主程序没有什么特殊的地方。

InfoQ:在 8 月份的 APMCon2016 大会上,您将现场分享《手机卫士之性能演进历程》内容,具体会讲那些技术点呢?参会者能有哪些收益?

刘刚:会详细描述我们手机卫士的性能演进的过程,遇到的问题,解决方法以及对应的代码实现,主要包含代码检测、自动化分析、资源优化、实时性能监控、内存分析、磁盘分析以及动态热修复等技术点,相信大家还是有感兴趣的点。

InfoQ:感谢刘老师接受我们的采访,期待您在 APMCon 上的精彩演讲。

关于受访嘉宾

刘刚,360 手机卫士高级技术经理。360 无线技术委员会委员,手机卫士开发 leader,有着 16 年开发经验,有着丰富的客户端 / 服务器端 / 无线端的开发经验,对于新技术仍然保持着强烈好奇心。

2016-08-09 03:167046
用户头像

发布了 164 篇内容, 共 117.8 次阅读, 收获喜欢 392 次。

关注

评论

发布
暂无评论
发现更多内容

Amazon Q Developer CLI 如何提升独立游戏开发者的开发体验

亚马逊云科技 (Amazon Web Services)

浩辰软件斩获鸿蒙办公行业先锋奖,为鸿蒙生态注入CAD新活力

在路上

cad 浩辰CAD CAD看图王

Nexus Core建AI工厂,用绿能与新一代算力驱动

财见

YashanDB数据库的视频监控数据存储方案

数据库砖家

深度解析ISO 50007-结合MyEMS开源系统的能源服务技术实践

开源能源管理系统

开源 能源管理 开源能源管理 iso 50007

可视化建站工具

微擎应用市场

YashanDB数据库的索引策略,如何提升查询速度?

数据库砖家

YashanDB数据库的行业应用及潜在市场价值

数据库砖家

YashanDB数据库的维护成本与效益分析

数据库砖家

使用DataSecurity Plus监控Windows文件完整性

运维有小邓

日志管理 IT运维 文件监控

生成式AI服务再添合规标杆:iCourt旗下AlphaGPT完成备案

科技汇

彩讯AI邮箱荣获"华为鸿蒙办公创新合作奖",Rich M@il全面预装华为线下门店

彩讯股份300634

鸿蒙Next仓颉开发语言中的数据类型总结分享

幽蓝计划

harmoyos

缩放、镜像、偏移,用好这3个CAD功能,让图纸修改效率狂飙!

在路上

cad cad看图 CAD看图王

区块链 RWA 系统的主要功能

北京木奇移动技术有限公司

区块链技术 软件外包公司 RWA开发

YashanDB数据库的水平扩展能力与实现方法

数据库砖家

微店商品详情API接口详解

tbapi

微店商品详情接口 微店API 微店商品数据采集 微店商品详情数据采集

MyEMS开源能源管理系统核心代码解读004

开源能源管理系统

开源 代码 能源管理 worker函数

本地汽车洗护服务平台

微擎应用市场

巅峰对决,超三十万奖金等你挑战!

默语

YashanDB数据库的迁移技巧与挑战

数据库砖家

YashanDB数据库的用户权限管理及安全配置

数据库砖家

电子科技大学 鲲鹏昇腾科教创新孵化中心揭牌,打造中国算力生态“成电范式”

极客天地

CST软件如何启用stage view背景渲染和爆炸图

思茂信息

cst操作 cst电磁仿真 CST软件 CST Studio Suite

HR Path收购ClearCourse

财见

聚势增长!Unity 确认参展 2025 ChinaJoy BTOB

极客天地

YashanDB数据库的网络配置与优化方法

数据库砖家

YashanDB数据库的维度建模与数据仓库设计

数据库砖家

YashanDB数据库的用户界面及体验优化

数据库砖家

真的要动起来了

王中阳Go

程序员 运动

数据可视化与能源管理的技术分野:Grafana 与 MyEMS 深度对比

开源能源管理系统

开源 Grafana 能源管理 开源能源管理系统

专访刘刚:360手机卫士的性能监控与优化_后端_徐川_InfoQ精选文章