130 likes | 359 Views
Comparison to android DEVELOPMENT TOOLS (ADT) AND SDK. http://www.flickr.com/photos/ourcage/8343799386/. What is the Android SDK?. Tools for creating apps SDK Manager AVD Manager Command-line tools (e.g., debug monitor) Eclipse ADT plugin (optional) Compile & deploy apps written in Java
E N D
Comparison to android DEVELOPMENT TOOLS (ADT) AND SDK http://www.flickr.com/photos/ourcage/8343799386/
What is the Android SDK? • Tools for creating apps • SDK Manager • AVD Manager • Command-line tools (e.g., debug monitor) • Eclipse ADT plugin (optional) • Compile & deploy apps written in Java • Compiled to Android-compatible bytecode
Pros and cons of Android SDK (particularly compared to Titanium) • Pros: • Somewhat higher performance • Somewhat smaller executables • Somewhat broader API • Support for declarative layout • Cons: • If you don't know Java • Only works for Android (e.g., not iOS)
Installation • Download: download.android.com • Fire up SDK manager • Install as much as you can tolerate • Definitely 2.3.3 and also the latest API • Include the generic Android versions + Google versions • Google versions give you Google-specific APIs (e.g., maps) • Open Eclipse, then… • Help > Install software > https://dl-ssl.google.com/android/eclipse/
Summary of Android project structure • src/ • For declaring custom Java classes of your own • gen/ • Where Android generates other code for you • libs/ • Where you put any 3rd party jar files that you need • res/layout/ • Where you put XML files for activities (~windows) • res/values/ • Where you put XML files for strings & other data • res/drawable*/ • Where you put images • AndroidManifest.xml • Where you define the app's overall structure & settings
What you have seen so far… • Activities (windows) with nested views • Declarative user interface layout • Analogous to the "new" Titanium approach (alloy) • But the Android SDK also has a visual editor • Custom images, depending on screen • Analogous to how Titanium organizes images • Localization of strings • Titanium has an API for this, too – it's just not so "in your face" • Testing apps in an emulator • Again, similar to Titanium
All this and more…Data access and processing • Files (Java APIs) and databases (Android API) • Remote data (Java network APIs) • (Android APIs to detect network & do asynchronously) • Parsing strings (pre-loaded 3rd party libraries) • Saving name-value pairs (Android API)
All this and more…Access to specialized APIs • Sensors and other hardware • Compass, Geolocation, Accelerometer, Gestures, Sound, Camera, Barometric pressure, Gyroscope, … • Integration with other applications • Dialing phone, Sending email, Sending text message, Retrieving contacts, Displaying a map, … • Validating data and managing state • Validating inputs, detecting lifecycle events to save state, running services in the background, … • Specialized UI controls • Popup menu, various progress bars, ratings bar, checkboxes, switches, sliders, video viewers, media controllers, chronometer, zoom control, …
Choosing a platform (How-To & Project) • Cloud • Google App Engine or Amazon Web Services • Mobile • Mobile web, or else for a native mobile app either Appcelerator Titanium or Google Android SDK • If you want to use a platform other than those above, discuss it first with the instructor.
Resources for Android SDK • W.M. Lee's "Beginning Android Application Development" (available at Amazon.com) • http://developer.android.com/ for documentation and tutorials • The "Android Development Basics" app (com.aviyehuda.androidcard) available in Google Play store