(1)内存优化 内存分析工具: Memory Monitor 工具 Memory Analyzer工具 LeakCanary工具 Android Lint 工具 (1.1)避免内存泄漏 单例模式引用Activity类型Context Activity中持有非静态内部类 资源性对象为关闭(File、Cursor等) 注册对象未注销(EventBus、RxJava、ButterKnife等) Handler使用不当引起内存泄漏 容器中的对象没及时清理 WebView导致内存泄漏 (1.2)合理选择数据结构(SparseArray、ArrayMap等) (1.3)减少不必要的内存开销(合理创建对象、复用) (1.4)避免基本数据类型的装箱和拆箱消耗 byte->Byte short->Short int->Integer float->Float double->Double char->Char boolean->Boolean (1.5)图片的压缩、大图片的分块加载 (2)崩溃 代码审查: Alibaba Android开发规范手册 Alibaba Java开发规范手册 Android Lint Alibaba代码审查工具 FindBugs (2.1)Crash监控、处理、日志上传 Thread.setDefaultUncaughtExceptionHandler() (2.2)提高代码质量、逻辑严谨性、代码审核2、流畅度
(1)布局优化 使用轻量级UI组件(LinearLayout、FrameLayout),LinearLayout避免使用权重属性,比较耗费性能 通过RelativeLayout和ConstraintLayout减少复杂视图层级、布局扁平化,ConstraintLayout相对于RelativeLayout性能更好 布局复用(include标签) View延迟加载(ViewStub标签) 减少层级(merge标签) 删除控件无用属性 wrap_content增加measure成本 (2)渲染优化(避免过度绘制) 移除XML中非必须的背景,移除Window默认的背景、按需显示占位背景图片 Canvas.clipRect()来帮助系统识别可见区域,只有可见区域才被绘制 (3)启动优化 减少Application的onCreate执行时间 减少启动页面的onCreate执行时间 三方SDK的异步初始化 (4)主线程任务优化 主线程避免耗时操作(网络访问/大文件的IO操作) (5)视图刷新优化 减少刷新次数 缩小刷新区域 (6)动画优化 选择合适的动画框架3、耗损
(1)耗电 计算优化 使用JobScheduler 合理的使用wack_lock (2)流量 (3)网络 网络数据压缩传输 连接复用(keep-alive) 请求合并 数据缓存4、安装包体积
(1)资源优化 Android Lint 删除冗余资源,资源复用、资源文件最少化等 (2)图片优化 使用一套图(主流分辨率) 图片无损压缩 SVG矢量图片 WebP图片 (3)代码优化 移除无用的代码、无用的依赖库 (4)libs库文件优化 so文件的动态下发 模块的插件化按需加载 (5)assets资源优化 音频文件采用有损压缩 (6)代码混淆 使用ProGuard代码混淆器工具,它包括压缩、优化、混淆等功能 (7)7z极限压缩
如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以 点这自行获取…



