I asked a similar question - I was trying to develop an application for Android, Blackberry and, possibly, J2ME. I did this by implementing platform components (user interface, database access, network access) separately from the main business logic. The BL core was developed as a regular JAR library, which I distributed in Android and BB applications.
Although this worked, I was not satisfied with the decision. As I explained in the answer here , (and as even the answers to my first question mentioned above), I ran into practical difficulties since BB / J2ME could not cope with Java releases. My Android implementation ended up using a lot of "outdated" code (for example, no generics).
Having said that, since your next goal is to switch to a desktop computer, and not to BB or J2ME, you can not only support the overall design of your Android and Java desktop applications, but also share implementations.
As for your question about abstraction, I would suggest a business logic approach based on an interface and DB Logic. The link in the first paragraph of my answer above shows a simple example of how to achieve this, but I would be happy to provide more detailed information.
source share