TracingController
  public
  
  
  abstract
  class
  TracingController
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.webkit.TracingController | 
Manages tracing of WebViews. In particular provides functionality for the app to enable/disable tracing of parts of code and to collect tracing data. This is useful for profiling performance issues, debugging and memory usage analysis in production and real life scenarios.
The resulting trace data is sent back as a byte sequence in json format. This file can be loaded in "chrome://tracing" for further analysis.
Example usage:
 TracingController tracingController = TracingController.getInstance();
 tracingController.start(new TracingConfig.Builder()
                  .addCategories(TracingConfig.CATEGORIES_WEB_DEVELOPER).build());
 ...
 tracingController.stop(new FileOutputStream("trace.json"),
                        Executors.newSingleThreadExecutor());
 Summary
| Public constructors | |
|---|---|
| 
      TracingController()
      
      This constructor is deprecated.
    This class should not be constructed by applications, use  | |
| Public methods | |
|---|---|
| 
        
        
        static
        
        
        TracingController | 
      getInstance()
      Returns the default TracingController instance. | 
| 
        abstract
        
        
        
        
        boolean | 
      isTracing()
      Returns whether the WebView framework is tracing. | 
| 
        abstract
        
        
        
        
        void | 
      start(TracingConfig tracingConfig)
      Starts tracing all webviews. | 
| 
        abstract
        
        
        
        
        boolean | 
      stop(OutputStream outputStream, Executor executor)
      Stops tracing and flushes tracing data to the specified outputStream. | 
| Inherited methods | |
|---|---|
Public constructors
TracingController
public TracingController ()
      This constructor is deprecated.
    This class should not be constructed by applications, use getInstance()
 instead to fetch the singleton instance.
  
Public methods
getInstance
public static TracingController getInstance ()
Returns the default TracingController instance. At present there is only one TracingController instance for all WebView instances, however this restriction may be relaxed in a future Android release.
| Returns | |
|---|---|
| TracingController | The default TracingController instance.
 This value cannot be null. | 
isTracing
public abstract boolean isTracing ()
Returns whether the WebView framework is tracing.
| Returns | |
|---|---|
| boolean | True if tracing is enabled. | 
start
public abstract void start (TracingConfig tracingConfig)
Starts tracing all webviews. Depending on the trace mode in traceConfig
 specifies how the trace events are recorded.
 For tracing modes TracingConfig.RECORD_UNTIL_FULL and
 TracingConfig.RECORD_CONTINUOUSLY the events are recorded
 using an internal buffer and flushed to the outputStream when
 stop(java.io.OutputStream, java.util.concurrent.Executor) is called.
| Parameters | |
|---|---|
| tracingConfig | TracingConfig: Configuration options to use for tracing.
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalStateException | If the system is already tracing. | 
| IllegalArgumentException | If the configuration is invalid (e.g. invalid category pattern or invalid tracing mode). | 
stop
public abstract boolean stop (OutputStream outputStream, Executor executor)
Stops tracing and flushes tracing data to the specified outputStream.
 The data is sent to the specified output stream in json format typically
 in chunks by invoking OutputStream.write(byte[]). On completion
 the OutputStream.close() method is called.
| Parameters | |
|---|---|
| outputStream | OutputStream: The output stream the tracing data will be sent to. If null
                     the tracing data will be discarded. | 
| executor | Executor: TheExecutoron which the
        outputStreamOutputStream.write(byte[])andOutputStream.close()methods will be invoked.
 This value cannot benull.
 Callback and listener events are dispatched through thisExecutor, providing an easy way to control which thread is
 used. To dispatch events through the main thread of your
 application, you can useContext.getMainExecutor().
 Otherwise, provide anExecutorthat dispatches to an appropriate thread. | 
| Returns | |
|---|---|
| boolean | False if the WebView framework was not tracing at the time of the call, true otherwise. | 
