javassist-android icon indicating copy to clipboard operation
javassist-android copied to clipboard

What is the status of this project ?

Open stephanenicolas opened this issue 10 years ago • 3 comments

Hi @crimsonwoods ,

I am interested in this project, and I would like to know how mature it is. Is it production ready ? Are there a lot of things still to be done ?

Btw, can you explain in a few words, the problem of javassist on Android, what works and what doesn't ?

Thanks for your work, Stéphane

stephanenicolas avatar May 07 '14 06:05 stephanenicolas

Hi @stephanenicolas ,

This project was started to satisfy my curiosity about dynamic code generation on Android platform. So I choose Javassist and ported it to Android. But now, we can use 'dexmaker'. My project is obsolete, I think. Currently, I have nothing to do for this project.

As far as I know, this project can generate '.class' file dynamically and '.dex' file is also can generate into application local storage. And I don't know what does not work. But it does not mean "all features completely work". Because I'm not really an expert of Javassist.

Thanks.

crimsonwoods avatar May 12 '14 15:05 crimsonwoods

Hi @crimsonwood,

thx for the answer. I am currently trying some experiment on RoboGuice to use Javassist to modify bytecode on the fly (for view injections for instance). It looks like it works pretty well out of the box. I generate .class files out of .class files (thks to javassist maven plugin).

I didn't really understand the problems that could be tied to using javassist with Android and your project made me think I was missing something.

I think the API of javassist are far more interesting than those of dexmaker, much higher level. But can I ask you what you were working on when doing byte code manipulation ? If you are interested in my byte code modification experiment, I can point you to the branch on github.

Stéphane

2014-05-12 17:01 GMT+02:00 crimsonwoods [email protected]:

Hi @stephanenicolas https://github.com/stephanenicolas ,

This project was started to satisfy my curiosity about dynamic code generation on Android platform. So I choose Javassist and ported it to Android. But now, we can use 'dexmaker'. My project is obsolete, I think. Currently, I have nothing to do for this project.

As far as I know, this project can generate '.class' file dynamically and '.dex' file is also can generate into application local storage. And I don't know what does not work. But it does not mean "all features completely work". Because I'm not really an expert of Javassist.

Thanks.

— Reply to this email directly or view it on GitHubhttps://github.com/crimsonwoods/javassist-android/issues/1#issuecomment-42842916 .

stephanenicolas avatar May 12 '14 16:05 stephanenicolas

Hi @stephanenicolas ,

I think, my project can generate dexed code dynamically. But the code generation is not so fast and requires some disk spaces to compile from '.class' to '.dex'. And the library is very fat. However, these are not so big issues for latest Android devices. The reason why I recommended to use dexmaker project is just one thing. Javassist code used in my project is not based on latest version. So some bugs may be not fixed. And I do not plan to merge the changes on latest Javassist now.

About Javassist API, I agree with you. Javassist API is very useful and it will make the code human readable in many case, I think. When I developed my project, I wanted to realize just 'dynamic code generation' on Android. The other things were out of target. So my answer for your asking 'what you were working on' is 'nothing'. I did not working on DI, AOP and the any other things that may use dynamic code generation and/or byte code manipulation.

In the future, if I had enough time, I hope to implement completely mruby-Java bridge (mruby is light-weight Ruby implementation). And byte code manipulation will be used for it, I think.

Thanks.

crimsonwoods avatar May 14 '14 13:05 crimsonwoods