Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
基本上,我想插入一个pointcutfor onKeyDown()、onBackPressed()等方法。问题是,如果这些方法不是overloaded,aspect则不会做出反应。pointcut插入获取Activities(或其他父母)方法调用的正确方法是什么?
pointcut
onKeyDown()
onBackPressed()
overloaded
aspect
Activities
现在它看起来像这样:
pointcut onKeyDown(): execution(* onKeyDown(*, *));
您不能编织 Android 核心类,因为相关的重新编译的 .class 文件不会集成到您的应用程序 .dex 文件中,因为它们是由 android 直接提供的。
正如您所建议的,您可以通过直接调用重载方法来重载这些方法。
出于同样的原因,在调用自定义代码之前,您不能在核心类中使用切入点编织,例如:
call(* Activity.onCreate(..))
但是您可以使用切入点编织自定义代码,如下所示:
execution(* Activity.onCreate(..))