This is an introduction to aspect oriented programming in Android. It also introduces Frodo Android Library based on AOP for logging RxJava Observables and Subscribers.
aspect-oriented programming (AOP) is a patented programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. https://github.com/android10/frodo
Cohesive areas of functionality across an application. • Advice: The code that is injected to a class file. • Joint point: A particular point in a program that might be the target of code injection. • Pointcut: An expression which tells a code injection tool where to inject a particular piece of code. • Aspect: The combination of the pointcut and the advice is termed an aspect. • Weaving: The process of injecting code – advices – into the target places – joint points.
A seamless aspect-oriented extension to the Javatm programming language (works with Android). • Javassist for Android: An android porting of the very well known java library Javassist for bytecode manipulation. • DexMaker: A Java-language API for doing compile time or runtime code generation targeting the Dalvik VM. • ASMDEX: A bytecode manipulation library as ASM but it handles the DEX bytecode used by Android executables.