1 / 28

Developing for Android

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

Download Presentation

Developing for Android

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Developing for Android Erik Nykl

  2. 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

  3. Mobile History • Motorola DynaTAC 8000X • Released in 1983 • First mobile phone • 30 minute talk time • Cost only $4000 • Rudy Krolopp • Lead Designer Picture: http://msnbcmedia4.msn.com/j/msnbc/Components/Photos/050408/050408_motorola_firstphone_vmed4p.grid-4x2.jpg

  4. 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: http://upload.wikimedia.org/wikipedia/commons/thumb/2/24/Apple_Newton.jpg/368px-Apple_Newton.jpg

  5. 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

  6. Mobile History • 2007 – A major year in mobile • Early 2007 - 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

  7. 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

  8. 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) • http://www.gartner.com/it/page.jsp?id=1543014 • http://www.canalys.com/pr/2011/r2011013.html

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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)

  16. 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

  17. Writing Code! • Finally, coding! • Almost

  18. Writing Code! • Some fundamentals • http://developer.android.com/guide/topics/fundamentals.html

  19. 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

  20. 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 • http://developer.android.com/guide/topics/manifest/manifest-intro.html

  21. 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%!)

  22. Writing Code! • Good Practice • If something is going to take a long time spawn a thread! • http://developer.android.com/guide/practices/design/responsiveness.html

  23. 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

  24. Hardware • http://developer.android.com/reference/android/hardware/Sensor.html • http://developer.android.com/reference/android/hardware/SensorManager.html • Accelerometer examplehttp://www.anddev.org/accessing_the_accelerometer-t499.html

  25. 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

  26. Embedded Java and Code Efficiency • You are coding in an embedded environment! • Limited memory, disk space, battery length, and limited CPU power • http://developer.android.com/guide/practices/design/performance.html

  27. Development Resources • http://www.anddev.org/ • http://developer.android.com/

  28. References • http://developer.android.com/guide/index.html • Book: Beginning Android 2; Mark L. Murphy • http://www.anddev.org/ • Rahimian, V.; Ramsin, R.; , "Designing an agile methodology for mobile software development: A hybrid method engineering approach," Research Challenges in Information Science, 2008. RCIS 2008. Second International Conference on , vol., no., pp.337-342, 3-6 June 2008doi: 10.1109/RCIS.2008.4632123URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4632123&isnumber=4632084

More Related