tree 675cb8408bb5a4cd851d677ae0897d24c5919add
parent 6a97c3f708755a2df5280b3b7d001503e87b8e65
author Steven Moreland <smoreland@google.com> 1661821877 +0000
committer Zimuzo Ezeozue <zezeozue@google.com> 1663010012 +0000

Emit getDefaultTransactionName for GenTraces()

getDefaultTransactionName converts a binder txn id to a string
This was previously only enabled with the GenTransactionNames
which was primarily used for logging binder stats.

Now, we emit the method for GenTraces as well so that we can
cheaply trace binder transaction names across Java aidl backends.

We don't actually emit the traceBegin/End code in the aidl itself
to keep code size increase minimal, especially for frameworks.jar.
The actual traceBegin/End code will happen in Binder.java

Additionally, we removed the traceBegin/End for 'client' aidl tracing
as well. The 'server' side should be sufficient and if we do need
client side tracing, we can add the traceBegin/End in a central location
like we do for 'server'.

Test: Manual
Bug: 161393989
Change-Id: I090678b4a85b4b57a91cf984d124b0147edfd72f
