Modifying the kernel for the application execution data

I want to know more about modifying the Android kernel to get more data about an application when it's running. First of all, I'd like to know the methods used, api calls, modified files, and so on.

Is there a resource I can follow to achieve this goal? It would be great if anyone can share his thoughts on this.