I'd create a common CVS project and check it out into two different environments. It does take a little discipline to prevent the two copies from diverging, but if you check in/out on a regular schedule it should work.
On Dec 23, 12:56 pm, Eric <[email protected]> wrote: > We have a large, complex, Java client/server application that is > deployed in Java Swing. We hope to leverage this codebase and reuse a > lot of the client-side model, controller, and communication code in a > new Android port of this application. Does anyone have thoughts on > how best to do this (FYI, I use Jetbrains IDEA as my IDE, not > Eclipse)? > > For example, several questions come to mind: > > - is it better to create a new IDE project for the Android project, or > just add an Android module to the existing IDE project (I prefer the > latter to take advantage of global refactorings). > > - if adding an Android module to the current IDE project, how does one > best share lower-level Modules across Java Swing and Android? Things > become very problematic because Android does not ship with the full > standard JDK, and therefore code must be moved, refactored, or even > deleted if it depends on JDK packages that are not available on > Android. This means that for a pre-existing Util module to be shared > across the platforms, we may have to create a new lower-level version > of that Module that only depends on the packages that Android has > available to it. > > - I've also found through experimentation that when I try to depend on > a pre-existing module that has Jar dependencies of it's own, the > Dalvik conversion process doesn't always successfully convert that Jar > into Android format (possibly because it contains unsupported code). > What's confusing is that the Dalvik conversion works on certain jars > that contain unsupported code, but not on others. So the conversion > process must be ignoring code that isn't referenced somehow. In > summary, I've encountered a lot of problems trying to depend on third- > party jars on Android, and I'm wondering if anyone else has the same > problems, or suggestions? > > - another way to approach this is to copy the shared code into the > Android project and give up the ideal of trying to share the code, and > just maintain two distinct code bases (this is not at all ideal, but > it may be the most painless route). > > - I have another specific question about the Dalvik VM conversion > process. Exactly how does that process work? Does it strip out code > that is unsupported on Android? For example, I had a JAXB generated > file which referenced the import javax.xml.bind.annotation.* classes > that are not available on Android. With my Android module SDK set to > the main JDK, that code DID compile and DID get converted to Dalvik, > despite the fact it references classes that are not available on > Android. I did this by adding a dependency to another pure-java > module that has the jaxb.jar as its dependency. Did the Dalvik > converter actually convert the entire JAXB jar and put it onto > Android, or did it just strip out the JAXB classes and references from > the bytecode that are not available on Android? > > I'm very curious about how this all works, because the answer will > have a significant impact on how we move forward on our project. We > have a lot of code that is written to the standard JDK that we'd like > to reuse on Android. The code certainly does references packages that > are not available on Android, but we may not necessarily hit those > code paths from inside Android. But if the system will automatically > strip out the unavailable code paths for us, to allow us to reuse the > same source code, that would be very beneficial. Just wondering if > anyone has insights on this. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

