Developing for Android Erik Nykl
Developing for Android History of Mobile Why Android? Mobile Development Process Writing Code! – Android API (Google’s Java library) Use Hardware – Embedded Java & Code Efficiency
Mobile History Motorola DynaTAC 8000X – Released in 1983 – First mobile phone – 30 minute talk time – Cost only $4000 Rudy Krolopp – Lead Designer Picture:
Mobile History First PDA: Apple Newton released in 1993 (original iPad) Hand writing recognition Only three applications – Notes – Names – Dates Product was a big flop Picture:
Mobile History 2000 – Nokia/Ericsson releases Symbian OS 2001 – Microsoft announces Windows CE Pocket PC OS 2002 – Palm OS Treo – Allowed third-party applications that could be downloaded 2002 – RIM releases first BlackBerry
Mobile History 2007 – A major year in mobile – Early Nokia N95 First phone with WiFi, GPS, 5 MP camera, 3G, and TV-Out – Mid 2007 – Apple iPhone First multi-touch interface for smart phone Best mobile web browser at the time No OFFICIAL support for third party apps iOS 1.0 – November 2007 – Open Handset Alliance OHA was formed Android – An open source operating system built on the 2.6 Linux Kernel was released
Developing for Android History of Mobile Why Android? Mobile Development Process Writing Code! – Android API (Google’s Java library) Use Hardware – Embedded Java & Code Efficiency
Why Android? Android is the fastest growing mobile operating system – In the Summer 2010 nearly 200,000 Android devices activated each day Android has the fastest growing App Store (Android Market) Android WILL be the dominant smart phone OS – Open source and freer application development – Open platform - hardware manufacturers can do whatever they want and competition has decreased hardware dev cycle (down to 6 months; Apple has yearly releases)
Why Android? Apple has first “successful” App Store Development is done in Objective-C – IDE: XCode Apple requires $99 to develop for the iPhone Apple screens each App and can remove an App from the store at any time for any reason – “Guilty until proven innocent” Apple can also blacklist your name and account Apple takes 30% of each sale Development pretty much requires a Mac
Why Android? Android’s App Store: Android Market Development done in Java – IDE: Preferred Eclipse, Netbeans, …, or none – Totally supportive for multiplatform development $25 developer signup fee Unfortunately also take 30% of sale price Relies on users to screen apps – “Innocent until proven guilty” Open hardware platform
Developing for Android History of Mobile Why Android? Mobile Development Process Writing Code! – Android API (Google’s Java library) Use Hardware – Embedded Java & Code Efficiency
Mobile Software Process How can we develop for mobile applications? Will traditional development methods work? – Waterfall, RAD, Spiral, Incremental How about Agile? Mobile App Requirements – Shall be easy to use – Shall be responsive (OS & User) – Shall be delivered quickly to market
Mobile Software Process Mobile applications have a larger domain than desktop based applications – Not just a number crunching app – Informational Services – Content-based services – Location-based services
Mobile Software Process New challenges for developers – Wireless communication issues Switching from 3G to WiFi and back to 3G – Mobility issues Location dependent app looses GPS signal – Portability New OS every year with updates every 3-6 months Dozens of different hardware setups – New hardware every 6 months – Privacy Phone knows much more about you than your credit card information
Mobile Software Process A Hybrid Method Engineering Approach for Mobile Software Development – Vahid Rahimian, Raman Ramsin Developed using a process for making processes (Method Engineering)
Developing for Android History of Mobile Why Android? Mobile Development Process Writing Code! – Android API (Google’s Java library) Use Hardware – Embedded Java & Code Efficiency
Writing Code! Finally, coding! Almost
Writing Code! Some fundamentals ndamentals.html ndamentals.html
Writing Code! So what all do we need? – Android SDK – Netbeans with Android plugin – Probably want some Android hardware – Don’t necessarily have to get a developer account quite yet
Writing Code! AndroidManifest.xml – Every application MUST have this file in the root directory (don’t worry, usually created for you) – Describes what stuff the app will use – Libraries, minimum API level, declares which permissions the app needs –
Writing Code! It IS Java right? – Yes, basically. Close enough at least. – Dalvik is the custom JVM for Android – Written by Dan Bornstein originally – Named after a village in Eyjafjörður, Iceland where some of his ancestors lived – Uses its own byte code (not Java byte code) – Uses its own library (no AWT or Swing) – As of Android 2.2 a JIT Compilier was added (speed increases of up to 450%!)
Writing Code! Good Practice – If something is going to take a long time spawn a thread!
Developing for Android History of Mobile Why Android? Mobile Development Process Writing Code! – Android API (Google’s Java library) Use Hardware – Embedded Java & Code Efficiency
Hardware oid/hardware/Sensor.html oid/hardware/Sensor.html oid/hardware/SensorManager.html oid/hardware/SensorManager.html Accelerometer example rometer-t499.html rometer-t499.html
Developing for Android History of Mobile Why Android? Mobile Development Process Writing Code! – Android API (Google’s Java library) Use Hardware – Embedded Java & Code Efficiency
Embedded Java and Code Efficiency You are coding in an embedded environment! – Limited memory, disk space, battery length, and limited CPU power /design/performance.html /design/performance.html
Development Resources
References Book: Beginning Android 2; Mark L. Murphy Rahimian, V.; Ramsin, R.;, "Designing an agile methodology for mobile software development: A hybrid method engineering approach," Research Challenges in Information Science, RCIS Second International Conference on, vol., no., pp , 3-6 June 2008 doi: /RCIS URL: ber= http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber= &isnum ber=