android aspectj 配置
来源:互联网 发布:可视化编程软件 编辑:程序博客网 时间:2024/06/04 19:13
来源:https://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/
Aspect Oriented Programming in Android
android aspectj 切面编程
====
推荐文章
Android 基于AOP监控之——AspectJ使用指南
http://www.codexiu.cn/android/blog/19867/
获取aspectj lib最新版本
https://www.eclipse.org/aspectj/
1.8.10 // 当前最新
如何配置gradle
1
application级别代码粘贴至 app模块 build.gradle文件 底部
library级别代码粘贴至 Lib模块 build.gradle文件 底部2
编写aspectj
编译,运行
application级别
// ------------- 粘贴以下代码 至 application级别 build.gradle文件底部import org.aspectj.bridge.IMessageimport org.aspectj.bridge.MessageHandlerimport org.aspectj.tools.ajc.Mainbuildscript { repositories { mavenCentral() } dependencies { classpath 'org.aspectj:aspectjtools:1.8.10' classpath 'org.aspectj:aspectjweaver:1.8.10' }}repositories { mavenCentral()}dependencies{ compile 'org.aspectj:aspectjrt:1.8.10'}android.applicationVariants.all { variant -> def log = project.logger if (!variant.buildType.isDebuggable()) { log.debug("Skipping non-debuggable build type '${variant.buildType.name}'.") return; } JavaCompile javaCompile = variant.javaCompile javaCompile.doLast { String[] args = ["-showWeaveInfo", "-1.5", "-inpath", javaCompile.destinationDir.toString(), "-aspectpath", javaCompile.classpath.asPath, "-d", javaCompile.destinationDir.toString(), "-classpath", javaCompile.classpath.asPath, "-bootclasspath", project.android.bootClasspath.join(File.pathSeparator)] log.debug "ajc args: " + Arrays.toString(args) MessageHandler handler = new MessageHandler(true); new Main().run(args, handler) for (IMessage message : handler.getMessages(null, true)) { switch (message.getKind()) { case IMessage.ABORT: case IMessage.ERROR: case IMessage.FAIL: log.error message.message, message.thrown break; case IMessage.WARNING: log.warn message.message, message.thrown break; case IMessage.INFO: log.info message.message, message.thrown break; case IMessage.DEBUG: log.debug message.message, message.thrown break; } } }}
library级别
// ------------- 粘贴以下代码 至 library级别 build.gradle文件底部//import com.android.build.gradle.LibraryPluginimport org.aspectj.bridge.IMessageimport org.aspectj.bridge.MessageHandlerimport org.aspectj.tools.ajc.Mainbuildscript { repositories { mavenCentral() } dependencies { classpath 'org.aspectj:aspectjtools:1.8.10' classpath 'org.aspectj:aspectjweaver:1.8.10' }}repositories { mavenCentral()}dependencies { compile 'org.aspectj:aspectjrt:1.8.10'}android.libraryVariants.all { variant -> //LibraryPlugin plugin = project.plugins.getPlugin(LibraryPlugin) def log = project.logger JavaCompile javaCompile = variant.javaCompile javaCompile.doLast { String[] args = ["-showWeaveInfo", "-1.5", "-inpath", javaCompile.destinationDir.toString(), "-aspectpath", javaCompile.classpath.asPath, "-d", javaCompile.destinationDir.toString(), "-classpath", javaCompile.classpath.asPath, "-bootclasspath", project.android.bootClasspath.join(File.pathSeparator)] MessageHandler handler = new MessageHandler(true); new Main().run(args, handler) for (IMessage message : handler.getMessages(null, true)) { switch (message.getKind()) { case IMessage.ABORT: case IMessage.ERROR: case IMessage.FAIL: log.error message.message, message.thrown break; case IMessage.WARNING: case IMessage.INFO: log.info message.message, message.thrown break; case IMessage.DEBUG: log.debug message.message, message.thrown break; } } }}
end
阅读全文
0 0
- android aspectj 配置
- 配置aspectj
- 在Android Studio 配置AspectJ环境,与简单使用。
- AspectJ环境配置
- Android中使用AspectJ
- Android中使用AspectJ
- AspectJ安装和配置指南
- AspectJ安装和配置指南
- 基于@AspectJ配置Spring AOP
- Spring Aspectj AOP配置学习
- Eclipse配置AspectJ插件AJDT
- Spring之配置使用@AspectJ
- Eclipse配置AspectJ插件AJDT
- Eclipse配置AspectJ插件AJDT
- Spring AOP Aspectj 注解配置
- Spring配置---<aop:aspectj-autoproxy />
- android aspectJ报错“transformClassesWithExtractJarsForDebug“
- Android系统版本与AspectJ
- 巴什博弈
- localStorage总结
- js判断数字是否为整数
- android 开机流程详细分析
- 神创造了致病的病毒吗?
- android aspectj 配置
- 字符串去除空格回车以及随机生成中英文字符串
- poj 3264 Balanced Lineup
- windows和linux环境下java调用C++代码-JNI技术
- 【LeetCode】Min Stack带最小值操作的栈
- 乐趣:初识React
- domElement.appendChild is not a function
- 628. Maximum Product of Three Numbers
- [BZOJ3124][Sdoi2013]直径(树形dp)