一、需要处理的事件主要分为四类事件:
1.AppStart,应用启动事件,包括冷启动和热启动,其中热启动时指从后台启动恢复的情况
2.AppEnd,应用退出事件,包括应用程序正常退出、按home键进入后台、应用程序被强杀,应用程序崩溃场景
3.AppViewScreen,指页面的跳转或者浏览。
4.AppClick,控件的点击事件
二、实现的方式
对于页面事件、启动退出事件来说:
主要就是通过利用Application.ActivityLifecycleCallbacks借口提供的各种回调来做一些判断
对于点击事件来说,有两种:
1、静态代理
在编译期的特定时间段做代码的插入或者修改,如下图:
2、动态代理
在运行时找到特定的代理目标来实现埋点,比如通过操作View.OnClickListener等接口的实现



