广告
返回顶部
首页 > 资讯 > 移动开发 >Android性能优化及性能优化工具
  • 507
分享到

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

2024-04-02 19:04:59 507人浏览 泡泡鱼
摘要

目录1.Allaction Tracking(1)追踪(2)分类我们的内存分配(3)查看统计图2.LeakCanary(1)配置(2)制造一个单例内存泄漏的点(3)LeakCanar

 性能优化的帮助工具:

  • MAT,
  • Memory Monitor(属于AndroidMonitor中一个模块),
  • HeapTool(查看堆信息),
  • Allaction Tracking
  • LeakCanary
  • Lint工具

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性能优化内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Android性能优化及性能优化工具

本文链接: https://www.lsjlt.com/news/158033.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android性能优化及性能优化工具
    目录1.Allaction Tracking(1)追踪(2)分类我们的内存分配(3)查看统计图2.LeakCanary(1)配置(2)制造一个单例内存泄漏的点(3)LeakCanar...
    99+
    2022-11-12
  • 常用的Android性能优化工具有哪些
    常用的Android性能优化工具有:1. Android Profiler:Android Studio自带的性能分析工具,可以监测...
    99+
    2023-10-12
    android
  • Android性能优化以及数据优化方法
    Android性能优化-布局优化 今天,继续Android性能优化 一 编码细节优化。 编码细节,对于程序的运行效率也是有很多的影响的。今天这篇主题由于技术能力有限,...
    99+
    2022-06-06
    方法 数据 优化 Android
  • MySQL性能诊断和优化工具
    作者:禅与计算机程序设计艺术 1.简介 数据库系统作为一种应用软件,其运行需要大量的计算资源。在生产环境下,数据库服务器经常承受着巨大的压力,而性能是影响数据库系统正常运行的关键因素之一。因此,对数...
    99+
    2023-10-06
    自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
  • 有哪些React性能优化工具
    这篇文章主要讲解了“有哪些React性能优化工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些React性能优化工具”吧! Profiler...
    99+
    2022-10-19
  • Android性能优化(一)启动优化
            以前做手机的时候,我非常重视app的性能优化。其实一直以来,在工作中我总会去强调性能优化的重要性。但是,很多时候,由于一些外界因素,我们对app的一些性能指标不...
    99+
    2022-06-06
    启动 优化 Android
  • Android性能优化系列篇UI优化
    目录前言一、UI优化1.1 系统做的优化1.1.1 硬件加速1.2 优化方案1.2.1 java代码布局1.2.2 View重用1.2.3 异步创建view1.2.4 xml布局优化...
    99+
    2022-11-13
    Android性能UI优化 Android UI优化
  • Android性能优化方法
    GPU过度绘制  •打开开发者选型,“调试GPU过度绘制”,蓝、绿、粉红、红,过度绘制依次加深  •粉红色尽量优化,界面尽量保持蓝绿...
    99+
    2022-06-06
    方法 优化 Android
  • MySQL Limit性能优化及分页数据性能优化详解
    MySQL Limit可以分段查询数据库数据,主要应用在分页上。虽然现在写的网站数据都是千条级别,一些小的的优化起的作用不大,但是开发就要做到极致,追求完美性能。下面记录一些limit性能优化方法。 Lim...
    99+
    2022-10-18
  • Android性能优化之弱网优化详解
    目录弱网优化1、Serializable原理1.1 分析过程1.2 Serializable接口1.3 ObjectOutputStream1.4 序列化后二进制文件的一点解读1.5...
    99+
    2022-11-13
    Android 性能弱网优化 Android 弱网优化
  • Android 性能优化 ~ 包体积优化实战
    概述 用户通常都不愿意去下载一个比较大的程序,特别是不在 WIFI 的情况下。如果你的安装包很小,用户还是愿意下载安装体验下的。现在市面上满足某...
    99+
    2022-06-06
    性能 实战 性能优化 优化 Android
  • 详解Android性能优化之启动优化
    目录1、为什么要进行启动优化2、启动的分类2.1 冷启动2.2 热启动2.3 温启动3、优化方向4、启动时间的测量方式4.1 使用adb 命令方式(线下使用方便)4.2 手动打点方式...
    99+
    2022-11-12
  • 浅谈Android性能优化之内存优化
    目录1、Android内存管理机制1.1 Java内存分配模型1.2 Dalvik和ART介绍1.3 为什么要进行内存优化2、Java内存回收算法2.1判断Java中对象是否存活的算...
    99+
    2022-11-12
  • Android性能优化之ViewPagers + Fragment缓存优化
    目录前言1 ViewPager懒加载优化1.1 ViewPager的缓存机制1.2 ViewPager懒加载方案2 ViewPager2与ViewPager的区别前言 大家看标题,可...
    99+
    2022-11-13
  • android的性能如何优化
    优化Android性能可以通过以下几个方面来实现:1. 减少内存占用:避免创建过多的对象,使用缓存技术来减少内存占用,及时释放不再使...
    99+
    2023-08-08
    android
  • SQL性能优化方法及性能测试
    目录笛卡尔连接分页limit的sql优化的几种方法count 优化方案笛卡尔连接 例1: 没有携带on的条件字句,此条slq查询的结构集等价于,a表包含的条数*b表包含的乘积: se...
    99+
    2022-11-13
  • CSS性能优化的五大工具是什么
    本文小编为大家详细介绍“CSS性能优化的五大工具是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS性能优化的五大工具是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2022-10-19
  • mysql性能及优化探讨
    最近在公司内部进行了一次mysql性能和优化相关的内部分享,放在这里备忘,同时也希望能跟大家交流相关的话题,整理自书本及网络上的文章,感谢相关内容的作者在百度文库上有,可以点击这里 附件:htt...
    99+
    2022-10-18
  • Android性能优化(一)App启动时间优化
    App启动时间优化 一、首先我们需要清楚App的主题加载 你的App的主题位于 res/values/styles 我们点击Light主题进...
    99+
    2022-06-06
    app启动 优化 app Android
  • Android性能优化之Bitmap图片优化详解
    前言 在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitmap操作不慎,就容易造成OOM(Java.lang.OutofMemoryError -...
    99+
    2022-06-06
    bitmap 优化 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作