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. 

For those of you who are in San Francisco, we’ll be holding a launch event tomorrow at #GoogleIO on Wednesday May 15.


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:

4BCtMCJDSebkvWl5ztQPjhMezIXIOH2gfD2giNVLu5XvWo48PoNVhryU6G62N8_SitUYc1_RWs2HISrsfEralypjyxvRskSBEjoszFmuP5U42R3TFEnucDBY

  • 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.
  • FFYoPvRHw4h2xi3vCLtJIgEREVhUp9LlXw9mxf_walUH0qoGef8p7QiEanxp1FZFwxhT6-voh8vek7ELQ8NbHdqHlWRTO2IkssSSgMG2NuX6Czp2ropSPPoR7Q 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.

  • Can I replicate this database? There are no replication services built in, but you can certainly do this at the application layer. Noser has done this and will cover it in their upcoming webinar.
  • How can I learn more? We’re planning a webinar with Urs Boehm, who is Noser’s lead engineer on the Android port. We’ll post webinar details online, and will send invites to the general Neo4j mailing list once it’s been scheduled. You can sign up to the Neo mailing list here.


Enjoy!

Philip Rathle
Senior Director of Products
 

Keywords:  


5 Comments

Anonymous says:

wrong link for Noser Engineering AG – should be noser.com, or?

Thanks for pointing that out, corrected!

Sergey Golub says:

If one database per device, how is it going to be distributed? It must be published to "play" as library project I guess(by whom?). App which uses it, must ask user to install neo4j lib. And every db version must be there also with different package name. Am I right? There comes different issues when different apps use different db versions :) Is it to heavy when compiled ?

Matt Whetton says:

I'm also interested in the question asked by Sergey Golub.

What has happened with @Neo4j in @Android http://ow.ly/z3bz3 – are there any developments ?

[…] here. During the Android Hacking at Google I/O an amazing new Community project was announced: Neo4j Mobile for Android v0.1!. The project is currently available on GitHub for experimentation and evaluation purposes. As the […]

1 Trackback

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Popular Graph Topics

Archives

Have a Graph Question?

Reach out and connect with the Neo4j staff.
Stackoverflow
Contact Us