Android在许多情况下需要知道一些方法的耗时,然后对与这些耗时进行一些处理和优化。当然我们可以在方法的开头和结尾分别来打一行日志来解决这个问题。但是这个方式侵入性强,而且比较难以修改和删除这些日志,所以可以使用aop的方式进行输出日志,不仅可以让日志进行统一的管理,还比较方便修改。

首先需要导入在项目的build中增加 classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.0',然后在app build中加入 apply plugin: 'android-aspectjx',就可以使用 org.aspectj:aspectjrt:1.8.+。

@Aspect
public class AppAop { @Around("call(* com.kkrs.basepage.MainActivity.**(..))")
public void getTimeMainActivity(ProceedingJoinPoint joinPoint) {
//获得包名
Signature signature = joinPoint.getSignature();
String name = signature.toShortString();
long time = System.currentTimeMillis();
try {
//里面执行的方法
joinPoint.proceed();
} catch (Throwable throwable) {
throwable.printStackTrace();
}
//执行时间
LogUtils.i(name + " cost " + (System.currentTimeMillis() - time));
} @Around("execution(* com.kkrs.basepage.MainActivity.**(..))")
public void getTimeMainActivity2(ProceedingJoinPoint joinPoint) {
Signature signature = joinPoint.getSignature();
String name = signature.toShortString();
long time = System.currentTimeMillis();
try {
joinPoint.proceed();
} catch (Throwable throwable) {
throwable.printStackTrace();
}
LogUtils.i(name + " cost " + (System.currentTimeMillis() - time));
} }

 

注:里面的call是指的自定义的方法,execution是指的继承来的方法。

												

Android Aop日志的更多相关文章

  1. 使用Monitor调试Unity3D Android程序日志输出(非DDMS和ADB)

    使用Monitor调试Unity3D Android程序日志输出(非DDMS和ADB) http://www.cnblogs.com/mrkelly/p/4015245.html 以往调试Androi ...

  2. Android Studio日志工具的使用

    Android Studio的LogCat工具 Verbose:对应Log.v(),这个方法用于打印那些最为琐碎的信息,意义最小的日志信息.是Android日志里面级别最低的一种. Debug:对应L ...

  3. Android中日志工具的使用

    添加LogCat到你的Eclipse日志在任何项目的开发过程中都会起到非常重要的作用,在Android项目中如果你想要查看日志则必须要使用LogCat工具.当你第一次在Eclipse中运行Androi ...

  4. Android中日志信息的打印方式

    Android中日志信息的打印方式主要有以下7种: 1)System.out(i级别) 2)System.err(w级别) 3)Log.v 4)Log.d 5)Log.i 6)Log.w 7)Log. ...

  5. [原创]adb使用教程v1.0-----by-----使用logcat快速抓取android崩溃日志

    原文再续,书接上回:<使用logcat快速抓取android崩溃日志>中提到的工具包可以下载拉~ <使用logcat快速抓取android崩溃日志>:http://www.cn ...

  6. [原创]adb使用教程v1.1.0-----by-----使用logcat快速抓取android崩溃日志

    原文再续,书接上回:<使用logcat快速抓取android崩溃日志>中提到的工具包可以下载拉~ <使用logcat快速抓取android崩溃日志>:http://www.cn ...

  7. 从头认识Spring-3.8 简单的AOP日志实现(注解版)-扩展添加检查订单功能,以便记录并检測输入的參数

    这一章节我们讨论一下扩展添加检查订单功能,以便记录并检測输入的參数. 1.domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch03 ...

  8. Android轻量级日志管理框架

    代码地址如下:http://www.demodashi.com/demo/12134.html ViseLog Android 轻量级日志框架,使用森林对象维护不同的日志树进行日志输出,可以是Logc ...

  9. AOP日志组件 多次获取post参数

    AOP日志组件 多次获取post参数 需求:新增接口日志组件.通过拦截器对接口URL进行拦截处理,然后将接口post请求的参数与结果,写入日志表. 问题:POST方法的参数是存储在request.ge ...

随机推荐

  1. SQL之left join,inner join,right join

    left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只 ...

  2. Maven学习(八)-- 使用Nexus搭建Maven私服

    摘自:http://www.cnblogs.com/xdp-gacl/p/4068967.html 一.搭建nexus私服的目的 为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人 ...

  3. [ 搭建Redis本地服务器实践系列一 ] :图解CentOS7安装Redis

    上一章 [ 搭建Redis本地服务器实践系列 ] :序言 作为开场白介绍了下为什么要写这个系列,从这个章节我们就开始真正的进入正题,开始搭建我们本地的Redis服务器.那么关于Redis的基本概念,什 ...

  4. PAT1009:Product of Polynomials

    1009. Product of Polynomials (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...

  5. springboot+activemq中引入重发机制

    一.简介 在使用activemq消息中间件进行消息队列传输时,总会由于各种原因导致消息失败. 一个经典的场景是一个生成者向Queue中发消息,里面包含了一组邮件地址和邮件内容.而消费者从Queue中将 ...

  6. eclipse工具按键翻译

    1.新建项目界面 2.新建类界面 3.类中右击

  7. redhad安装gcc问题---解决依赖问题

    在安装gcc时需要cpp和cloog-ppl 但是在安装cpp的时候需要这个依赖:  libmpfr.so.1()(64bit) is needed by cpp-4.4.6-3.el6.x86_64 ...

  8. GitHub 系列之「向GitHub 提交代码」

    1.SSH 你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码.仔细想想也知道,肯定不可能随意就能提交代码的,如果随意可以提交代 ...

  9. Python内置方法中不明了的部分

    # 把字符串转成一个对象 TODO 这个方法到底怎么用? repr('please') # 切片 TODO 怎么用? d = range(20) d[slice(2,5)] # 返回range[2,5 ...

  10. bzoj 3551 kruskal重构树dfs序上的主席树

    强制在线 kruskal重构树,每两点间的最大边权即为其lca的点权. 倍增找,dfs序对应区间搞主席树 #include<cstdio> #include<cstring> ...