This is actually a very broad question, and its upon individual, what design pattern one can choose for his application. Any design pattern that works well for OOP, can be used in Android application.
Sir, you are a very experienced in your field, and I am just a novice android developer, but still I would like to answer some of your questions. For many of your questions, http://developer.android.com/design/index.html is enough for answers.
Installation on handsets: Installing app on handsets is very easy, since you just need to connect your mobile/tablet device to your PC and just run your app, this will automatically install your app on device. Another way is to copy the .APK file that has been created for your app when you run it on emulator, and paste it inside any folder of your mobile/tablet device. Then go to that folder and install the app. As simple as that.
Unit teesting in Android: For this please see http://developer.android.com/guide/topics/testing/testing_android.html
This is a very useful link. And also, this is very easy to implement.
Local data storage: For this please see http://developer.android.com/guide/topics/data/data-storage.html
Memory Considerations: From my personal experience, as mobiles are low memory devices, or more specifically, android OS allocates a fixed amount of memory for each app that is installed on it, you need to use your resources very well, and clear the resources as soon as possible after use. One common error you get encountered with is OOME in android. For more details please see my answer on: bitmap size exceeds Vm budget error android
Code Quality Evaluation: For this, there is a plugin for eclipse, PMD, it checks your code and find out all the programming errors you have done, or it tells you which statements that you are using, are not following the programming standards. To download PMD: http://sourceforge.net/projects/pmd-eclipse/ and to install it: http://pmd.sourceforge.net/eclipse/
Version Control: If this question is about Android version then as per suggested, you should develop an app that can run on any device with any Android version. But you can also develop an app that should work with only specific type of devices with specific android version.
Handling poor connectivity: You better know its answer since you are a web developer, but what I can suggest is, every time, before doing anything that requires internet, before proceeding, first check whether internet is available, if yes then only proceed or else provide a corresponding message to user regarding the issue.
Design issues: According to me, you can use any design pattern, but always see, how efficiently you can use your available memory and time. Always try to minimize number of clicks, that is, user should be able to use any feature that your app provides, with minimum numbers of clicks.
I hope I have solved some of your questions, Thank you :)