blockcanary

深入学习性能优化--面试使用

非 Y 不嫁゛ 提交于 2020-09-29 07:18:25
转载地址 1、 你对 APP 的启动有过研究吗? 有做过相关的启动优化吗? 程序员: 之前做热修复的时候研究过 Application 的启动原理。项目中也做过一些启动优化。 面试官: 哦,你之前研究过热修复? (这个时候有可能就会深入的问问热修复的原理,这里咱们就不讨论热修复原理) 那你说说对启动方面都做了哪些优化? 程序员: 1 .我发现程序在冷启动的时候,会有 1s 左右的白屏闪现,低版本是黑屏的现象,在这期间我通过翻阅系统主题源码,发现了系统 AppTheme 设置了一个 windowBackground ,由此推断就是这个属性捣的鬼,开始我是通过设置 windowIsTranslucent 透明属性,发现虽然没有了白屏,但是中间还是有一小段不可见,这个用户体验还是不好的。最后我观察了市面上大部分的 Android 软件在冷启动的时候都会有一个 Splash 的广告页,同时在增加一个倒数的计时器,最后才进入到登录页面或者主页面。我最后也是这样做的,原因是这样做的好处可以让用户先基于广告对本 APP 有一个基本认识,而且在倒数的时候也预留给咱们一些对插件和一些必须或者耗时的初始化做一些准备。 Ps:这里会让面试官感觉你是一个注重用户体验的 2 .通过翻阅 Application 启动的源码,当我们点击桌面图标进入我们软件应用的时候,会由 AMS 通过 Socket 给

Android终端系统APP应用性能测试之响应速度&流畅度

淺唱寂寞╮ 提交于 2020-08-18 21:35:00
Android性能测试的基础,给大家介绍下测试思路! 响应速度: 是指终端中的APP/应用的启动时间 (包含冷启动和热启动 ,补充概念:”冷启动”:是指APP/应用第一次开启;”热启动”:是指APP/应用第二次以后开启;); 这里的启动方式有两种:1.人工手动点击打开;2.通过命令启动该应用;(这两者启动肯定是有误差的,实际上在手机面向客户,所以经常采用人工启动应用开始计时) 测试方法1: 我们可以采用秒表计时方式,从人点击开始计时到应用打开后计算时间,但是这种计时方式是最最不准确的,误差和错误非常大,一般这种方法不推荐; 更精准点的方法是借用仪器,类似高速摄像机,误差可以减少至毫秒级,有录像和截图,从截图和录像中,从你手机中开始点击的那一刻开始计算,而且可以直观看到用户主观的感受,非常推荐这种方式,即准确又接近用户体验,但是这种仪器非常昂贵,几十万一台不等。 测试方法2: 通过我们终端本身日志或logcat,查看应用的启动时间,可这种启动方式也是有点误差,但是误差也很小,不比借用仪器精确。 测试方法3: 通过第三方工具/APK(你有能力可以自己写一个),网上看有没有相关的APK下载,这个是最简单的,但不知道准确率如何,只能用于参考; 测试方法4: 通过命令和脚本去监听应用的启动时间,这种方法常适用于该应用是通过命令启动的,如: adb shell am start -w com

Android 性能优化资源汇总 2020 版

徘徊边缘 提交于 2020-05-08 15:38:56
近期做 Android 性能优化,整理了部分性能优化的开发资源,先发布出来,后续会在这个 git仓库 更新,感兴趣的网友可以关注下。 以下是初稿: 网站博客 以组织或人为单位的教程资源: Android 官方教程,关于 性能优化的主题 , 中文翻译 Android Developers Android 官方开发者频道 微信终端开发团队博客,公众号 WeMobileDev ,也可访问 腾讯云专栏 Facebook Android 专栏 《性能之巅》作者 Brendan D.Gregg 的网站 ClassShark 作者 Boris Farber 的 个人网站 androidperformance 博客文章目录 markzhai’s home BlockCanary 作者的博客 Trinea 的性能优化系列文章 Deep into Android 里面源码剖析和性能总结文章不错 书籍培训 相关书籍 《性能之巅:洞悉系统、企业与云计算》 Linux 系统优化必看的书,Andoid 开发者可从中借鉴性能优化工具和思路 《Android移动性能实战》 腾讯SNG专项测试团队 2017 年出的性能优化案例集锦,基本都是手Q、手空和 QQ音乐的实际例子 《移动App性能评测与优化》 腾讯TMQ专项测试团队 2016 年出的实战案例精选,还讲了 GT 的使用 《高性能Android应用开发》 AT