Trac is being migrated to new services! Issues can be found in our new YouTrack instance and WIKI pages can be found on our website.

libpurple on Android

This is the documentation to compile and use libpurple on Android.

The Android port of libpurple will be created during a Google Summer of Code project.
For more information see the proposal on google melange


There are many things you need to do in order to compile the libraries yourself, so there is an extra page for it. You should plan about 1 hour for the setup and another one hour to compile.

There is also a tutorial to set up debugging.


If you just want to use libpurple in your application, you do not need to compile everything. Just use the precompiled binaries for ARM.

There is a tutorial on how to create an Android client.

At the end of the project I am planning to do a release, but for now just mail me if you want to have binaries. -- Michael

Compiling for host

Even if the project is focused on Android, it is also possible to build the Java library on your host.

List of things to do

This is the (incomplete) list of things that are missing in the library and/or in the testclient and need to be implemented. If you want to, you are welcome to help. Some of those things might also be a nice GSoC project.

Currently, there is only support for IM sessions.
More protocols
Only jabber is tested, other protocols may segfault, not connect, ...
Currently, you are just online.
Plugin support
With the ability to install new protocols with a nice GUI and integreation of a plugin website.
Account settings
Add more settings than the basic account settings, including setting account icons.
Buddylist editing
Make the buddylist editable, regroupable, ...
File transfers
Would be nice to have.
Media support
Who would need that? Typing on a phone is so easy.
The UI is just for testing. Do a better one.
Fix bugs
They are somewhere.
Update libraries
The libraries need to be updated and compilation scripts checked. And json-glib should be added.

Cleanup plan

This are the things that will be done the next few days/weeks to clean it up:

  • Rename the projects. the main project will become jpurple, the build project will become jpurple-dependencies and the android client will get a new name.
  • Rename the packages. We will switch all im.pidgin.libpurple to im.pidgin.jpurple
  • Rename the repo soc/2012/michael/android to soc/2012/michael/libpruple
  • Move the android/workspace directory to a new repository (soc/2012/michael/android) and delete it from the main repo (using hg convert)
  • merge the andoid branch with the default branch in the soc/2012/michael/libpruple, so that there is only one active branch.

End result:

We have soc/2012/michael/android, which contains all android/java related source code. And we have soc/2012/michael/libpurple, which is the libpurple branch of the android devs that contains changes to libpurple.


This project is done by Michael Zangl. You can contract him per mail using michael (at)

Last modified 11 years ago Last modified on Dec 19, 2012, 3:01:20 PM
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!