Android	
  
Overview	
  For	
  
 Managers	
  

 Marko	
  Gargenta	
  
   Marakana	
  
ANDROID	
  HISTORY	
  
History	
  
2005	
     Google	
  buys	
  Android,	
  Inc.	
  
           Work	
  on	
  Dalvik	
  starts	
  


2007	
     O...
Android	
  and	
  Java	
  
Java EE
                             Java Source
   Java SE                      Code

        ...
Android	
  Versus	
  Java	
  ME	
  
Just one type of device – no CDC/CLDC

Easier to understand – no MIDlets, Xlets, AWT

...
ANDROID	
  STACK	
  
The	
  Stack	
  
Linux	
  Kernel	
  
Android runs on Linux.                                        Applications


                         ...
NaSve	
  Libraries	
  
Native C libraries provide many of                              Applications


key Android services...
Dalvik	
  
Dalvik VM is Google’s implementation of Java

Optimized for mobile devices




Key Dalvik differences:

    Reg...
ApplicaSon	
  Framework	
  
Activation manager controls the life                              Applications


cycle of the ...
ApplicaSons	
  
Android	
  SDK	
  -­‐	
  What’s	
  in	
  the	
  box
                                                     	
  
SDK

Tools
D...
HELLO	
  WORLD!	
  
Create	
  New	
  Project
                                         	
  
Use the Eclipse tool to create a new
Android projec...
The	
  Manifest	
  File	
  
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk...
The	
  Layout	
  Resource	
  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android....
The	
  Java	
  File	
  
package com.marakana;

import android.app.Activity;
import android.os.Bundle;

public class HelloA...
Running	
  on	
  Emulator
                        	
  
MAIN	
  BUILDING	
  BLOCKS	
  
AcSviSes
                       	
  
Activity is to an    Android Application

application what a       Main Activity
    ...
AcSvity	
  Lifecycle	
  
                                                         Starting




Activities have a well-
   ...
Intents
                           	
  
Intents are to      Android Application
Android apps                              ...
Services
                           	
  
A service is something that can be started and
stopped. It doesn’t have UI. It is...
Service	
  Lifecycle	
  
Service also has a                                       Starting

lifecycle, but it’s           ...
Content	
  Providers
                               	
  
Content Providers share                    Content
content with a...
ANDROID	
  USER	
  INTERFACE	
  
Two	
  UI	
  Approaches	
  
Procedural	
                              Declara@ve	
  
You	
  write	
  Java	
  code	
       ...
XML-­‐Based	
  User	
  Interface	
  




Use WYSIWYG tools to build powerful XML-based UI.
Easily customize it from Java. ...
Dips	
  and	
  Sps	
  

px	
  (pixel)	
                                 Dots	
  on	
  the	
  screen	
  
in	
  (inches)	
  ...
Views	
  and	
  Layouts
                          	
  

                    ViewGroup




        ViewGroup               ...
Common	
  UI	
  Components
                                	
  
Android UI includes many
common modern UI
widgets, such as...
SelecSon	
  Components
                              	
  

Some UI widgets may
be linked to zillions of
pieces of data.
Ex...
Adapters
                         	
  


                      Adapter       Data
                                   Sourc...
Complex	
  Components
                            	
  
Certain high-level components are simply
available just like Views....
Building	
  UI	
  for	
  Performance	
  




A handy Hierarchy Viewer tool helps with optimizing the UI for performance
Menus	
  and	
  Dialogs
                      	
  
Graphics	
  &	
  AnimaSon	
  
Android has rich support for 2D graphics.
You can draw & animate from XML.
You can use OpenG...
OPERATING	
  SYSTEM	
  FEATURES	
  	
  
File	
  System	
  
The file system has three main mount points. One
for system, one for the apps, and one for whatever.

E...
Preferences
                                   	
  

Your app can support complex
preferences quite easily.

You define yo...
NoSficaSons
                                    	
  


Notifications are useful for
applications to notify user of things
g...
Security	
  
Each Android application            Android Application
runs inside its own Linux
process.                   ...
SQLite	
  Database	
  
Android ships with SQLite3

SQLite is

Zero configuration
Serverless
Single database file
Cross-Pla...
MulSmedia	
  
AudioPlayer lets you simply specify
the audio resource and play it.

VideoView is a View that you can
drop a...
Sensors
                                    	
  
Android supports many built-in
sensors. You simply register with
Sensor M...
Google	
  Maps
                                      	
  
Google Maps is an add-on in Android.
It is not part of open-sour...
WORKING	
  WITH	
  HARDWARE	
  
Camera	
  
Android SDK supports access to
built-in Camera and its preview.

You can access real-time frames,
or get a call...
WiFi
                                      	
  
WiFi API allows for managing your
connection, scanning for active WiFi
poi...
Telephony
                                     	
  
With Telephony API, you can:

Make phone calls
Monitor phone state and...
Summary	
  
     Android is open
     Android is simple
     Android is complete
     Android has apps
     Android uses J...
Upcoming SlideShare
Loading in …5
×

Android For Managers Slides

5,092 views
4,921 views

Published on

Marko's presentation on Android for Managers

Android For Managers Slides

  1. 1. Android   Overview  For   Managers   Marko  Gargenta   Marakana  
  2. 2. ANDROID  HISTORY  
  3. 3. History   2005   Google  buys  Android,  Inc.   Work  on  Dalvik  starts   2007   OHA  Announced   Early  SDK   2008   G1  Announced   SDK  1.0  Released   2009   G2  Released   Cupcake,  Donut,  Eclair  
  4. 4. Android  and  Java   Java EE Java Source Java SE Code Java Java ME Compiler CDC Java ME Java Byte CLDC Code Dex Compiler Dalvik Byte Code
  5. 5. Android  Versus  Java  ME   Just one type of device – no CDC/CLDC Easier to understand – no MIDlets, Xlets, AWT Responsive – Dalvik vs. one–size-fits-all JVM Java (in)compatibility Adoption
  6. 6. ANDROID  STACK  
  7. 7. The  Stack  
  8. 8. Linux  Kernel   Android runs on Linux. Applications Home Contacts Phone Browser Other Linux provides as well as: Hardware abstraction layer Application Framework Memory management Activity Window Content View Process management Manager Manager Providers System Package Telephony Resource Location Notiication Networking Manager Manager Manager Manager Manager Libraries Users never see Linux sub system Surface Media SQLite Android Runtime Manager Framework Core Libs The adb shell command opens OpenGL FreeType WebKit Delvik Linux shell SGL SSL libc VM Display Camera Linux Kernel Flash Binder Driver Driver Driver Driver Keypad WiFi Audio Power Driver Driver Driver Mgmt
  9. 9. NaSve  Libraries   Native C libraries provide many of Applications key Android services, such as: Home Contacts Phone Browser Other Surface Manager, for composing Application Framework window manager with off-screen Activity Window Content View buffering Manager Manager Providers System Package Telephony Resource Location Notiication Manager Manager Manager Manager Manager 2D and 3D graphics hardware Libraries support or software simulation Surface Media SQLite Android Runtime Manager Framework Core Libs Media codecs offer support for OpenGL FreeType WebKit Delvik major audio/video codecs SGL SSL libc VM SQLite database Display Camera Linux Kernel Flash Binder Driver Driver Driver Driver Keypad WiFi Audio Power WebKit library for fast HTML Driver Driver Driver Mgmt rendering
  10. 10. Dalvik   Dalvik VM is Google’s implementation of Java Optimized for mobile devices Key Dalvik differences: Register-based versus stack-based VM Dalvik runs .dex files More efficient and compact implementation Different set of Java libraries than SDK
  11. 11. ApplicaSon  Framework   Activation manager controls the life Applications cycle of the app Home Contacts Phone Browser Other Content providers encapsulate data Application Framework that is shared (e.g. contacts) Activity Window Content View Manager Manager Providers System Package Telephony Resource Location Notiication Resource manager manages Manager Manager Manager Manager Manager everything that is not the code Libraries Surface Media SQLite Android Runtime Manager Framework Location manager figures out the Core Libs location of the phone (GPS, GSM, OpenGL FreeType WebKit Delvik WiFi) SGL SSL libc VM Notification manager for events Display Driver Camera Driver Linux Kernel Flash Driver Binder Driver such as arriving messages, Keypad WiFi Audio Driver Power Mgmt Driver Driver appointments, etc
  12. 12. ApplicaSons  
  13. 13. Android  SDK  -­‐  What’s  in  the  box   SDK Tools Docs Platforms Data Skins Images Samples Add-ons Google Maps
  14. 14. HELLO  WORLD!  
  15. 15. Create  New  Project   Use the Eclipse tool to create a new Android project. Here are some key constructs: Project   Eclipse  construct   Target   minimum  to  run   App  name   whatever   Package   Java  package   AcSvity   Java  class  
  16. 16. The  Manifest  File   <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.marakana" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloAndroid" 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> <uses-sdk android:minSdkVersion="5" /> </manifest>
  17. 17. The  Layout  Resource   <?xml version="1.0" encoding="utf-8"?> <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:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
  18. 18. The  Java  File   package com.marakana; import android.app.Activity; import android.os.Bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
  19. 19. Running  on  Emulator  
  20. 20. MAIN  BUILDING  BLOCKS  
  21. 21. AcSviSes   Activity is to an Android Application application what a Main Activity Another Another Activity Activity web page is to a website. Sort of.
  22. 22. AcSvity  Lifecycle   Starting Activities have a well- (1) onCreate() (2) onStart() (3) onRestoreInstanceState() defined lifecycle. The (4) onResume() Android OS manages your activity by Running changing its state. (3) onResume() (2) onStart() (1) onSaveInstanceState() (2) onPause() You fill in the blanks. (1) onRestart() onResume() (1) onSaveInstanceState() Stopped (2) onStop() Paused onDestroy() or <process killed> <process killed> Destroyed
  23. 23. Intents   Intents are to Android Application Android apps Another Main Activity Intent what hyperlinks Activity are to websites. They can be Intent implicit and Android Application explicit. Sort of like absolute and Main Activity Intent Another Activity relative links.
  24. 24. Services   A service is something that can be started and stopped. It doesn’t have UI. It is typically managed by an activity. Music player, for example
  25. 25. Service  Lifecycle   Service also has a Starting lifecycle, but it’s (1) onCreate() much simpler than (2) onStart() activity’s. An activity onStart() typically starts and stops a service to do Stopped Running some work for it in the background. onStop() Such as play music, check for new onDestroy() or tweets, etc. <process killed> Destroyed
  26. 26. Content  Providers   Content Providers share Content content with applications Provider across application Content URI boundaries. insert() Examples of built-in update() Content Providers are: delete() Contacts, MediaStore, query() Settings and more.
  27. 27. ANDROID  USER  INTERFACE  
  28. 28. Two  UI  Approaches   Procedural   Declara@ve   You  write  Java  code   You  write  XML  code   Similar  to  Swing  or  AWT   Similar  to  HTML  of  a  web  page   You can mix and match both styles. Declarative is preferred: easier and more tools
  29. 29. XML-­‐Based  User  Interface   Use WYSIWYG tools to build powerful XML-based UI. Easily customize it from Java. Separate concerns.
  30. 30. Dips  and  Sps   px  (pixel)   Dots  on  the  screen   in  (inches)   Size  as  measured  by  a  ruler   mm  (millimeters)   Size  as  measured  by  a  ruler   pt  (points)   1/72  of  an  inch   dp  (density-­‐independent  pixel)   Abstract  unit.  On  screen  with  160dpi,   1dp=1px   dip   synonym  for  dp  and  oden  used  by  Google   sp   Similar  to  dp  but  also  scaled  by  users  font   size  preference  
  31. 31. Views  and  Layouts   ViewGroup ViewGroup View View View View ViewGroups contain other Views but are also Views themselves.
  32. 32. Common  UI  Components   Android UI includes many common modern UI widgets, such as Buttons, Tabs, Progress Bars, Date and Time Pickers, etc.
  33. 33. SelecSon  Components   Some UI widgets may be linked to zillions of pieces of data. Examples are ListView and Spinners (pull-downs).
  34. 34. Adapters   Adapter Data Source To make sure they run smoothly, Android uses Adapters to connect them to their data sources. A typical data source is an Array or a Database.
  35. 35. Complex  Components   Certain high-level components are simply available just like Views. Adding a Map or a Video to your application is almost like adding a Button or a piece of text.
  36. 36. Building  UI  for  Performance   A handy Hierarchy Viewer tool helps with optimizing the UI for performance
  37. 37. Menus  and  Dialogs  
  38. 38. Graphics  &  AnimaSon   Android has rich support for 2D graphics. You can draw & animate from XML. You can use OpenGL for 3D graphics.
  39. 39. OPERATING  SYSTEM  FEATURES    
  40. 40. File  System   The file system has three main mount points. One for system, one for the apps, and one for whatever. Each app has its own sandbox easily accessible to it. No one else can access its data. The sandbox is in /data/data/com.marakana/ SDCard is expected to always be there. It’s a good place for large files, such as movies and music. Everyone can access it.
  41. 41. Preferences   Your app can support complex preferences quite easily. You define your preferences in an XML file and the corresponding UI and data storage is done for free.
  42. 42. NoSficaSons   Notifications are useful for applications to notify user of things going on in the background. Notifications are implemented via Notification Manager.
  43. 43. Security   Each Android application Android Application runs inside its own Linux process. Linux Process Additionally, each application has its own sandbox file File system with its own set of Prefs DB System preferences and its own database. Other applications cannot access any of its data, unless it is explicitly shared.
  44. 44. SQLite  Database   Android ships with SQLite3 SQLite is Zero configuration Serverless Single database file Cross-Platform Compact Public Domain Database engine. May you do good and not evil May you find forgiveness for yourself and forgive others May you share freely, never taking more than you give.
  45. 45. MulSmedia   AudioPlayer lets you simply specify the audio resource and play it. VideoView is a View that you can drop anywhere in your activity, point to a video file and play it. XML: <VideoView android:id="@+id/video" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center” /> Java: player = (VideoView) findViewById(R.id.video); player.setVideoPath("/sdcard/samplevideo.3gp"); player.start();
  46. 46. Sensors   Android supports many built-in sensors. You simply register with Sensor Manager to get notifications when sensor data changes. Sensors are erratic and data comes in uneven intervals. Emulator doesn’t have good support for sensors.
  47. 47. Google  Maps   Google Maps is an add-on in Android. It is not part of open-source project. However, adding Maps is relatively easy using MapView. XML: <com.google.android.maps.MapView android:id="@+id/map" android:clickable="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="0EfLSgdSCWIN…A" />
  48. 48. WORKING  WITH  HARDWARE  
  49. 49. Camera   Android SDK supports access to built-in Camera and its preview. You can access real-time frames, or get a callback when shutter is open. The photo data is passed back in either raw or jpeg format.
  50. 50. WiFi   WiFi API allows for managing your connection, scanning for active WiFi points and find out details about each.
  51. 51. Telephony   With Telephony API, you can: Make phone calls Monitor phone state and activity Access phone properties and status Monitor data connectivity Control the phone It is a simple yet powerful API
  52. 52. Summary   Android is open Android is simple Android is complete Android has apps Android uses Java Geeks love Android OEMs love Android Operators like Android Android UI is not as sexy Android doesn’t have as many apps Android doesn’t have THE phone Yet.

×