1) I see no reason not to use SQLlite since it is on the device
2) Simple - TelephonyAPI
3) Also Simple, see this link:
SMS Messaging in Android | mobiForge Also, if a newer API level is used, you can even snag the SMS before it gets to the normal SMS inbox, see:
Can we delete an SMS in Android before it reaches the inbox? - Stack Overflow
4) Why start an alarm? Rather I think you need to register and intent filter for boot time like this:
Start Service at boot | Android Competency Center
-frank