Published at DZone with permission of Andreas Kollegger, author and DZone MVB. (source) Curator's Note: The content of this article was written by Phillip Rathle over at the Neo4j blog.
During this busy week of Android hacking at Google I/O, we are pleased to announce an amazing new Community project, for all of those who have been yearning to run Neo4j on mobile: Neo4j Mobile for Android v0.1! This project is available today on GitHub
: for hacking, experimenting, evolution, and use. As the 0.1 version number indicates, this is an incubation project. This means that it’s fully functional, but early days, and hence experimental, and as-yet unsupported. We’ll leave this in your capable hands to play with, extend, and comment upon.
A few facts to get you started:
First and foremost: credit where credit is due! You can thank Noser Engineering AG
for this amazing bit of work. Noser has deep expertise in mobile and embedded devices, leading to this port, which was originally done for a client of theirs.
How does it work? Neo4j Mobile for Android runs as a service, and is accessed via Android Inter-Process Communication using an AIDL (Android Interface Definition Language) connector. This makes it possible for multiple apps on an Android device to access the same database service. The picture below summarizes an example application architecture, taken from the original project, showing Neo4j Mobile for Android interacting with other solution elements:
What version of Neo4j is the Android port based on? The Android version is based on an older milestone version: 1.5 M05, which has been modified to run on Android. The primary thing to be aware of is that this version doesn’t support Cypher. (It also doesn’t include a number of Server components, that simply aren’t necessary or relevant on Android.) Upgrading to a more recent version of Neo4j that does have better support for Cypher is clearly something that will need to get done.
Building the Project. The project builds on Ant. Eventually this could be changed to use Maven. As Ant is pretty common and well-accepted in the Android world, we decided not to change the build system.
Licensing. Like our Community edition, the license is GPL. If you want to redistribute Neo4j with your app, but aren’t planning on making your app open source, come talk to us, and we’ll work with you to make that happen. This is an incubator project, so we’re not expecting you’ll go live with this tomorrow.
Where do I go for questions? This is a community-supported project. Post your questions on the Neo4j Google Group
. If you need consulting assistance or have a specific project in mind, you can contact Noser
(the authors of this port). For questions about commercial licensing, please contact Neo Technology
Is there a test app that I can use? Yes. There’s a (very) rudimentary test app that is included in the project. (See the screenshot to the right.) We’re working on a webcast and some more detailed instructions, and will get those posted when we can.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)