Mobile Twin Cities
Android Tutorial on Activities/Services
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 2
Intertech
Instructo...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 3
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 4
My Agenda
• Some An...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 5
Some Android Basics...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 6
• Android applicati...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 7
Activities
• Activi...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 8
Building an Activit...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 9
Setting the Content...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 10
Android View/ViewG...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 11
Loose Android – AW...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 12
Setting Content Pr...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 13
Setting Content vi...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 14
Register the Activ...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 15
Active Activity
• ...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 16
Activity Lifecycle...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 17
Screen Orientation...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 18
Services
• Service...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 19
Creating a Service...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 20
Register the Servi...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 21
Comic half time
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 22
Intents
• Intents ...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 23
Intents == Message...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 24
To: Duane
From: Be...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 25
To: All staff
From...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 26
Types of Intents
•...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 27
Start by Intent - ...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 28
Start by Intent - ...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 29
Android Intents (B...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 30
Intent Filters
• Y...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 31
And now a Demo
Cou...
An Intertech, Inc. Presentation
Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 32
Associated Courses...
Questions
And some answers??
Thanks for having me!
• Intertech Blog site
• www.intertech.comblog
Upcoming SlideShare
Loading in...5
×

Android Tutorial Activities and Services

521

Published on

Some Android Basics
Android Activity Basics
Android’s chief UI component
Android Service Basics
Android’s chief background service component
Android Intent Basics
Android’s means to communicate between components
Wrap up and Q/A
To include list of resources

Android apps are written in Java
Can also be written in C/C++
Android Java apps run on a virtual machine
Called the Dalvik Virtual Machine (DVM)
Android OS manages the start/stop of the DVM.
Java code is compiled into byte code held in a .dex file
Apps are bundled into an .apk file (fancy ZIP file) for deployment to the device
By default, all components of an app run in one DVM
By default, all components execute in the same thread of that process

Published in: Software, Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
521
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Android Tutorial Activities and Services

  1. 1. Mobile Twin Cities Android Tutorial on Activities/Services
  2. 2. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 2 Intertech Instructors Who Consult, Consultants Who Teach Training • Training through hands-on, real world business examples. • Our site, your site, or live online – globally. • Agile/Scrum, Citrix, VMware, Oracle, IBM, Microsoft, Java/Open Source, and web and mobile technologies. Consulting  Design and develop software that powers businesses and governments of all sizes.  On-site consulting, outsourcing, and mentoring.  Agile, .NET, Java, SQL Server, mobile development including iPhone and Android platforms and more…. Our Company  Over 35 awards for growth, innovation and workplace best practices.  99.7% satisfaction score from our consulting and training customers.  Yearly “Best Places to Work” winner in Minnesota.
  3. 3. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 3
  4. 4. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 4 My Agenda • Some Android Basics • Android Activity Basics • Android’s chief UI component • Android Service Basics • Android’s chief background service component • Android Intent Basics • Android’s means to communicate between components • Wrap up and Q/A • To include list of resources Your Agenda But – I can take this in just about any direction you would like
  5. 5. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 5 Some Android Basics • Android apps are written in Java • Can also be written in C/C++ • Android Java apps run on a virtual machine • Called the Dalvik Virtual Machine (DVM) • Android OS manages the start/stop of the DVM. • Java code is compiled into byte code held in a .dex file • Apps are bundled into an .apk file (fancy ZIP file) for deployment to the device • By default, all components of an app run in one DVM • By default, all components execute in the same thread of that process Linux Kernel DVM Process Application .APK
  6. 6. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 6 • Android applications are really a loose affiliation of components. • Android applications have no single entry point; no beginning or end to speak of • Components defined in one “application” can be used by another application. • Android applications are comprised of one or more of the following “building block” components: • Activities • Services • Content Providers • Broadcast Receivers • All these must be registered an the AndroidManifiest.xml. • In addition, there are a number of components used by these main components • Intents • Notifications • AsyncTask Android Apps
  7. 7. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 7 Activities • Activities are visual user interface components • Think “screen” • Most applications will have one or more activities • In most applications, the “first” activity gets opened when the application launches • Alive per user needs or as Android sees fit (ex: removed for incoming call, to allow another app to run, etc.) • Activities contain Views (and View Groups) • Think “widgets” • ViewGroups organize and layout children View components • ViewGroups can have children View components • An activity’s Views/ViewGroups can be specified by Java code or XML
  8. 8. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 8 Building an Activity • Extend android.app.Activity • Minimally override onCreate( ) • Method creates and displays the activity import android.app.Activity; public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } … }
  9. 9. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 9 Setting the Content of an Activity • setContentView( ) provides “guts” to the activity. • Typically called from onCreate( ). • Sets the View root - an activity can have one root View. • ViewGroups are Views (allows a collection of widgets to be displayed) • The content can be set with an instance of View. • Using the Android/Java API to create root View. • The content can be set via XML resource file (layout file) • The XML specifies the View component(s).
  10. 10. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 10 Android View/ViewGroups (a.k.a. “Widgets”) • “Widget” toolbox • Views • TextView • EditText • ListView • Spinner • Button • Checkbox • RadioButton • ViewGroups = layout • TableLayout • RelativeLayout • Etc.
  11. 11. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 11 Loose Android – AWT/Swing Translation Android UI Component Swing Component Activity (J)Frame View (J)Component TextView (J)Label EditText (J)TextField Button (J)Button Checkbox (J)Checkbox RadioButton JRadioButton ViewGroup LinearLayout TableLayout … LayoutManager BoxLayout or FlowLayout GridLayout
  12. 12. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 12 Setting Content Programmatically • Create a View or ViewGroup instance. • Organize the widgets • Configure the widgets • Set the content of the activity with the root view public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TableLayout layout = new TableLayout(this); layout.setStretchAllColumns(true); TableRow rowHeader = new TableRow(this); layout.addView(rowHeader); ImageView image = new ImageView(this); Image.setImageResource(R.drawable.itech); TextView title = new TextView(this); title.setText("Reversy"); title.setTextSize(30f); rowHeader.addView(image); rowHeader.addView(title); TableRow row1 = new TableRow(this); TextView nameLabel = new TextView(this); nameLabel.setText(“String:"); EditText nameEdit = new EditText(this); row1.addView(nameLabel); row1.addView(nameEdit); layout.addView(row1); setContentView(layout); }
  13. 13. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 13 Setting Content via Resource File • Establish a layout resource file defining the View/ViewGroups to display • XML file located in /res/layout • Organize widgets via XML elements • Configure widgets via XML • Set the content of the activity with referenced layout file <TableLayout xmlns:android= http://schemas.android.com/apk/res/android android:layout_width="fill_parent” android:layout_height="fill_parent" android:stretchColumns="1"> <TableRow> <ImageView android:id="@+id/itechicon" android:src="@drawable/itech" android:layout_width="wrap_content" android:layout_height="wrap_content"> </ImageView> <TextView android:text="Reversy" android:textSize="30sp" android:layout_gravity="center_horizontal" /> </TableRow> <TableRow> <TextView android:text="String:" android:textSize="20sp"/> <EditText android:id="@+id/datastring" /> </TableRow> <Button android:layout_height="wrap_content" android:text="Reverse it” android:layout_width="wrap_content" android:id="@+id/reverse“ android:layout_alignParentRight="true" android:onClick="onReverse" /> </TableLayout> public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }
  14. 14. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 14 Register the Activity in the Manifest • Android components must be registered. • One activity can be designated as the activity to be launched when the app starts. • Called the “main launcher” activity • Designated by intent filter (more on intents in a bit) <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.intertech.welcomemat.activities" android:versionCode="1” android:versionName="1.0"> <application android:label="@string/app_name" android:icon="@drawable/itech"> <activity android:label="@string/app_name" android:name=“MyActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="9" /> </manifest>
  15. 15. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 15 Active Activity • Only one activity is “active” in Android at a time. • Android maintains a “stack” of executing activities. • When all or part of an activity becomes obscured, it moves lower in the stack. • To conserve CPU, memory, etc. Android may need to pause or stop activities (and their DVM) • Typically done with activities lower in the stack. • The activity lifecycle methods allow your code to react Activity A Activity B Activity C
  16. 16. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 16 Activity Lifecycle • Android invokes various lifecycle methods as activity is displayed/hidden/destroyed • These callback methods allow your app to… • Manage resources • Store/restore app state • Store/restore screen data • Add complexity to activity development.
  17. 17. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 17 Screen Orientation Change • A screen orientation change causes activities to be • Destroyed • Recreated • i.e. - go through the entire activity lifecycle • Requires work to capture/maintain state between activity instances
  18. 18. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 18 Services • Services are background processes • Think “cron job” or “Windows scheduled task” • No direct visual representation or user interaction • Examples: play your music or check on updates to a feed • Often used to schedule tasks • Alive for as long as they have to be • Can be killed, but Android will remember to restart them if desired • Android gives them a higher priority than inactive Activities • Typically launched from the UI (activity) • But can be launched from the start of the application Services are considered one of the real strengths/selling point of Android
  19. 19. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 19 Creating a Service • Extend android.app.Service • Minimally override onBind( ) • onBind( ) – provides a persistent connection to a service. • For tight coupling to something like an activity • In most cases, also implement the onCreate and onStartCommand( ) • onCreate( ) - called when the service is created • onStartCommand - called when the service is started. • Where the work of the service gets kicked off. public class MyService extends Service { @Override public void onCreate() { super.onCreate(); // … initialize here } @Override public IBinder onBind(Intent arg0) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { // … do work of the service here ] }
  20. 20. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 20 Register the Service in the Manifest <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.intertech.reversy.activities" android:versionCode="1" android:versionName="1.0"> <application android:label="@string/app_name" android:icon="@drawable/itech"> <service android:label=“MyService" android:name="com.intertech.MyService“/> </application> <uses-sdk android:minSdkVersion="9" /> </manifest>
  21. 21. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 21 Comic half time
  22. 22. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 22 Intents • Intents are system messages/event carriers/announcements • Used to communicate between components (in any app) • Examples • Way for one activity to call to another activity to display itself • Way to trigger a service • Way to request the device make a phone call or play music • Android controls the delivery • Intents = action + context or data • Not unlike how HTTP works (GET http://...) • Example intent action: VIEW or EDIT • Example intent context/data: Activity name or URI of a contact • Two types of intents: explicit and implicit
  23. 23. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 23 Intents == Messages • Intents don’t do anything on their own. • They can cause other components to trigger. • They alone are just carriers of information. Addressee (who gets the message) Used by the system to get the message to the right addressee Contents: The data to be used by the addressee
  24. 24. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 24 To: Duane From: Ben Duane, can you get me a list of customers that have purchased in the last 90 days? Explicit Intent Input data Expected output data
  25. 25. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 25 To: All staff From: Ben I need a list of customers who have purchased in the last 90 days Implicit Intent Input data Expected output data
  26. 26. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 26 Types of Intents • Explicit • Specify a class by name to load and do something • “Send a message to X!” • Optionally include data in intent that X will need to do something • Implicit • Specify an action and data • “I would like to do X with Y, can anyone help?” • “Anyone” is some other component • The component might be in the same or different app • Optionally include data in intent that “Anyone” will need in order to help
  27. 27. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 27 Start by Intent - Explicit • Start a service via intent • Start an activity by intent Intent serviceIntent = new Intent(this, MyService.class); serviceIntent.putExtra("data",”my data string”); startService(serviceIntent); Intent activityIntent = new Intent(this, MyActivity.class); activityIntent.putExtra("data",”my data string”); startActivity(activityIntent);
  28. 28. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 28 Start by Intent - Implicit • Make a phone call • To play a music file String callNumber = "111-333-222-4"; String uri = "tel:" + callNumber.trim() ; Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse(uri)); startActivity(intent); Uri data = Uri.parse("file:///mnt/sdcard/abc_xyz.mp3"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(data, "audio/*"); startActivity(intent);
  29. 29. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 29 Android Intents (Built-in) • Android comes with several Intent actions • Examples • ACTION_DIAL • ACTION_EDIT • ACTION_VIEW • ACTION_BATTERY_LOW • Android comes with several built-in data URI • Examples • tel:555-555-1212 • content://contacts/people/10 – for a PMI contact • http://www.intertech.com
  30. 30. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 30 Intent Filters • Your application components can react to implicit Intents • Components simply need to register in the manifest file for the intent by… • Action • Data/type • Category • All of the above • Think you have the worlds best music playing service? • Register your service to play music • User will pick which music player is used on the device when there are many. <service android:label="ReverseService" android:name="com.intertech.MyService"> <intent-filter> <action android:name= "android.content.Intent.ACTION_VIEW" /> <category android:name= “android.app.category.CATEGORY_APP_MUSIC” /> <data android:mimeType=“audio/*" /> </intent-filter> </service>
  31. 31. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 31 And now a Demo Count upper/lower case characters serviceData entry activity Results activity
  32. 32. An Intertech, Inc. Presentation Copyright © Intertech, Inc. • www.Intertech.com • 800-866-9884 Slide 32 Associated Courses and Resources • Complete Android Training • Complete IPhone and IPad IOS 7 TRAINING • Complete HTML5 Mobile Training Intertech Android Article • Jim’s email - jwhite@intertech.com
  33. 33. Questions And some answers?? Thanks for having me! • Intertech Blog site • www.intertech.comblog
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×