Android 性能优化多渠道差异化编译方法

本文介绍了如何在Android应用中实现性能优化,通过差异化编译在开发阶段集成leakcanary和blockcanary等工具,而在make编译版本中移除,以避免影响用户体验。文章详细阐述了创建独立目录存放差异代码、修改build.gradle以实现Gradle编译差异化,以及在make文件中进行差异化编译的步骤,确保开发和发布版本的一致性和效率。
摘要由CSDN通过智能技术生成

一、介绍:

最近做app性能优化增加了几个第三方性能检测框架:

1、leakcanary(内存泄漏检测)

2、blockcanary(耗时检测工具)

因为项目开发时在android studio工具编译但在完整编译时是用make方式和整个项目一起编译,所以需要在AS编译时自动把上面性能检测工具编入方便开发自我调试,但在make编译版本不能带上上面工具(各种提示和日志影响用户体验),同时也要满足所有开发使用同一份代码互不影响,git库使用同一份代码大家都能用到上面功能。

针对上面情况需要差异化编译代码,并且兼容android studio和make脚本编译方式。

 

二、分析

1.leakcanary和blockcanary工具使用方法都只是需要在application类中做初始化即可,不涉及其它代码,所以需要对application进行差异化区分。

2.application需要在AndroidManifest.xml中声明,所以需要差异化AndroidManifest.xml文件。

3.添加leakcanary和blockcanary工具有两种方式:

(1)下载源码或jar包

(2)直接通过gradle引入

这两种方法都可以我选择的是第二种,因为添加上面工具主要是给开发自己使用所以需要和编译给其它人使用区分开,这个纪要用到多渠道打包方式。

4.make编译是给客户或测试的所以不需要编译上面工具,需要区分。

 

三、实施

根据以上分析我们需要做以下几个工作:

一.创建一个独立目录存放差异代码(这个目录不能在其它被包含的目录内否则可能会被其它代码编译进去)

我这里主要是需要application文件所以修改了上面几个文件res,libs等目录如果用到了也可以添加

1.因为项目开始没有重写application,所以新建了一个,如果之前已经重写了则需要在原来的基础上加上新增代码(保证原有功能)

import android.app.Application;
import android.content.Context;

import com.github.moduth.blockcanary.BlockCanary;
import com.squareup.leakcanary.LeakCanary;


public class LauncherApplication extends Application {

    private static C
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值