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.
