Scaling API-first – The story of a global engineering organization
Android
1. Android
- An Open Handset Alliance Project -
Miguel Luís
<mkxpto@gmail.com>
http://www.mluis.com
2. Android
- An Open Handset Alliance Project -
● Who's the Open Handset Alliance?
● What's Android?
● Installing the Android SDK
● Programming Example
● Testing Android
3. Android
- An Open Handset Alliance Project -
● Who's the Open Handset Alliance?
● What's Android?
● Installing the Android SDK
● Programming Example
● Testing Android
4. Android
- An Open Handset Alliance Project -
● Who's the Open Handset Alliance?
● What's Android?
● Installing the Android SDK
● Programming Example
● Testing Android
5. Android
- An Open Handset Alliance Project -
● Who's the Open Handset Alliance?
● What's Android?
● Installing the Android SDK
● Programming Example
● Testing Android
6. Android
- An Open Handset Alliance Project -
● Who's the Open Handset Alliance?
● What's Android?
● Installing the Android SDK
● Programming Example
● Testing Android
7. Android
- An Open Handset Alliance Project -
● Who's the Open Handset Alliance?
● What's Android?
● Installing the Android SDK
● Programming Example
● Testing Android
8. Android
- An Open Handset Alliance Project -
● Who's the Open Handset Alliance?
● Handset ● Software Companies ● Commercialization
● Mobile Operators ● Semiconductor
Manufacturers Companies
Companies
3
“What would it take to build
a better mobile phone?“
9. Android
- An Open Handset Alliance Project -
● http://www.openhandsetalliance.com/
10. Android
- An Open Handset Alliance Project -
● Build a better phone for consumers
● Innovating in the open
● Making the vision reality
● http://www.openhandsetalliance.com/
11. Android
- An Open Handset Alliance Project -
● Build a better phone for consumers
● Cellphone, the biggest success product.
● Innovating in the open
● Making the vision reality
● http://www.openhandsetalliance.com/
12. Android
- An Open Handset Alliance Project -
● Build a better phone for consumers
● Innovating in the open
● Openness favors Innovation
● Openness favors promptness to consumer's demands
● Making the vision reality
● http://www.openhandsetalliance.com/
13. Android
- An Open Handset Alliance Project -
● Build a better phone for consumers
● Innovating in the open
● Making the vision reality
● Commitment to commercially deploy handsets and
services using Android
● http://www.openhandsetalliance.com/
14. Android
- An Open Handset Alliance Project -
● What's Android?
● Software stack for
mobile devices
● Android Software
Development Kit
● Code: Java
“What would it take to build
a better mobile phone?“
15. Android
- An Open Handset Alliance Project -
● Application framework enabling reuse and replacement of components
● Dalvik virtual machine optimized for mobile devices
● Integrated browser based on the open source WebKit engine
● Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the
OpenGL ES 1.0 specification (hardware acceleration optional)
● SQLite for structured data storage
● Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC,
AMR, JPG, PNG, GIF)
● GSM Telephony (hardware dependent)
● Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
● Camera, GPS, compass, and accelerometer (hardware dependent)
● Rich development environment including a device emulator, tools for debugging, memory
and performance profiling, and a plugin for the Eclipse IDE
“What would it take to build
a better mobile phone?“
16. AndroidAn Open Handset Alliance Project
● Programming
Concerning issues when programming for embedded devices:
- hardware architecture
- tight memory and CPU
- small displays
- soft-keyboards
- stylus
Special attention:
- responsiveness
- performance
- *seamlessness
“What would it take to build
a better mobile phone?“
17. AndroidAn Open Handset Alliance Project
● Programming
Android Framework forces a disciplined behavior on
applications.
- Views to build (G)UIs'
- Content providers
- Resource Manager
- Notification Manager
- Activity Manager
“What would it take to build
a better mobile phone?“
18. AndroidAn Open Handset Alliance Project
● Application Components
Key aspects.
- Activities
- Intents
- Services
- Content Providers
“What would it take to build
a better mobile phone?“
19. Android
An Open Handset Alliance Project
● Activity: the core building block
of an application
package com.android.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, NEECT!");
setContentView(tv);
}
}
“What would it take to build
a better mobile phone?“
20. Android
An Open Handset Alliance Project
● Intents
- Messages for the system to bind application
components in the same or different application.
- An object holding abstract information
- Intent filters
Initiate a phone call:
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + “234001010”)));
http://developer.android.com/guide/topics/intents/intents-filters.html [+]
“What would it take to build
a better mobile phone?“
21. Android
An Open Handset Alliance Project
● Services
“What would it take to build
a better mobile phone?“
22. Android
An Open Handset Alliance Project
● New > Project > Android Project
File Name Purpose
YourActivity.java Your default launch activity
R.java Contains an ID for all asset constants
Android Library/ Folder containing all Android SDK's files
assets/ Multimedia and other miscelaneous required files
res/ Base directory for resourses used by the UI
res/drawable/ Directory for image files to be rendered by UI layout
res/layout Storage for all XMLstyle view layout files
res/values Location for strings and configuration files
AndroidManifest.xml File that describes your application to the operating system
“What would it take to build
a better mobile phone?“
23. Android
An Open Handset Alliance Project
● The AndroidManifest.xml
- Register Intents for the activities
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="sample.youractivity"
android:versionCode="1"
android:versionName="1.0.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".YourActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
“What would it take to build
a better mobile phone?“
24. Android
An Open Handset Alliance Project
OK Thanks Bye!
Miguel Luís
http://www.mluis.com
“What would it take to build
a better mobile phone?“