User:Joel Reymont/Android Notes: Difference between revisions

Line 38: Line 38:


= Android Notes =  
= Android Notes =  
== Sample external application Makefile ==
Here's how you can build your own native apps without being shoehorned into the Android SDK build structure. I got this by massaging the output of ''make showcommands''.
<pre>
SDK := /Volumes/android/mydroid
TOOLCHAIN := $(SDK)/prebuilt/darwin-x86/toolchain/arm-eabi-4.2.1
ABILIB := $(TOOLCHAIN)/lib/gcc/arm-eabi/4.2.1/
BIN := $(TOOLCHAIN)/bin
C++ := $(BIN)/arm-eabi-g++
CC := $(BIN)/arm-eabi-gcc
INCLUDE := \
  -I$(SDK)/system/core/include \
  -I$(SDK)/hardware/libhardware/include \
  -I$(SDK)/hardware/libhardware_legacy/include \
  -I$(SDK)/hardware/ril/include \
  -I$(SDK)/dalvik/libnativehelper/include \
  -I$(SDK)/frameworks/base/include \
  -I$(SDK)/frameworks/base/opengl/include \
  -I$(SDK)/external/skia/include \
  -I$(SDK)/out/target/product/generic/obj/include \
  -I$(SDK)/bionic/libc/arch-arm/include \
  -I$(SDK)/bionic/libc/include \
  -I$(SDK)/bionic/libstdc++/include \
  -I$(SDK)/bionic/libc/kernel/common \
  -I$(SDK)/bionic/libc/kernel/arch-arm \
  -I$(SDK)/bionic/libm/include \
  -I$(SDK)/bionic/libm/include/arch/arm \
  -I$(SDK)/bionic/libthread_db/include \
  -I$(SDK)/frameworks/base/cmds/demo \
  -I$(SDK)/system/core/include/arch/linux-arm \
  -include $(SDK)/system/core/include/arch/linux-arm/AndroidConfig.h \
  $(NULL)
 
CFLAGS = \
  -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5TE__ -DANDROID \
  -DSK_RELEASE -DNDEBUG -UDEBUG \
  -mthumb -mthumb-interwork -msoft-float -march=armv5te -mtune=xscale \
  -fpic -fno-exceptions -ffunction-sections -funwind-tables -fstack-protector \
  -fno-short-enums -fmessage-length=0 -finline-functions -fno-inline-functions-called-once \
  -fgcse-after-reload -frerun-cse-after-loop -frename-registers -fvisibility-inlines-hidden \
  -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -fno-rtti \
  -W -Wall -Wno-multichar -Wno-unused -Werror=return-type -Wstrict-aliasing=2 \
  -Wnon-virtual-dtor -Werror=return-type \
  -MD -Os -g \
  $(NULL)
LIBDIR := $(SDK)/out/target/product/generic/obj/lib
LIBS := -lui -llog -lutils -lc -lstdc++ -lm $(LIBDIR)/crtbegin_dynamic.o
 
LDFLAGS := \
  -nostdlib -Bdynamic -Wl,--no-undefined -Wl,-T,$(SDK)/build/core/armelf.x \
  -Wl,-dynamic-linker,$(SDK)/system/bin/linker -Wl,--gc-sections -Wl,-z,nocopyreloc \
  -L$(LIBDIR) -Wl,-rpath-link=$(LIBDIR) \
  $(NULL)
 
all: demo
demo: surfaceflinger.o demo.o
$(C++) $(LDFLAGS) -o demo $(LIBS) surfaceflinger.o demo.o \
$(ABILIB)/interwork/libgcc.a $(LIBDIR)/crtend_android.o
surfaceflinger.o:
$(C++) $(INCLUDE) -c $(CFLAGS) surfaceflinger.cpp
demo.o:
$(CC) $(INCLUDE) -c $(CFLAGS) demo.c
clean:
rm -f demo *.o
</pre>


== Introduction to the Android Window System ==
== Introduction to the Android Window System ==
Line 277: Line 352:


Can be found [https://wiki.mozilla.org/User:VladVukicevic/Android_Notes here].
Can be found [https://wiki.mozilla.org/User:VladVukicevic/Android_Notes here].
''Italic text''
109

edits