got it. yes this is relatively easy, we should add it in 2.2 timeframe.

https://code.google.com/p/android/issues/detail?id=206504

Jerome

On Mon, Apr 11, 2016 at 1:35 PM Ariel Cattan <[email protected]> wrote:

> Hi Jerome,
>
> Actually we are already doing very extensive dex transformations today. We
> found we had much more control with dex transformations, and in fact
> switched our entire solution to be based on dex transformations.
> Today our Gradle plugin finds its way through the various Android plugin
> tasks, takes the output of the dex task, does the transformations, and then
> adjusts the inputs of the packaging task so that it uses our instrumented
> dex files instead of the original ones. We are doing it with Android
> plugins below version 1.5.0, as well as above.  However, since these are
> not official APIs, we have to "chase" you guys with every release :-)
> That's why we are striving to have an official, stable API that will allow
> us to do that.
> Using the Jack API may be interesting, depending on what capabilities it
> will expose. However since we're already heavily invested in dex
> instrumentation, it will be better for us to just be able to get the dex
> files as an input to a transform, and output back instrumented dex files.
> Wouldn't it be relatively easy for you to support such a path, using the
> transform API?
>
> Thanks!
> Ariel
>
>
> On Monday, April 11, 2016 at 10:41:31 PM UTC+3, Jerome Dochez wrote:
>
>> Hi Ariel
>>
>> I think this discussion can go into different directions.
>>
>> - we might at some point give access to transforms that manipulate dex
>> files but the question remain, how do you plan to do the actual
>> transformation ? asm-dex seems to not be complete for instance.
>>
>> - we will keep a path (even with jack enabled) where javac will be used
>> to compile java code into .class files and bytecode manipulation will still
>> be possible before the .class files are reinjected into the jack pipeline
>> (which will be how instant-run+jack will be implemented initially).
>>
>> - Jack will also provide an API (based on ECJ) to register jack native
>> bytecode enhancement that will allow you to do byte code manipulation as
>> well (although constructs will be at a higher level obviously). This might
>> be how instant-run will evolve.
>>
>> which path would you rather take ?
>>
>> On Mon, Apr 11, 2016 at 6:26 AM Ariel Cattan <[email protected]> wrote:
>>
> Hi,
>>>
>>> At the initial stages of the Transform API there seemed to be a way to
>>> add a Dex transformation, but this was taken away.
>>> We are seeking for official/safe ways to instrument Dex files. It became
>>> important when Jack was introduced (as Java bytecode instrumentation is not
>>> possible with Jack), and now with Instant Run it is again very relevant. We
>>> would like to have the build system call our plugin in order to transform
>>> each Dex file being created, so that we could instrument it. With Instant
>>> Run, for example, once a new small Dex is created - if we could have a
>>> transform being called and handed this changed file - we could instrument
>>> it on-the-fly, as part of the instant run build.
>>> Is there a way to do it today, or plans to support such functionality in
>>> the future?
>>>
>>> Thanks!
>>> Ariel Cattan
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "adt-dev" group.
>>>
>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to [email protected].
>>
>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "adt-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"adt-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to