...You need to compile the firmware to handle each device. Additionally, Android (and the Dalvik virtual machine) run on MANY different processors--so you also have to target your ROM build for those different architectures altogether. Thankfully, once you get all the ROM stuff out of the way, the apps should generally run without regard for any of that because of the virtual machine running on that platform.