0% found this document useful (0 votes)
90 views45 pages

What Is That Robot Up To?: Justin Grammens Recursive Awesome

This document discusses Android, an open source software platform and operating system for mobile devices. It provides definitions and background on Android, describes its key components like activities, intents, services and content providers. It also discusses developing apps for Android using Eclipse or other IDEs, distributing apps through the Android Market, and resources for learning more about Android development.

Uploaded by

sajithm
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
90 views45 pages

What Is That Robot Up To?: Justin Grammens Recursive Awesome

This document discusses Android, an open source software platform and operating system for mobile devices. It provides definitions and background on Android, describes its key components like activities, intents, services and content providers. It also discusses developing apps for Android using Eclipse or other IDEs, distributing apps through the Android Market, and resources for learning more about Android development.

Uploaded by

sajithm
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

What is that robot up to?

Justin Grammens Recursive Awesome http://recursiveawesome.com

About Me
Name: Justin Grammens Owner Localtone Interactive Co-Founder Recursive Awesome Focus on web & mobile software development Android, Blackberry, iPhone, Palm Background in Java & Ruby/Rails/Grails Spoken at many local meetings on Android Started Mobile Twin Cities User's Group http://mobiletwincities.com

!=
Android is NOT the G1!

!=
Android is NOT the Droid!

Summary
What Is Android Who Is Android Building Blocks Android Market Deploy MobileTC App To Market

What is Android?
Definition: Android is a software platform and operating system for mobile devices, based on the Linux kernel, developed by Google and later the Open Handset Alliance. Source: Wikipedia Would argue that it's not just for mobile devices. Has the potential to be used in all sorts of other areas where memory, cpu and disk is limited.

Yawn, We've Seen This

Devices!

Dell Mini 3

Devices!

Acer Liquid

Devices!

Sony Xperia X10

Devices!

HTC - Tattoo

Devices!

Motorola Cliq

Devices!

HTC Magic

Devices!

Samsung i7500

Devices!

LG GW620

Devices!

Samsung Behold 2

Devices!

HTC Droid Eris - Droid is more than 1 phone

Devices!

Motorola Droid Skins - http://teavuihuang.com/android/

Who Is Android
A Project of the Open Handset Alliance (OHA) - More than 30 technology companies

Source: Presentation by Sean Sullivan - http://mobileportland.com/content/introduction-google-android

Nuts and Bolts


Built on the Linux kernel Uses the Dalvik virtual machine Register Based VM written by Dan Bornstein Very low memory footprint Core and 3rd party applications have equal access Multiple applications able to run at the same time Background services 100% fully customizable - from startup to shutdown Touch (or physical keyboard) interface

What's the big deal?


Truly open and FREE development platform No "pay to play" developer agreement Freely available tools (Eclipse) and no restrictions on OS you need to be on to develop No "blessing" required from a company (i.e. Apple) Component based architecture that can be extended Built in services out of the box Location based Multimedia - supports open audio formats - OGG! SQLite Database Automatic management of application lifecycle Portability across current and future hardware Supports and plans for input from either trackball, keyboard or touch

Exponential Sales
First advertised based Android Phone HTC Dream (G1) Takes roughly 6 months to reach 1MM sales. Second advertised phone HTC Magic (myTouch) Takes roughly 3 months to reach 1 MM sales. Third advertised Android Phone ( Motorola Droid ) 250,000 units first week Android adoption is about to explode, declared CEO Eric Schmidt, explaining that all the necessary conditions are set for growth.
source: Techcrunch

Exponential Growth
Gartner:

Android to grab No. 2 spot by 2012 (Symbian will remain#1, iPhone will remain #3, Windows Mobile will remain #4 and Blackberry willdrop to #5) Multiple device ( including in this building ) manufactures looking to use Android. Don't believe everything you read Not about being an "iPhone killer"

Building Blocks
Basic foundation of an Android application Activity Intent Service Content Provider Your applications will not use all of these, but they will use atleast one.

Building Blocks
Activity Describes a single screen of the application Implemented as a class that extends Activity Activities are pushed on the history stack using an Intent Uses callbacks to trigger events during state changes. public class LocaltoneAndroid extends ListActivity { @Override public void onCreate(Bundle init) { } }

Activity Life Cycle

source: http://developer.android.com/reference/android/app/Activity.html

Building Blocks
Intent An Intent describes what you would like to have done. Create new screen using activity and intents Intent i = new Intent(this, MyNewActivity.class); startActivity(i); or open a web page new Intent(android.content.Intent.VIEW_ACTION, ContentURI.create("http://localtone.com"));

Building Blocks
Service
Code that is long running Runs without a UI Media Player is an good example Activity used to choose song Playback handled in a service public class MyService extends Service { public void onCreate() { } }

Building Blocks
Content Provider
Set of data wrapped in a custom API Allow sharing of data between applications Processes register themselves as a Content Provider. Anyone can share data. Google shares contacts, address, phone, etc. can be accessed by applications.
private String[] cols={android.provider.Contacts.PeopleColumns.NAME}; private Cursor cur = managedQuery(android.provider.Contacts.People.CONTENT_URI, cols, null, null);
http://developer.android.com/reference/android/provider/package-summary.html

Face of Android
Various types of Layouts - Similar to Swing Linear Layout Arranges children in a single row/column. The most common type of layout you'll use. FrameLayout Arranges children so they start at the top left. Used mainly for tabbed views. Relative Layout Arranged in relation to eachother ( element X is above/below element Y for example ). TableLayout Arranged in a cells, like HTML table.

Face of Android
About.xml <LinearLayout xmlns:android="http://schemas.android. com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@android:id/hello" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>

Face of Android
Declarative - In XML Task: Define text in an "About" screen File: res/layout/about.xml <TextView android:id="@+id/about_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/about_text" /> File: About.java protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.about); }

Face of Android
Procedural - In Code Create a TextView object, set the text and behavior TextView pressMe = new TextView(context); pressMe.setText("Press Me"); addView(mDialogue, new LinearLayout.LayoutParams( FILL_PARENT, WRAP_CONTENT));

Face of Android
Android Manifest.xml What is any good Java program without a manifest file? =) Defines the version and package information Defines the permissions required by the application <uses-permission permission.INTERNET" /> android:name="android.

Class name <activity android:name=".Result" of the Activity android:label="@string/result" android:layout_width="fill_parent"> </activity>

Mobile Twin Cities

Website Latest Tweets @mobiletc Discussion List No splash screen Will add in coding session

Mobile Twin Cities

Developing Apps For Android


Develop using Windows, Linux or Mac. Free to develop and deploy to your device. Send anyone your .APK file and they can run it. Recommend using to Eclipse IDE and Android Plugin. Download IDE and from IDE - http://eclipse.org Install Android plugin through the Eclipse Plug-in Manager SDK http://code.google.com/android/intro/installing.html No restriction on distribution. Free to charge what you wish

Pimping Android For Profit


Listing apps in the Android Market Must be digitally signed Your Manifext.xml tells the story: <manifest xmlns:android="http://schemas.android. com/apk/res/android" package="com.example.package.name" android:versionCode="2" android:versionName="1.1" android:minSdkVersion = "3"> Version code - The version relative to other versions Version name - The version that people will see MinSDKVersoin - Requirement of end user's version

Pimping Android For Profit


NOTE: You can distribute your .apk file and charge any way you wish! However, if you wish to use the Market URL: http://www.android.com/market Signup on the market http://market.android.com/publish/signup Pay $25 registration fee. Uses Google Checkout for payment processing. 70% for you, 30% for the carrier (T-Mobile) Google offers an unlocked Google/Ion for $399. T-Mobile adding app purchase to your bill.

Pimping Android For Profit

Pimping Android For Profit

Final Thoughts
It's not just phones or mobile devices!

Archos - MID

Nook - EBook Reader

Deploy Application To Market

Lets Do It!

Resources
Books Mark Murphy - http://commonsware.com/Android/ Hello, Android by Pragmatic Programmers Sites AndDev.org - Good online forum Google Samples - http://is.gd/knVZ IRC #Android-Dev Google Groups Android Developers http://is.gd/knWK Local Groups! Android Dev MN - http://is.gd/knVO Mobile Twin Cities - http://mobiletwincities.com

Add a splash page in our Adhoc coding session!


Justin Grammens Recursive Awesome http://recursiveawesome.com

You might also like