Droidcon 2011: Working with the Android source, Ronan Schwarz, Openintents
Upcoming SlideShare
Loading in...5
×
 

Droidcon 2011: Working with the Android source, Ronan Schwarz, Openintents

on

  • 1,253 views

Ronan Schwarz, OpenIntents...

Ronan Schwarz, OpenIntents

In this talk, we will once again walk through the Android Application fundamentals
- but this time from the Framework's point of View.
- You will learn why there is, in fact, no app - only a bunch of Activities.
- What a HistoryRecord is, what it is used for and it's implications for the lifecycle.
- Why ContentProviders are a type of service.
- How the Framework enforces Permissions across the system and what to make of it.
- Why Intents are even way better for RPC calls then is seen at first sight.
We will cover a lot of little tricks and some bigger parts of the Android framework and
it's implementation, giving you new insights for everyday development

Statistics

Views

Total Views
1,253
Slideshare-icon Views on SlideShare
1,222
Embed Views
31

Actions

Likes
0
Downloads
16
Comments
0

2 Embeds 31

http://de.droidcon.com 29
http://www.verious.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Droidcon 2011: Working with the Android source, Ronan Schwarz, Openintents Droidcon 2011: Working with the Android source, Ronan Schwarz, Openintents Presentation Transcript

    • OpenIntents www.OpenIntents.org ANDROID FUNDAMENTALS REVISITED@_zerozero@openintents.biz
    • OpenIntents OpenIntents www.OpenIntents.org● Founded in 2009● Open Source based Company● Two times winners of Google Android Developer Challenge● Over 15 Apps in the Market (Free + Paid )● Services: ● Reusable components ● Intents Registry ● Developer Support ● Consulting ● App Development● Mentoring organization in Summer of Code 2011
    • OpenIntentswww.OpenIntents.org Topics ● Activity Lifecycle ● Activity Manager ● Concepts ● Components ● Why there is no App ● Permissions ● Gingerbread
    • OpenIntentswww.OpenIntents.org Who youre gonna call ?
    • OpenIntentswww.OpenIntents.org Activities ActivityManagerService
    • OpenIntentswww.OpenIntents.org ActivityManagerService● Project: frameworks/base.git● Package: com.android.server.am● Pure Java● Started by SystemServer, running as system process● Creates the System Context● Keeps a reference of the Home Screen / Launcher App
    • OpenIntents www.OpenIntents.org What does ActivityManagerService do ?● Start, stop, pause,... Activities● Start, stop, pause,... Services● Start, stop, pause,... ContentProviders● Check Permission● Broadcast Intents● Start, stop, pause,... Animations● Decide window focus● Deliver Hardware Events● Crash Activities
    • OpenIntentswww.OpenIntents.org What does ActivityManagerService do ? EVERYTHING
    • OpenIntentswww.OpenIntents.org What does ActivityManagerService do ? EVERYTHING the window manager doesnt
    • OpenIntentswww.OpenIntents.org What does ActivityManagerService do ? EVERYTHING the window manager doesnt (ok, almost)
    • OpenIntents www.OpenIntents.org Starting an Activity● startActivity is called (calls startActivity(Intent, -1)● ActivityManagerNative.startActivity(..)● Call gets dispatched via AIDL Binder to ActivityManagerService● Call is queued in a Handler Message Queue● startActivityXX is called● startActivityLocked is called
    • OpenIntents www.OpenIntents.org Starting an Activity● Class is resolved● Permission check● Inform Watchers● Create HistoryRecord● Check launch Flags● Create Task or add to existing● Grant Permissions
    • OpenIntents www.OpenIntents.org Starting an Activity● Add to History Stack● Prepare Animations● Add to WindowManager (creates window)● Pause currently running Activities● Switch Visibility● Calculate & update Configuration (may trigger reset)● Resume (make call across Binder into Activity Thread)● Set Focus● Ensure visibility
    • OpenIntentswww.OpenIntents.org Application ?
    • OpenIntentswww.OpenIntents.org HistoryRecord
    • OpenIntentswww.OpenIntents.org Application ?
    • OpenIntentswww.OpenIntents.org Permissions
    • OpenIntentswww.OpenIntents.org Permissions
    • OpenIntentswww.OpenIntents.org Permissions
    • OpenIntentswww.OpenIntents.org Changes in Gingerbread● HistoryRecord renamed to ActivityRecord● Introduction of Heavyweight Process ● Only one at any given time● Parts of lifecycle management moved to ActivityStack● Hardware Event / Key input was re-written● WindowManager now has an extra “secure” layer● ...● Beautified comments :)