Official Site: http://www.android.com/
Project Host: http://developer.android.com
Repository: http://android.git.kernel.org
References:
http://pastie.org/527730 - A Simple Example Code
http://www.jollen.org/Android/ http://www.jollen.org/blog/android_os/
Build Whole Image from Source
http://source.android.com/download
Using Eclipse
http://source.android.com/using-eclipse
Debian/Ubuntu
$ sudo update-java-alternatives -l
$ sudo update-java-alternatives -s java-1.5.0-sun
Find native library
$ find -type d -name LINKED -exec tree {} \;
library 'xxx.so' not in prelink map
$ vi ./build/core/prelink-linux-arm.map
$ vi Andoird.mk
LOCAL_PRELINK_MODULE := true
The intermediate files is under ./out/target/product/generic/obj/
APPS
ETC
EXECUTABLES
include
KEYCHARS
lib
NOTICE_FILES
NOTICE.html
NOTICE.html.gz
PACKAGING
SHARED_LIBRARIES
STATIC_LIBRARIES
Don't use this with `include $(BUILD_EXECUTABLE/BUILD_SHARED_LIBRARY/BUILD_STATIC_LIBRARY) at the same Android.mk, there are some bugs.
Difference of LOCAL_WHOLE_STATIC_LIBRARIES and LOCAL_STATIC_LIBRARIES?
Initial Script is ./out/target/product/generic/root/init.rc
Edit all Android.mk
vim -p $(find -type f -name Android.mk -print0 | xargs -0 echo)
Emulator
$ lunch
You're building on Linux
generic-eng simulator
Lunch menu... pick a combo:
1. generic-eng
2. simulator
Which would you like? [generic-eng] 1
============================================
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=
============================================
$ emulator -shell
$ out/host/linux-x86/bin/mkyaffs2image \
-f out/target/product/generic/system \
out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
$ out/host/linux-x86/bin/acp \
-fpt out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img \
out/target/product/generic/system.img
Build System
Devices