Open source android applications

Date Tags android

I’ll try to keep an update list of FOSS android applications. If you search for “android applications” on your favorite engine, you will mainly find payware / ad-ware or freeware closed source applications. I really can’t stand the idea. This is a selections of links. I haven’t tried them all and I’ll write my impressions as I try them out. My experiences are on a freerunner running android cupcake.

  • Astrid, a Task/Todo Manager. It’s a simple task applications (with a lot of options if you look closely) that works as advertized.

I found the following applications using this simple search on code.google.com

  • Autosetting Allows to customize your settings in relation to the time of the day/week

  • WebSMS Allows you to send cheap/free sms using various sms privders.

*Five It’s a cool client/server application to organize your music on your PC , sync on you mobile and play it. It has a smart storage policy to avoid filing your sdcard and tries to minimize the use of the network.

  • Anstop it’s a simple watch/stop.

  • http://code.google.com/p/android-wifi-tether/ It’s a tether application.

  • smspopup It’s a widget that pop-ups an alert when you receive a new sms.

  • android-sky it’s a weather widget.

  • rsyndroid uses rsync to backup your android phone.

  • simsalabim manage contacts on the sim card

  • aegis-shield it’s a password manager.

  • openvpn-settings lets you manage your vpn connections

  • sibyl music player

[stop at http://code.google.com/hosting/search?q=label%3AAndroid&filter=0&start=230]


build android adb on debian sid amd64

I’ve installed android on my freerunner. I’ve to say that it works ! very nice and functional interface, finger friendly, voice, sms, wifi work out of the box. I’m very impressed.

Following the lead from http://lackingrhoticity.blogspot.com/2010/02/how-to-build-adb-android-debugger.html I’ve decided to build adb to connect to my phone without downloading the precompiled sdk and without checking-out the entire android git repository. It’s actually very easy, and I’m sure with a minimal effort, it should be possible to create a debian package. The android instructions give some hints regarding the cross-compilation of android on a x64 machine.

Cutting and pasting from Lacking Rhoticity blog you need to :

$ sudo apt-get install build-essential libncurses5-dev
$ git clone git://android.git.kernel.org/platform/system/core.git system/core
$ git clone git://android.git.kernel.org/platform/build.git build
$ git clone git://android.git.kernel.org/platform/external/zlib.git external/zlib
$ git clone git://android.git.kernel.org/platform/bionic.git bionic
$ echo "include build/core/main.mk" >Makefile

Now edit build/core/main.mk and comment out the parts labelled

# Check for the correct version of java

and

# Check for the correct version of javac

Since adb doesn’t need Java, these checks are unnecessary.

Also edit build/target/product/sdk.mk and comment out the “include” lines after

# include available languages for TTS in the system image


Now, since we are one a x64 machine we need to install the rest of the libraries to cross compile abd. I think this is the minimum you need to successfully build adb

sudo apt-get install libc6-dev-i386 lib32ncurses5-dev ia32-libs g++-multilib

The result should be something like this :

$make out/host/linux-x86/bin/adb
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
find: `frameworks/base/api': No such file or directory
[ ... ]
host Executable: adb (out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb)
true
host C: acp <= build/tools/acp/acp.c
host C++: libhost <= build/libs/host/pseudolocalize.cpp
host C: libhost <= build/libs/host/CopyFile.c
host StaticLib: libhost (out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a)
ar crs  out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/pseudolocalize.o out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/CopyFile.o
host Executable: acp (out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp)
true
Install: out/host/linux-x86/bin/acp
Notice file: system/core/adb/NOTICE -- out/host/linux-x86/obj/NOTICE_FILES/src//bin/adb.txt
Notice file: system/core/libzipfile/NOTICE -- out/host/linux-x86/obj/NOTICE_FILES/src//lib/libzipfile.a.txt
Notice file: external/zlib/NOTICE -- out/host/linux-x86/obj/NOTICE_FILES/src//lib/libunz.a.txt
Notice file: system/core/liblog/NOTICE -- out/host/linux-x86/obj/NOTICE_FILES/src//lib/liblog.a.txt
Notice file: system/core/libcutils/NOTICE -- out/host/linux-x86/obj/NOTICE_FILES/src//lib/libcutils.a.txt
Install: out/host/linux-x86/bin/adb

Running abd :

$out/host/linux-x86/bin/adb      
Android Debug Bridge version 1.0.25
[...]

Now something very important that made me wonder for a while. By default android does not allow any connection with adb. To use it you must enable it on the phone. Then go Applications then Development. Under here you want to switch on Stay awake so that your screen stays visible while connected to your main system.

Finally, you can talk to your phone. Success !

$ADBHOST=192.168.0.202 ./out/host/linux-x86/bin/adb devices
* daemon not running. starting it now *
* daemon started successfully *
List of devices attached 
emulator-5554   device