文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android性能优化及性能优化工具

2024-04-02 19:55

关注

 性能优化的帮助工具:

1.Allaction Tracking

(1)追踪

在内存图中点击途中箭头的部分,启动追踪,再次点击就是停止追踪,随后自动生成一个alloc结尾的文件,这个文件就记录了这次追踪到的所有数据,然后会在右上角打开一个窗口。展示和第一种方式有点区别,各有所长,他有两种展现方式。

(2)分类我们的内存分配

红框中:

Group by Method:用方法来分类我们的内存分配,默认会以Group by Method来组织

Group by Allocator:用内存分配器来分类我们的内存分配

我们用 Group by Allocator的方式来查看一下:

可以看到我们自己包中,每一个类的内存分配次数和分配的大小。如果我们想看内存分配的实际在源码中发生的地方,可以选择需要跳转的对象,点击该按钮就能发现我们的源码。

(3)查看统计图

想看某个图层详细内存分配,则双击速表左键进入下一图层:

内存分配情况

通过[Layout方式查看更直观:

2.LeakCanary

(1)配置

Getting started
In your build.gradle:
 dependencies {
   debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.2'
   releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.2'
 }
In your Application class:

public class ExampleApplication extends Application {

  @Override public void onCreate() {

    super.onCreate();

    if (LeakCanary.isInAnalyzerProcess(this)) {

      // This process is dedicated to LeakCanary for heap analysis.

      // You should not init your app in this process.

      return;

    }

    LeakCanary.install(this);

    // Normal app init code...

  }

}

(2)制造一个单例内存泄漏的点


public class CommonUtils {

    private static CommonUtils instance;

    private Context context;

    private CommonUtils(Context context) {

        this.context = context;

    }
    public static CommonUtils getInstance(Context context) {

        if (instance == null) {

            instance = new CommonUtils(context);

        }

        return instance;

    }

}

 protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        CommonUtils commonUtils = CommonUtils.getInstance(this);

    }

(3)LeakCanary 发出内存泄漏通知

(4)LeakCanary 分析

LeakCanary 本质上还是用命令控制生成hprof文件分析检查内存泄漏。

3.Lint分析工具

Android Studio很方便,很好用,你可以试试点击AS菜单栏上面的Analyze选项,然后点击Inspection Scope,然后选择你需要检测的范围(比如整个项目),然后AS会自动弹出下图所示的面板

可能出现内存泄漏的类:

检测资源文件是否有没有用到的资源。

检测常见内存泄露

安全问题SDK版本安全问题

是否有费的代码没有用到

代码的规范---甚至驼峰命名法也会检测

自动生成的罗列出来

没用的导包

可能的bug

到此这篇关于Android性能优化及性能优化工具的文章就介绍到这了,更多相关Android性能优化内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯