Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What is the status of this project ? #1

Open
stephanenicolas opened this issue May 7, 2014 · 3 comments
Open

What is the status of this project ? #1

stephanenicolas opened this issue May 7, 2014 · 3 comments

Comments

@stephanenicolas
Copy link

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

@crimsonwoods
Copy link
Owner

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.

@stephanenicolas
Copy link
Author

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 notifications@github.com:

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//issues/1#issuecomment-42842916
.

@crimsonwoods
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants