In the Min SDK Version box, type 8. Your screen should now look similar to Figure 3-5.

63

Chapter 3: Your First Android Project

The gen folder is automatically generated by Eclipse and the ADT when the compilation takes place. As soon as the New Android Project wizard was completed, a new project was created and saved in Eclipse’s work- space. Eclipse recognized this fact and said, “Hey I see some new files in my workspace. I need to report any errors I find as well as compile the proj- ect.” Eclipse reported the errors by placing an error icon over the folder. Immediately thereafter, the compilation step took place. During the compila- tion step, the gen folder was created by Eclipse, and the project was success- fully built. Then Eclipse recognized that the project did not have any more errors. At that time, it removed the error icon from the folder, leaving you with a clean workspace and a clean folder icon, as shown in Figure 3-8. Figure 3-8: A project in the Package Explorer that has no errors. Notice the folder icon; it has no error icon overlay on it. A project without any errors Understanding the Build Target and Min SDK Version settings So how does the Build Target setting differ from the Min SDK Version setting? The build target is the operating system you’re going to write code with. If you choose 2.2, you can write code with all the APIs in version 2.2. If you choose 1.6, you can write code only with the APIs that are in version 1.6. You can’t use the Bluetooth APIs in version 1.6, for example, because they weren’t introduced until version 2.0. If you’re targeting 2.2, you can write with the Bluetooth APIs. Know which version you want to target before you start writing your Android application. Identify which Android features you need to use to ensure that your app will function as you expect. If you’re positive that you’re going to need Bluetooth support, you need to target at least version 2.0. If you’re not sure which versions support the features you’re looking for, you can find that information on the platform-specific pages in the SDK section of http: d.android.com. The Android 2.2 platform page is at http:d.android. comsdkandroid-2.2.html. 64 Part II: Building and Publishing Your First Android Application Android operating-system OS versions are backward-compatible. If you target Android version 1.6, for example, your application can run on Android 2.2, 2.1, 2.0, and of course 1.6. The benefit of targeting the 1.6 framework is that your application is exposed to a much larger market share. Your app can be installed on 1.6, 2.0, 2.1, and 2.2 devices and future versions, assum- ing that no breaking framework changes are introduced in future Android OS releases. Selecting an older version doesn’t come without consequences, however. By targeting an older framework, you’re limiting the functionality that you have access to. By targeting 1.6, for example, you won’t have access to the Bluetooth APIs. The Min SDK Version setting is the minimum version of Android that the user must be running for the application to run properly on his or her device. This field isn’t required to build an app, but I highly recommend that you fill it in. If you don’t indicate the Min SDK Version, a default value of 1 is used, indicat- ing that your application is compatible with all versions of Android. If your application is not compatible with all versions of Android such as if it uses APIs that were introduced in version code 5 — Android 2.0, and you haven’t declared the Min SDK Version, when your app is installed on a system with an SDK version code of less than 5, your application will crash at run time when it attempts to access the unavailable APIs. As best practice, always set the Min SDK Version in your application to prevent these types of crashes. Version codes and compatibility The Min SDK Version is also used by the Android Market which I cover in detail in Chapter 8 to help identify which applications to show you based on which version of Android you’re running. If your device is running version code 3 Android 1.6, you would want to see the apps pertinent to your version, not version code 8 Android 2.2 apps. The Android Market man- ages which apps to show to each user through the Min SDK Version setting. If you’re having trouble deciding which version to target, the current version distribution chart can help you decide. That chart is located here: http:developer.android.com resourcesdashboardplatform- versions.html. A good rule of thumb is to analyze the dis- tribution chart on at:developer. android.com to determine which version will give your app the best market share. The more devices you can target, the wider the audience you will have, and the more installs you have, the better your app is doing. 65

Chapter 3: Your First Android Project