Google Android @ AlphaCSP's JavaEdge

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    5 Favorites & 1 Group

    Google Android @ AlphaCSP's JavaEdge - Presentation Transcript

    1. id ero old itd le M l Tn bi tle ner A o Ti ie le e Mub W av d og g Th S Na o in G ak re B 8 200 th 8 er 1 b ce m De
    2. Hello Android 2
    3. Target Audience • Mobile software developers • People shopping for a phone in 2009 3
    4. Agenda • Hello Android • Architecture Overview, Features and Components • Android Software Development • Live Demo 4
    5. Hello Android • Android is a platform for mobile computing • Android is Linux based • But development is in Java 5
    6. Hello Android • Why did Google make Android? • IPhone does not support Java • JavaME’s CLDC+MIDlets are getting old • Leaves lots of mobile developers in search of a platform • Profit – ads, market • Clean break from J2ME 6
    7. Hello Android::Timeline As published by Google 7
    8. Hello Android::Timeline As published by Google
    9. Hello Android::Timeline As published by Google • We’ll have a look at some of the winners later on
    10. Hello Android::Timeline As published by Google • Only free applications for now • Eventually, Google will take a 30% cut
    11. Hello Android::Timeline As published by Google
    12. Hello Android::Timeline As published by Google
    13. Hello Android::Timeline As published by Google
    14. Hello Android::Devices • HTC G1, Lenovo OPhone (expected), Kogan Agora 14
    15. Hello Android::ADC • The Android Developer Challenge • 10,000,000$ in prizes 15
    16. Hello Android::ADC • ADC I concluded: • 5M$ in prizes • Over 1,700 submissions • Announcement regarding ADC II is expected soon 16
    17. Hello Android::ADC Winners & Market • Wikitude (Philipp Breuce) • Wikipedia overlaid on camera view 17
    18. Hello Android::ADC Winners & Market • BreadCrumbz (Amos Yoffe) • Navigate using maps and pictures (like Myst) 18
    19. Hello Android::ADC Winners & Market • Amazon MP3 for Android • Preinstalled on HTC G1 phones 19
    20. Hello Android::ADC Winners & Market • Compare Everywhere (Jeffrey Sharkey) • Capture barcodes, search for better deals nearby 20
    21. Agenda • Hello Android • Architecture Overview, Features and Components • Android Software Development • Live Demo 21
    22. Architecture Overview Applications •Implement and leverage framework concepts •Use framework components and services Android Application Framework Package Content Views Activities Services Management Providers Native Libraries Android Runtime Apache Harmony Dalvik VM Graphics Media WebKit SQLite Libraries Framework Browser Database Linux Kernel Inter Process Power Device Comms. Security Management Drivers 22
    23. Architecture Overview • Let’s examine some of these boxes, beginning with Linux: Linux Kernel
    24. Architecture Overview • From Linux Android gains: • A stable common base for Dalvik applications • Fine grained power management • Unique user per bundle – sandboxing • Much more… 24
    25. • Native libraries provide functionality Native Libraries Linux Kernel
    26. Architecture Overview • WebKit • Same browser engine used in IPhone, Google Chrome, Safari • Strong performer • Memory efficient • Good standards support 26
    27. Architecture Overview • Location Services & Mapping • Google Maps • Street view • GPS • Trigger proximity alerts
    28. Architecture Overview • Graphics • SGL – 2D scalable graphics • OpenGL ES • Surface Manager composes surfaces together 28
    29. Architecture Overview • Media Framework • Player and codecs • SQLite • Lightweight RDBMS also on IPhone • ... and Telephony too! 29
    30. Architecture Overview:: Android Runtime Moving on to the “Java” runtime environment: Native Libraries Android Runtime Linux Kernel 30
    31. Architecture Overview:: Dalvik Virtual Machine • Java has a stack based VM • Dalvik is a register based VM • Better interpreter performance • No JIT • Bottom line: • Lower throughput • Better startup & responsiveness 31
    32. Architecture Overview:: Dalvik Virtual Machine • You still get to develop in Java • What, no JVM!? • Excellent learning curve 32
    33. Architecture Overview::Zygote • Quick Dalvik process startup is essential for good responsiveness • During boot, Android creates a fully bootstrapped Dalvik process • Sends it to sleep • Forks it on demand • Forks are copy-on-write • Near instantaneous startup! 33
    34. Architecture Overview Applications •Implement and leverage framework concepts •Use framework components and services Android Application Framework Package Content Views Activities Services Management Providers Native Libraries Android Runtime Apache Harmony Dalvik VM Graphics Media WebKit SQLite Libraries Framework Browser Database Linux Kernel Inter Process Power Device Comms. Security Management Drivers 34
    35. Agenda • Hello Android • Architecture Overview, Features and Components • Android Software Development • Live Demo 35
    36. Android Application Framework • Building Blocks • Application Model • UI Perspective 36
    37. Building Blocks • Four building blocks • Activities and Intents • Broadcast Receivers • Services • Content Providers 37
    38. Activities and Intents Activities Android documentation states: • “An activity is a single, focused thing that the user can do.” 38
    39. Activities and Intents • This how an activity will look like: 39
    40. Activities and Intents • Well, actually: “An activity is usually a single screen in your application.” 40
    41. Activities and Intents • Activities communicate with each other using Intents new Intent( ? ! Intent.ACTION_VIEW, Intent.ACTION_DIAL, Intent.ACTION_PICK, new Uri(\"content://contacts\")) Uri(“geo:38.8995,- Uri(“tel:555-1234\")) 77.0364\")) • The Intent is resolved to another Activity, by matching it against an Intent Filter. 41
    42. Activities and Intents • Intents convey • Data This is how Intent Filters match Intents that are valid • Action for the Activity • • and Categories 42
    43. Activities and Intents • Activities are managed on a stack • Once you go back they pop! 43
    44. Activities and Intents • Activities have a life cycle New Stopped Paused Running... Activity Activity Activity Processes with non- running Activities may be killed to free resources 44
    45. Broadcast Receivers • Listens for Intents • Incoming call • Network availability changes • Alarms • Application doesn't have to be running once a Receiver is registered • Does not display UI • May use notifications 45
    46. Services • Services perform long running actions • i.e. Play music, factor primary numbers • Services are defined via AIDL • Yet another “Interface Definition Language” • Service lifecycle: manual or automatic • Can be run either in-process or in another process 46
    47. Content Providers • Android likes to expose content in a RESTful manner • All content items have a unique URI • Goes really well with Activity history • Content Providers are used for CRUD operations over arbitrary content repositories 47
    48. Content Providers • The interface has a strong relational feel • Hard to adapt to POJO backends like DB4O and Perst • Despite looking relational, the interface encourages static joins • Data returned should have a uniform shape 48
    49. Application Model • Android Package (.apk) • Compiled code & resources • Manifest • Must be signed (like jar) • Task • “perceived” application • May span activities across several packages and processes 49
    50. UI Perspective • Views • From very simple: • EditText, CheckBox, Button, Radio • To more specialized: • DatePicker, AutoComplete • ViewGroups (layout) • Relative, Table, Linear, … • Web, Video, Map, Gallery... 50
    51. UI Perspective • Sometimes the border between Views and Activities isn't clear • MapView • MapActivity • Choose MapActivity for a mashup • Choose MapView for your own Activity 51
    52. Android Software Development • Let's have a look at a “hello world” sample provided by the SDK: • Activity source file • Layout file • Android Manifest 52
    53. Android Software Development package com.example.android.helloactivity; //... /** * A minimal \"Hello, World!\" application. */ public class HelloActivity extends Activity { /** * Called with the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set the layout for this activity. You can find it // in res/layout/hello_activity.xml setContentView(R.layout.hello_activity); } } 53
    54. Android Software Development <EditText xmlns:android=\"http://schemas.android.com/apk/res/android\" android:id=\"@+id/text\" android:layout_width=\"fill_parent\" android:layout_height=\"fill_parent\" android:textSize=\"18sp\" android:autoText=\"true\" android:capitalize=\"sentences\" android:text=\"hello, world!\" /> 54
    55. Android Software Development <manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"com.example.android.helloactivity\"> <application android:label=\"Hello, Activity!\"> <activity android:name=\"HelloActivity\"> <intent-filter> <action android:name=\"android.intent.action.MAIN\"/> <category android:name=\"android.intent.category.LAUNCHER\"/> </intent-filter> </activity> </application> </manifest> 55
    56. Android Software Development • After build and deployment to the emulator: 56
    57. UI Perspective • Android UI lends itself to a clear flow between simple screens 57
    58. UI Perspective • Rich clients, on the other hand… … Don’t translate that well. 58
    59. Porting Scenarios • Opera • Opera Mini uses • Jetty has been ported • local web applications • Apache Felix has been ported • OSGi bundles • Alef Arendsen’s session covers OSGi in Spring 59
    60. Tool Support • Android SDK and Eclipse plugin: http://code.google.com/android/ • IntelliJ IDEA plugin is available here: http://code.google.com/p/idea-android/ • SDK can create IDEA project files • NetBeans plugin available here: http://kenai.com/projects/nbandroid/ • DroidDraw is an Android UI builder: http://www.droiddraw.org/ 60
    61. References • Android homepage: http://code.google.com/android/index.html • Open Handset Alliance: http://www.openhandsetalliance.com/ • Android Market: http://www.android.com/market/ • Android documentation: http://code.google.com/android/documentation.html • Android open source project: http://source.android.com/ 61
    62. Demo Apps for Android: http://code.google.com/p/apps-for-android 62

    + yuvalbyuvalb, 11 months ago

    custom

    2092 views, 5 favs, 2 embeds more stats

    Google Android, An hybrid software stack for mobile more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 2092
      • 2082 on SlideShare
      • 10 from embeds
    • Comments 0
    • Favorites 5
    • Downloads 208
    Most viewed embeds
    • 8 views on http://froom.tistory.com
    • 2 views on http://static.slideshare.net

    more

    All embeds
    • 8 views on http://froom.tistory.com
    • 2 views on http://static.slideshare.net

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events