Android is the mobile device platform being pushed by Google and owned by the Open Handset Alliance.
To build a minimal Android rootfs, for doing bringup or kernel work
The android build system is complicated. It is not easy to create a simple build script to build single component. But it is much easier to add a new component into the build system. Here is a sample to build the "Hello world!" for Android, and it is dynamic linked executable.
1. create a directory for the new component in $(YOUR_ANDROID)/external folder: $(YOUR_ANDROID)/external/hello
2. put the hello.c into the directory: $(YOUR_ANDROID)/external/hello/
3. create Android.mk in $(YOUR_ANDROID)/external/hello/ directory, the Android.mk likes the following:
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_SRC_FILES:= \
hello.c
LOCAL_MODULE := hello
include $(BUILD_EXECUTABLE)
4. add the following line into $(BUILD_SYSTEM)/main.mk,$(BUILD_SYSTEM) is in $(YOUR_ANDROID)/build/core:
external/hello
5. launch the build command in $(YOUR_ANDROID): make hello
you will have the build target hello in $(YOUR_ANDROID)/out/target/product/generic/system/bin.
You can use include $(BUILD_SHARED_LIBRARY) to create shared library. Find more in $(YOUR_ANDROID)/build/core/config.mk.
Using the ffmpeg command line from
First, get the mpeg4 codec (it's non-free, hence lives in the Ubuntu multiverse repository. This will replace your libavcodec-52)
# apt-get install libavcodec-unstripped-52
$ ffmpeg -i terminal.avi -s 480x256 -vcodec mpeg4 -acodec libfaac -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 -padtop 32 -padbottom 32 terminal.G1.mp4
I have used this method successfully on my Ubuntu 9.04 (Jaunty) system.
Android has a form of push data, called a network tickle. On my Dream, this is used for
D/Sync ( 52): Received network tickle for joel.stan@gmail.com - http://www.google.com/m8/feeds/contacts/joel.stan@gmail.com/base2_property-android D/Sync ( 52): Received network tickle for joel.stan@gmail.com - http://www.google.com/m8/feeds/groups/joel.stan@gmail.com/base2_property-android D/Sync ( 52): Received network tickle for joel.stan@gmail.com - https://mail.google.com/mail/g/?client=1229389399938 D/Sync ( 52): Received network tickle for joel.stan@gmail.com - http://www.google.com/m8/feeds/contacts/joel.stan@gmail.com/base2_property-android D/Sync ( 52): Received network tickle for joel.stan@gmail.com - http://www.google.com/m8/feeds/groups/joel.stan@gmail.com/base2_property-android D/Sync ( 52): Received network tickle for joel.stan@gmail.com - http://www.google.com/calendar/feeds/joel.stan%40gmail.com/private/full-selfattendance D/Sync ( 52): Received network tickle for joel.stan@gmail.com - http://www.google.com/m8/feeds/contacts/joel.stan@gmail.com/base2_property-android D/Sync ( 52): Received network tickle for joel.stan@gmail.com - http://www.google.com/m8/feeds/groups/joel.stan@gmail.com/base2_property-android
#android, on irc.freenode.net
Mon, 23 Feb 2009 13:55:48 +1030
13:54 orci: hi all, wondered something. Not because I like Opera but, why
can't I uninstall the "Browser" app and choose to use only Opera?
13:54 JesusFreke: because the browser app is in /system, which is read only
13:54 JesusFreke: /system/app rather
13:54 orci: isn't this a bit Microsoftish?
The first public drop of android sources included a driver for the TI 802.11 device found on trout. This is a binary blob coupled with an OS independent driver layer, which sits atop a bunch of code that maps this layer to the Linux driver API. It appears to include it's own 802.11 stack, as all out of tree drivers tend to do.
I was thinking it would be an interesting, but time consuming, task to port the TI driver to the in-kernel 802.11 stack. In an interesting turn of events, it appears Nokia has vested interests in the TI chip (my guess is they'll be hanging off a OMAP3 SOC in the sucessor to the Nokia N810). A Nokia engineer, Kalle Valo, has submitted a in-tree driver for the TI wl1251.
Chances are this will land in 2.6.31, and hopefully the Google/HTC guys will pick it up for their next firmware release.
Another win for using Linux as the kernel in your embedded project - chances are someone else will use the same SOC or peripheral and write a driver for you. This would be a really good reason for the silicon vendor - Texas Instruments in this case - to provide real, in-tree, driver support. They could start at pre-silicon, and by the time it's in dev boards it will be included in mainline. This gives anyone looking for a peripheral or SOC a compelling reason to pick up their silicon.