109
edits
Joel Reymont (talk | contribs) |
Joel Reymont (talk | contribs) |
||
| 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'' | |||
edits