Android 面试题之性能优化

前言

本来是打算直接放问题的,怕大家不理解,而且之前也没写过性能优化的文章,所以这篇就当一篇教程来写会更容易理解

1.Android的分析工具

  • Android studio3.0的Android Profiler(和之前的版本增加了很多功能,不会用的可以百度)

Android Profiler现在显示的共享时间线视图中(见下图),包含了CPU,存储器和网络使用情况的实时图形的时间线。窗口还包括③时间轴缩放控制,④一键向前跳到实时更新,和⑤一个事件时间线展示出活动状态,用户输入事件,以及屏幕旋转事件。

Android 面试题之性能优化_第1张图片
image.png
  • Traceview
    可能有些人没听过这个,待我放个截图你就恍然大悟了
Android 面试题之性能优化_第2张图片
image.png

怎么用呢?

其实也很简单,第一步点击你的项目,然后再点击下图画圈的图标,然后在模拟器上自己点点项目,然后再点击这个图标,就会得到你刚才点击项目的分析图,然后看看那些地方耗时最多,具体流程这里不做讲解了,可以自行百度

Android 面试题之性能优化_第3张图片
image.png
  • 当然还有更多
    想了解的可以去看这篇文章
    App优化之性能分析工具

2.代码优化 Android Lint的使用

Lint 是Android Studio 提供的 代码扫描分析工具,它可以帮助我们发现代码结构/质量问题,同时提供一些解决方案,而且这个过程不需要我们手写测试用例。

Lint 发现的每个问题都有描述信息和等级(和测试发现 bug 很相似),我们可以很方便地定位问题,同时按照严重程度进行解决。

怎么用

Lint 的使用路径:

工具栏 -> Analyze -> Inspect Code…

点击

Inspect Code

后会弹出检查范围的对话框:

[图片上传失败...(image-4e1107-1512891863068)]

默认是检查整个项目,我们可以点击

Custom scope

自定义检查范围。

点击右边的下拉框,会出现以下选择:

Android 面试题之性能优化_第4张图片
shixinzhang

建议大家亲自使用一下这个工具,用的时候选择整个项目,你会得到很多优化方面的知识点

3.怎么优化你的布局

通过以上工具的使用和分析, 也基本能找到布局的一些常见的好与不好的了.

正所谓授之以鱼不如授之以渔. 在此也就不太详细去讲怎么优化了, 几点建议, 大家自行实践吧:)

尽量减少布局层级和复杂度

  • 尽量不要嵌套使用RelativeLayout.
  • 尽量不要在嵌套的LinearLayout中都使用weight属性.
  • Layout的选择, 以尽量减少View树的层级为主.
  • 去除不必要的父布局.
  • 善用TextView的Drawable减少布局层级

善用Tag


  • 使用include来重用布局.

  • 使用来解决include或自定义组合ViewGroup导致的冗余层级问题. 例如本例中的RepoItemView的布局文件实际可以用一个标签来减少一级.

ListView优化(已经整理到listview面试题里面了)

你可能感兴趣的:(Android 面试题之性能优化)