title: how to trace an application's behavior?
body: <p>I want to build an app that would be able to trace what other apps, processes and services doing. The purpose is to analyze their behavior so I can protect some critical assets on the SmartPhone like Photo Album, Contacts, Camera Operation...</p>
  
  <p>I am working on a rooted Android smartphone 4.1.2.</p>
  
  <ul>
  <li>What is the best way to trace an app's behavior?</li>
  </ul>
  
  <p>I have already cross-compiled <strong>strace</strong> command on Android to trace System Calls but it seems that i can't trace sophisticated operations apart from files manipulation.</p>
  
  <ul>
  <li><p>Is there a way to trace Object creations? For example, if an app want to uses the Camera it has to create a Camera Object.</p></li>
  <li><p>What is the suitable Android architecture lever I should searching for traces? (Kernel, Application Framework, Libraries,...) </p></li>
  </ul>
  
  <p>This is my first question on stack, so please forgive me for any mistakes.</p>