• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Droidcon 2011: Working with the Android source, Ronan Schwarz, Openintents
 

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

on

  • 1,229 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,229
Views on SlideShare
1,198
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 :)