I have been asked to evaluate the Android platform for our product and I am looking at various options, I am only just scratching the surface just now and the one thing that
You can build in ARM, Thumb, or a mix of the two.
In the makefile, in LOCAL_SRC_FILES
, where you would list MyFile.c
, specify MyFile.c.arm
(do not rename the file on disk, just do it in the list of source files). This convention is used throughout Android for code that is performance-critical (or just needs to be ARM for some reason).
The usual notes apply, of course: Thumb code tends to require more instructions to accomplish something, but each instruction is half the size, so the code is usually a bit slower but also a fair bit smaller. In some situations the smaller size allows a better fit with the (tiny) caches in the ARM CPUs, and could actually be faster.