Mobile Programming Lecture 5. Composite Views, Activities, Intents and Filters

Size: px
Start display at page:

Download "Mobile Programming Lecture 5. Composite Views, Activities, Intents and Filters"

Transcription

1 Mobile Programming Lecture 5 Composite Views, Activities, Intents and Filters

2 Lecture 4 Review How do you get the value of a string in the strings.xml file? What are the steps to populate a Spinner or ListView using XML? How many Android application components are there? Name one. How do you launch an Activity B from within Activity A?

3 Agenda More on ListView ViewFlipper TabLayout Activity LifeCycle Configuration Changes URI Intent Filters

4 ListView - subitems lv = (ListView) findviewbyid(r.id. listview1); String[] names = new String[]{ "Leon Brown","John Doe","Leeroy Jenkins" }; String[] addresses = new String[]{ "Tallahassee, FL", "Atlanta, Georgia", "New York, NY" }; List<Map<String,String>> data = new ArrayList<Map<String,String>>(); HashMap<String, String> map; for (int i = 0; i < names.length; i++) { map = new HashMap<String, String>(); map.put("name", names[i]); map.put("address", addresses[i]); data.add(map); } SimpleAdapter adapter = new SimpleAdapter( this, data, android.r.layout. simple_list_item_2, new String[] { "name", "address" }, new int[] { android.r.id. text1, android.r.id. text2 }); lv.setadapter(adapter);

5 ViewFlipper A ViewFlipper allows you to switch between views that are children of the ViewFlipper You can find it in the Expert menu in Graphical Layout

6 ViewFlipper <ViewFlipper android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> </RelativeLayout> </ViewFlipper>

7 ViewFlipper <ViewFlipper android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > </RelativeLayout> Here I used RelativeLayouts, but you can place any widget you want in here. <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > </RelativeLayout> </ViewFlipper>

8 ViewFlipper <ViewFlipper android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > </RelativeLayout> Here I also used just 2 Views. You can add more than just 2 Views if you want to. <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent > </RelativeLayout> </ViewFlipper>

9 ViewFlipper ViewFlipper public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); } flipper = (ViewFlipper) findviewbyid(r.id.viewflipper1); flipper.setflipinterval(500); flipper.startflipping();

10 ViewFlipper ViewFlipper public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); } flipper = (ViewFlipper) findviewbyid(r.id.viewflipper1); flipper.setflipinterval(500); flipper.startflipping(); Here we set the flipper to flip every 500 milliseconds

11 ViewFlipper ViewFlipper public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); Here we set the flipper to flip when the flipper is clicked } flipper.setonclicklistener(new OnClickListener() public void onclick(view v) { flipper.shownext(); } });

12 FrameLayout FrameLayout is designed to block out an area on the screen to display a single item FrameLayout should be used to hold a single child View It can be difficult to organize child Views in a way that's scalable to different screen sizes without the children overlapping each other

13 TabLayout Wraps multiple Views into a single window Navigate through the Views using tabs NOTE - TabActivity was deprecated in API Level 13, Fragments should be used instead

14 TabLayout - Anatomy ACTIVITY TABHOST TABWIDGET FRAMELAYOUT TAB CONTENT TabHost Container holding TabWidget and a FrameLayout TabWidget Row of tab buttons FrameLayout Container holding the tab contents each tab content is a child of FrameLayout

15 TabLayout - XML <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android=" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> </TabHost> ACTIVITY TABHOST TABWIDGET FRAMELAYOUT TAB CONTENT

16 TabLayout - XML <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android=" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout </LinearLayout> </TabHost> android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" /> ACTIVITY TABHOST TABWIDGET FRAMELAYOUT TAB CONTENT Tabs are different Activities, we set specify the layout for each tab programmatically

17 TabLayout If you're going to have x tabs, create x Activities, 1 for each tab in addition to the TabActivity on the next slide You can create x XML layouts for each tab, or you can reuse the same layout for each tab.

18 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout. main); TabHost tabhost = gettabhost(); // The activity TabHost TabHost.TabSpec spec; Intent intent = new Intent(TabLayoutExampleActivity. this, LinearLayout.class); spec = tabhost.newtabspec( "linear layout" ).setindicator( "Linear", null).setcontent(intent); tabhost.addtab(spec); } intent = new Intent(TabLayoutExampleActivity. this, TableLayout.class); spec = tabhost.newtabspec( "table layout" ).setindicator( "Table", null).setcontent(intent); tabhost.addtab(spec);

19 TabLayout extend TabActivity public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); TabHost tabhost = gettabhost(); // The activity TabHost TabHost.TabSpec spec; Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); spec = tabhost.newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table",null).setcontent(intent); tabhost.addtab(spec);

20 TabLayout public class TabLayoutExampleActivity extends TabActivity the XML file containing the TabHost, TabWidget, FrameLayout public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); TabHost tabhost = gettabhost(); // The activity TabHost TabHost.TabSpec spec; Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); spec = tabhost.newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table",null).setcontent(intent); tabhost.addtab(spec);

21 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); Reference to the Activity's TabHost (which was defined in XML) TabHost tabhost = gettabhost(); TabHost.TabSpec spec; Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); spec = tabhost.newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table", null).setcontent(intent); tabhost.addtab(spec);

22 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); Reusable TabSpec for each Tab. setcontentview(r.layout.main); TabHost tabhost = gettabhost(); TabHost.TabSpec spec; Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); spec = tabhost.newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table", null).setcontent(intent); tabhost.addtab(spec);

23 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { The TabSpec tells the TabHost what views represent the tab contents and what the tab buttons should look like. super.oncreate(savedinstancestate); setcontentview(r.layout.main); TabHost tabhost = gettabhost(); TabHost.TabSpec spec; Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); spec = tabhost.newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table",null).setcontent(intent); tabhost.addtab(spec);

24 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); Remember from the previous lecture, this is how we use an Intent object to start another Activity TabHost tabhost = gettabhost(); TabHost.TabSpec spec; Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); spec = tabhost.newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } Intent intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table", null).setcontent(intent); tabhost.addtab(spec);

25 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); TabHost tabhost = gettabhost(); Refer to this TabActivity's tab host (which will contain the actual tabs) TabHost.TabSpec spec; Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); spec = tabhost.newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } Intent intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table", null).setcontent(intent); tabhost.addtab(spec);

26 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); TabHost tabhost = gettabhost(); TabHost.TabSpec spec; Create a new tab spec, give it the id "linear layout" Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); spec = tabhost. newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } Intent intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table", null).setcontent(intent); tabhost.addtab(spec);

27 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); TabHost tabhost = gettabhost(); TabHost.TabSpec spec; Set the label for the tab (label the user sees) to "Linear". And Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); spec = tabhost.newtabspec("linear layout"). setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } Intent intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table", null).setcontent(intent); tabhost.addtab(spec);

28 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); TabHost tabhost = gettabhost(); TabHost.TabSpec spec; We're not using an image for the tabs, so null for this argument Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); spec = tabhost.newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } Intent intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table", null).setcontent(intent); tabhost.addtab(spec);

29 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); TabHost tabhost = gettabhost(); TabHost.TabSpec spec; Fill the FrameLayout to hold the Activity specified by this intent Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); spec = tabhost.newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } Intent intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table", null).setcontent(intent); tabhost.addtab(spec);

30 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); TabHost tabhost = gettabhost(); TabHost.TabSpec spec; Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); Add the tab to the tabhost, it will now show up in the UI spec = tabhost.newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } Intent intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table", null).setcontent(intent); tabhost.addtab(spec);

31 TabLayout public class TabLayoutExampleActivity extends TabActivity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); TabHost tabhost = gettabhost(); TabHost.TabSpec spec; Intent intent = new Intent(TabLayoutExampleActivity.this, LinearLayout.class); To add another tab, let's do this all over again! spec = tabhost.newtabspec("linear layout").setindicator("linear", null).setcontent(intent); tabhost.addtab(spec); } Intent intent = new Intent(TabLayoutExampleActivity.this, TableLayout.class); spec = tabhost.newtabspec("table layout").setindicator("table", null).setcontent(intent); tabhost.addtab(spec);

32 TabLayout - Rules TabHost must have the The TabWidget must have the The FrameLayout must have the

33 TabHost - useful methods setcurrenttab(int) Make this tab the active tab, making it visible in the UI setontabchangedlistener(ontabchangedlistener) React to when the active tab changes

34 Activity LifeCycle Here's a nice picture of the Activity LifeCycle

35 Activity LifeCycle - oncreate() Called when the Activity is first created. This is where you should do all of your normal static setup: create views, bind data to lists, etc. Provides you with a Bundle containing the Activity's previously frozen state, if there was one. Always followed by onstart().

36 Activity LifeCycle - onstart() Called when the Activity is becoming visible to the user Followed by onresume() if the Activity comes to the foreground onstop() if it becomes hidden.

37 Activity LifeCycle - onrestart() Called after your Activity has been stopped, prior to it being started again Always followed by onstart()

38 Activity LifeCycle - onresume() Called when the Activity will start interacting with the user At this point your Activity is at the top of the Activity stack, with user input going to it Always followed by onpause()

39 Activity LifeCycle - onpause() Called when the system is about to start resuming a previous Activity This is typically used to commit unsaved changes to persistent data, stop animations and other things that may be consuming CPU, etc Implementations of this method must be very quick because the next Activity will not be resumed until this method returns Followed by onresume() if the Activity returns back to the front onstop() if it becomes invisible to the user.

40 Activity LifeCycle - onstop() Called when the Activity is no longer visible to the user because another Activity has been resumed and is covering this one This may happen either because a new Activity is being started, an existing one is being brought in front of this one, or this one is being destroyed Followed by onrestart() if this Activity is coming back to interact with the user ondestroy() if this Activity is going away

41 Activity LifeCycle - ondestroy() The final call you receive before your Activity is destroyed This can happen either because The Activity is finishing (someone called finish() on it) The system is temporarily destroying this instance of the Activity to save space You can distinguish between these two scenarios with the isfinishing() method

42 Activity LifeCycle There are three key loops you may be interested in monitoring within your Activity: Entire lifetime Between the first call to oncreate() through to a single final call to ondestroy() Visible lifetime between a call to onstart() until a corresponding call to onstop() Foreground lifetime between a call to onresume() until a corresponding call to onpause()

43 Configuration Changes You can detect when the configuration of the device changes screen orientation, keyboard availability, and language The system will try to handle the changes for you, unless you specify that you want to handle them yourself

44 Configuration Changes - Manifest To specify that you want to handle orientation and keyboard availability changes yourself Open the manifest file and add the bold line <activity android:configchanges="orientation keyboardhidden" android:name=".onconfigurationchangedexampleactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity>

45 Configuration Changes - Manifest This will prevent the restarts when the orientation changes and when keyboard availability changes <activity android:configchanges="orientation keyboardhidden" android:name=".onconfigurationchangedexampleactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity>

46 Configuration Changes - Event Then, to react to the orientation change event, add this method to your public void onconfigurationchanged(configuration newconfig) { super.onconfigurationchanged(newconfig); } if (newconfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { /*... */ } else if (newconfig.orientation == Configuration.ORIENTATION_PORTRAIT) { /*... */ }

47 Passing Data between Activities When you start Activity B from Activity A, you may want to send data to Activity B Activity A Activity B startactivity B send some data to B also

48 Passing Data between Activities Activity A - oncreate() Activity B - oncreate() Intent intent = new Intent(this, SecondActivity.class); Bundle bundle = new Bundle(); bundle.putstring( "fname", "John"); bundle.putstring( "lname", "Doe"); bundle.putint( "age", 18); intent.putextras(bundle); startactivity(intent); Intent intent = getintent(); Bundle bundle = intent.getextras(); if (bundle!= null) { edit1.settext(bundle.getstring ( "fname")); edit2.settext(bundle.getstring ( "lname")); int age= bundle.getint( "age"); }

49 URIs Uniform Resource Identifier An abstract or physical resource, as specified by RFC 2396 A URI is composed of many parts This class can both parse URI strings into parts and compose URI strings from parts

50 URIs A URI is composed of many parts But there are 4 main parts to a URI Scheme Port Host Path

51 URIs - Examples - Hierarchical file:///tmp/android.txt scheme host port path http mobile.cs.fsu.edu 80 android http file twitter.com /tmp/android.txt

52 URIs - Examples - Opaque mailto:robots.example.com scheme mailto scheme-specific part robots.example.com

53 URIs - Parsing URIs URI uri = Uri.parse(" String scheme = uri.getscheme(); String host = uri.gethost(); int port = uri.getport(); String path = uri.getpath(); String schemespecificpart = uri.getschemespecificpart();

54 Intent Filters To inform the system which implicit Intents they can handle, Activities, Services, and Broadcast Receivers can have one or more IntentFilters Each filter describes a capability of the component, a set of Intents that the component is willing to receive It filters in Intents of a desired type, while filtering out unwanted Intents but only unwanted implicit Intents (those that don't name a target class)

55 Intent Filters Explicit Intent Always delivered to its target, no matter what it contains The filter is not consulted Implicit Intent Delivered to a component only if it can pass through one of the component's filters

56 Intent Filters Explicit Intent Always delivered to its target, no matter what it contains The filter is not consulted Implicit Intent We have seen this before! new Intent(A.this, B.class) Delivered to a component only if it can pass through one of the component's filters

57 Intent Filters How does Android know that you may want to open the YouTube app when you try to watch a video on YouTube? Using Intent Filters We will create an app that can be used to launch links at

58 Intent Filters <activity android:name=".myactivity" > <intent-filter> <data android:scheme="http" android:host="ww2.cs.fsu.edu" /> <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default"/> <category android:name="android.intent.category.browsable"/> </intent-filter> </activity>

59 Intent Filters <activity android:name=".myactivity" > <intent-filter> <data android:scheme="http" android:host="ww2.cs.fsu.edu" /> <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default"/> <category android:name="android.intent.category.browsable"/> </intent-filter> </activity>

60 Intent Filters <activity android:name=".myactivity" > <intent-filter> <data android:scheme="http" android:host="ww2.cs.fsu.edu" /> <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default"/> <category android:name="android.intent.category.browsable"/> </intent-filter> </activity>

61 Intent Filters <activity android:name=".myactivity" > <intent-filter> <data android:scheme="http" android:host="ww2.cs.fsu.edu" /> <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default"/> <category android:name="android.intent.category.browsable"/> </intent-filter> </activity> Display data to the user. Generic action you can use on a piece of data to get the most reasonable thing to occur

62 Intent Filters <activity android:name=".myactivity" > <intent-filter> <data android:scheme="http" android:host="ww2.cs.fsu.edu" /> <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default"/> <category android:name="android.intent.category.browsable"/> </intent-filter> </activity> Set if the Activity should be an option for the default action on a piece of data.

63 Intent Filters <activity android:name=".myactivity" > <intent-filter> <data android:scheme="http" android:host="ww2.cs.fsu.edu" /> <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default"/> <category android:name="android.intent.category.browsable"/> </intent-filter> </activity> Activities that can be safely invoked from a browser must support this category. It's required here.

64 Intent Filters <activity This is an Implicit Intent! android:name=".myactivity" > <intent-filter> <data android:scheme="http" android:host="ww2.cs.fsu.edu" /> <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default"/> <category android:name="android.intent.category.browsable"/> </intent-filter> </activity>

65 References The Busy Coder's Guide to Android Development - Mark Murphy Android Developers The Mobile Lab at Florida State University

ACTIVITY, FRAGMENT, NAVIGATION. Roberto Beraldi

ACTIVITY, FRAGMENT, NAVIGATION. Roberto Beraldi ACTIVITY, FRAGMENT, NAVIGATION Roberto Beraldi Introduction An application is composed of at least one Activity GUI It is a software component that stays behind a GUI (screen) Activity It runs inside the

More information

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah.

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah. Islamic University of Gaza Faculty of Engineering Computer Engineering Department Mobile Computing ECOM 5341 By Eng. Wafaa Audah July 2013 1 Launch activitits, implicit intents, data passing & start activity

More information

Understand applications and their components. activity service broadcast receiver content provider intent AndroidManifest.xml

Understand applications and their components. activity service broadcast receiver content provider intent AndroidManifest.xml Understand applications and their components activity service broadcast receiver content provider intent AndroidManifest.xml Android Application Written in Java (it s possible to write native code) Good

More information

Getting Started. Dr. Miguel A. Labrador Department of Computer Science & Engineering

Getting Started. Dr. Miguel A. Labrador Department of Computer Science & Engineering Getting Started Dr. Miguel A. Labrador Department of Computer Science & Engineering labrador@csee.usf.edu http://www.csee.usf.edu/~labrador 1 Goals Setting up your development environment Android Framework

More information

Android Basics. Android UI Architecture. Android UI 1

Android Basics. Android UI Architecture. Android UI 1 Android Basics Android UI Architecture Android UI 1 Android Design Constraints Limited resources like memory, processing, battery à Android stops your app when not in use Primarily touch interaction à

More information

Android Activities. Akhilesh Tyagi

Android Activities. Akhilesh Tyagi Android Activities Akhilesh Tyagi Apps, memory, and storage storage: Your device has apps and files installed andstoredonitsinternaldisk,sdcard,etc. Settings Storage memory: Some subset of apps might be

More information

Vienos veiklos būsena. Theory

Vienos veiklos būsena. Theory Vienos veiklos būsena Theory While application is running, we create new Activities and close old ones, hide the application and open it again and so on, and Activity can process all these events. It is

More information

CS 528 Mobile and Ubiquitous Computing Lecture 3b: Android Activity Lifecycle and Intents Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 3b: Android Activity Lifecycle and Intents Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 3b: Android Activity Lifecycle and Intents Emmanuel Agu Android Activity LifeCycle Starting Activities Android applications don't start with a call to main(string[])

More information

Android Application Development

Android Application Development Android Application Development Octav Chipara What is Android A free, open source mobile platform A Linux-based, multiprocess, multithreaded OS Android is not a device or a product It s not even limited

More information

Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time

Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time The 1 activity 1 thing the user can do heuristic may not make sense for larger devices Application

More information

CS 4330/5390: Mobile Application Development Exam 1

CS 4330/5390: Mobile Application Development Exam 1 1 Spring 2017 (Thursday, March 9) Name: CS 4330/5390: Mobile Application Development Exam 1 This test has 8 questions and pages numbered 1 through 7. Reminders This test is closed-notes and closed-book.

More information

Overview of Activities

Overview of Activities d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA CS 282 Principles of Operating Systems II Systems Programming

More information

UNDERSTANDING ACTIVITIES

UNDERSTANDING ACTIVITIES Activities Activity is a window that contains the user interface of your application. An Android activity is both a unit of user interaction - typically filling the whole screen of an Android mobile device

More information

LECTURE NOTES OF APPLICATION ACTIVITIES

LECTURE NOTES OF APPLICATION ACTIVITIES Department of Information Networks The University of Babylon LECTURE NOTES OF APPLICATION ACTIVITIES By College of Information Technology, University of Babylon, Iraq Samaher@inet.uobabylon.edu.iq The

More information

Computer Science E-76 Building Mobile Applications

Computer Science E-76 Building Mobile Applications Computer Science E-76 Building Mobile Applications Lecture 3: [Android] The SDK, Activities, and Views February 13, 2012 Dan Armendariz danallan@mit.edu 1 http://developer.android.com Android SDK and NDK

More information

CS 4518 Mobile and Ubiquitous Computing Lecture 4: Data-Driven Views, Android Components & Android Activity Lifecycle Emmanuel Agu

CS 4518 Mobile and Ubiquitous Computing Lecture 4: Data-Driven Views, Android Components & Android Activity Lifecycle Emmanuel Agu CS 4518 Mobile and Ubiquitous Computing Lecture 4: Data-Driven Views, Android Components & Android Activity Lifecycle Emmanuel Agu Announcements Group formation: Projects 2, 3 and final project will be

More information

Android Basics. - Bhaumik Shukla Android Application STEALTH FLASH

Android Basics. - Bhaumik Shukla Android Application STEALTH FLASH Android Basics - Bhaumik Shukla Android Application Developer @ STEALTH FLASH Introduction to Android Android is a software stack for mobile devices that includes an operating system, middleware and key

More information

Minds-on: Android. Session 2

Minds-on: Android. Session 2 Minds-on: Android Session 2 Paulo Baltarejo Sousa Instituto Superior de Engenharia do Porto 2016 Outline Activities UI Events Intents Practice Assignment 1 / 33 2 / 33 Activities Activity An activity provides

More information

Embedded Systems Programming - PA8001

Embedded Systems Programming - PA8001 Embedded Systems Programming - PA8001 http://goo.gl/ydeczu Lecture 8 Mohammad Mousavi m.r.mousavi@hh.se Center for Research on Embedded Systems School of Information Science, Computer and Electrical Engineering

More information

Real-Time Embedded Systems

Real-Time Embedded Systems Real-Time Embedded Systems DT8025, Fall 2016 http://goo.gl/azfc9l Lecture 8 Masoumeh Taromirad m.taromirad@hh.se Center for Research on Embedded Systems School of Information Technology 1 / 51 Smart phones

More information

Diving into Android. By Jeroen Tietema. Jeroen Tietema,

Diving into Android. By Jeroen Tietema. Jeroen Tietema, Diving into Android By Jeroen Tietema Jeroen Tietema, 2015 1 Requirements 4 Android SDK 1 4 Android Studio (or your IDE / editor of choice) 4 Emulator (Genymotion) or a real device. 1 See https://developer.android.com

More information

CMSC436: Fall 2013 Week 3 Lab

CMSC436: Fall 2013 Week 3 Lab CMSC436: Fall 2013 Week 3 Lab Objectives: Familiarize yourself with the Activity class, the Activity lifecycle, and the Android reconfiguration process. Create and monitor a simple application to observe

More information

EMBEDDED SYSTEMS PROGRAMMING Application Basics

EMBEDDED SYSTEMS PROGRAMMING Application Basics EMBEDDED SYSTEMS PROGRAMMING 2015-16 Application Basics APPLICATIONS Application components (e.g., UI elements) are objects instantiated from the platform s frameworks Applications are event driven ( there

More information

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Lecture 3: Android Life Cycle and Permission Entire Lifetime An activity begins its lifecycle when entering the oncreate() state If not interrupted

More information

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Lecture 3: Android Life Cycle and Permission Android Lifecycle An activity begins its lifecycle when entering the oncreate() state If not

More information

States of Activities. Active Pause Stop Inactive

States of Activities. Active Pause Stop Inactive noname Conceptual Parts States of Activities Active Pause Stop Inactive Active state The state that the activity is on the most foreground and having a focus. This is in Active state. Active state The

More information

Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ]

Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ] s@lm@n Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ] Android AND-401 : Practice Test Question No : 1 Which of the following is required to allow the Android

More information

Solving an Android Threading Problem

Solving an Android Threading Problem Home Java News Brief Archive OCI Educational Services Solving an Android Threading Problem Introduction by Eric M. Burke, Principal Software Engineer Object Computing, Inc. (OCI) By now, you probably know

More information

Lab 1: Getting Started With Android Programming

Lab 1: Getting Started With Android Programming Islamic University of Gaza Faculty of Engineering Computer Engineering Dept. Eng. Jehad Aldahdooh Mobile Computing Android Lab Lab 1: Getting Started With Android Programming To create a new Android Project

More information

Activities and Fragments

Activities and Fragments Activities and Fragments 21 November 2017 Lecture 5 21 Nov 2017 SE 435: Development in the Android Environment 1 Topics for Today Activities UI Design and handlers Fragments Source: developer.android.com

More information

Activities. https://developer.android.com/guide/components/activities.html Repo: https://github.com/karlmorris/basicactivities

Activities. https://developer.android.com/guide/components/activities.html Repo: https://github.com/karlmorris/basicactivities Activities https://developer.android.com/guide/components/activities.html Repo: https://github.com/karlmorris/basicactivities Overview What is an Activity Starting and stopping activities The Back Stack

More information

Multiple Activities. Many apps have multiple activities

Multiple Activities. Many apps have multiple activities Intents Lecture 7 Multiple Activities Many apps have multiple activities An activity A can launch another activity B in response to an event The activity A can pass data to B The second activity B can

More information

Programming with Android: Introduction. Layouts. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna

Programming with Android: Introduction. Layouts. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna Programming with Android: Introduction Layouts Luca Bedogni Marco Di Felice Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna Views: outline Main difference between a Drawable and

More information

Mobile Application Development Android

Mobile Application Development Android Mobile Application Development Android Lecture 2 MTAT.03.262 Satish Srirama satish.srirama@ut.ee Android Lecture 1 -recap What is Android How to develop Android applications Run & debug the applications

More information

Starting Another Activity Preferences

Starting Another Activity Preferences Starting Another Activity Preferences Android Application Development Training Xorsat Pvt. Ltd www.xorsat.net fb.com/xorsat.education Outline Starting Another Activity Respond to the Button Create the

More information

Mobila applikationer och trådlösa nät, HI1033, HT2012

Mobila applikationer och trådlösa nät, HI1033, HT2012 Mobila applikationer och trådlösa nät, HI1033, HT2012 Today: - User Interface basics - View components - Event driven applications and callbacks - Menu and Context Menu - ListView and Adapters - Android

More information

Mobila applikationer och trådlösa nät, HI1033, HT2013

Mobila applikationer och trådlösa nät, HI1033, HT2013 Mobila applikationer och trådlösa nät, HI1033, HT2013 Today: - User Interface basics - View components - Event driven applications and callbacks - Menu and Context Menu - ListView and Adapters - Android

More information

CS 4518 Mobile and Ubiquitous Computing Lecture 5: Rotating Device, Saving Data, Intents and Fragments Emmanuel Agu

CS 4518 Mobile and Ubiquitous Computing Lecture 5: Rotating Device, Saving Data, Intents and Fragments Emmanuel Agu CS 4518 Mobile and Ubiquitous Computing Lecture 5: Rotating Device, Saving Data, Intents and Fragments Emmanuel Agu Administrivia Moved back deadlines for projects 2, 3 and final project See updated schedule

More information

Learn about Android Content Providers and SQLite

Learn about Android Content Providers and SQLite Tampa Bay Android Developers Group Learn about Android Content Providers and SQLite Scott A. Thisse March 20, 2012 Learn about Android Content Providers and SQLite What are they? How are they defined?

More information

Mobile User Interfaces

Mobile User Interfaces Mobile User Interfaces CS 2046 Mobile Application Development Fall 2010 Announcements Next class = Lab session: Upson B7 Office Hours (starting 10/25): Me: MW 1:15-2:15 PM, Upson 360 Jae (TA): F 11:00

More information

Action Bar. (c) 2010 Haim Michael. All Rights Reserv ed.

Action Bar. (c) 2010 Haim Michael. All Rights Reserv ed. Action Bar Introduction The Action Bar is a widget that is shown on top of the screen. It includes the application logo on its left side together with items available from the options menu on the right.

More information

UI Fragment.

UI Fragment. UI Fragment 1 Contents Fragments Overviews Lifecycle of Fragments Creating Fragments Fragment Manager and Transactions Adding Fragment to Activity Fragment-to-Fragment Communication Fragment SubClasses

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Saving State THE PROBLEM How to save the state (of a UI, for instance) so that it survives even when the application is closed/killed The state should

More information

CS378 - Mobile Computing. Anatomy of an Android App and the App Lifecycle

CS378 - Mobile Computing. Anatomy of an Android App and the App Lifecycle CS378 - Mobile Computing Anatomy of an Android App and the App Lifecycle Application Components five primary components different purposes and different lifecycles Activity single screen with a user interface,

More information

ANDROID USER INTERFACE

ANDROID USER INTERFACE 1 ANDROID USER INTERFACE Views FUNDAMENTAL UI DESIGN Visual interface element (controls or widgets) ViewGroup Contains multiple widgets. Layouts inherit the ViewGroup class Activities Screen being displayed

More information

Android. Mobile operating system developed by Google A complete stack. Based on the Linux kernel Open source under the Apache 2 license

Android. Mobile operating system developed by Google A complete stack. Based on the Linux kernel Open source under the Apache 2 license Android Android Mobile operating system developed by Google A complete stack OS, framework A rich set of applications Email, calendar, browser, maps, text messaging, contacts, camera, dialer, music player,

More information

Application Fundamentals

Application Fundamentals Application Fundamentals CS 2046 Mobile Application Development Fall 2010 Announcements CMS is up If you did not get an email regarding this, see me after class or send me an email. Still working on room

More information

Mobile Development Lecture 8: Intents and Animation

Mobile Development Lecture 8: Intents and Animation Mobile Development Lecture 8: Intents and Animation Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Elgayyar.weebly.com 1. Multiple Activities Intents Multiple Activities Many apps have multiple activities.

More information

Midterm Examination. CSCE 4623 (Fall 2017) October 20, 2017

Midterm Examination. CSCE 4623 (Fall 2017) October 20, 2017 Midterm Examination CSCE 4623 (Fall 2017) Name: UA ID: October 20, 2017 Instructions: 1. You have 50 minutes to complete the exam. The exam is closed note and closed book. No material is allowed with you

More information

CS378 -Mobile Computing. Anatomy of and Android App and the App Lifecycle

CS378 -Mobile Computing. Anatomy of and Android App and the App Lifecycle CS378 -Mobile Computing Anatomy of and Android App and the App Lifecycle Hello Android Tutorial http://developer.android.com/resources/tutorials/hello-world.html Important Files src/helloandroid.java Activity

More information

Mobile Computing Fragments

Mobile Computing Fragments Fragments APM@FEUP 1 Fragments (1) Activities are used to define a full screen interface and its functionality That s right for small screen devices (smartphones) In bigger devices we can have more interface

More information

Software Practice 3 Today s lecture Today s Task Porting Android App. in real device

Software Practice 3 Today s lecture Today s Task Porting Android App. in real device 1 Software Practice 3 Today s lecture Today s Task Porting Android App. in real device Prof. Hwansoo Han T.A. Jeonghwan Park 43 INTENT 2 3 Android Intent An abstract description of a message Request actions

More information

Agenda. Overview of Xamarin and Xamarin.Android Xamarin.Android fundamentals Creating a detail screen

Agenda. Overview of Xamarin and Xamarin.Android Xamarin.Android fundamentals Creating a detail screen Gill Cleeren Agenda Overview of Xamarin and Xamarin.Android Xamarin.Android fundamentals Creating a detail screen Lists and navigation Navigating from master to detail Optimizing the application Preparing

More information

Intents, Intent Filters, and Invoking Activities: Part I: Using Class Name

Intents, Intent Filters, and Invoking Activities: Part I: Using Class Name 2012 Marty Hall Intents, Intent Filters, and Invoking Activities: Part I: Using Class Name Originals of Slides and Source Code for Examples: http://www.coreservlets.com/android-tutorial/ Customized Java

More information

University of Babylon - College of IT SW Dep. - Android Assist. Lect. Wadhah R. Baiee Activities

University of Babylon - College of IT SW Dep. - Android Assist. Lect. Wadhah R. Baiee Activities Activities Ref: Wei-Meng Lee, BEGINNING ANDROID 4 APPLICATION DEVELOPMENT, Ch2, John Wiley & Sons, 2012 An application can have zero or more activities. Typically, applications have one or more activities;

More information

Mobile Programming Lecture 3. Resources, Selection, Activities, Intents

Mobile Programming Lecture 3. Resources, Selection, Activities, Intents Mobile Programming Lecture 3 Resources, Selection, Activities, Intents Lecture 2 Review What widget would you use to allow the user to enter a yes/no value a range of values from 1 to 100 What's the benefit

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Switching UIs

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Switching UIs EMBEDDED SYSTEMS PROGRAMMING 2015-16 Application Tip: Switching UIs THE PROBLEM How to switch from one UI to another Each UI is associated with a distinct class that controls it Solution shown: two UIs,

More information

Software Practice 3 Before we start Today s lecture Today s Task Team organization

Software Practice 3 Before we start Today s lecture Today s Task Team organization 1 Software Practice 3 Before we start Today s lecture Today s Task Team organization Prof. Hwansoo Han T.A. Jeonghwan Park 43 2 Lecture Schedule Spring 2017 (Monday) This schedule can be changed M A R

More information

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology Mobile Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie User Interface Design" & Development -

More information

CS 370 Android Basics D R. M I C H A E L J. R E A L E F A L L

CS 370 Android Basics D R. M I C H A E L J. R E A L E F A L L CS 370 Android Basics D R. M I C H A E L J. R E A L E F A L L 2 0 1 5 Activity Basics Manifest File AndroidManifest.xml Central configuration of Android application Defines: Name of application Icon for

More information

Android Services. Victor Matos Cleveland State University. Services

Android Services. Victor Matos Cleveland State University. Services 22 Android Victor Matos Cleveland State University Notes are based on: Android Developers http://developer.android.com/index.html 22. Android Android A Service is an application component that runs in

More information

Fragments were added to the Android API in Honeycomb, API 11. The primary classes related to fragments are: android.app.fragment

Fragments were added to the Android API in Honeycomb, API 11. The primary classes related to fragments are: android.app.fragment FRAGMENTS Fragments An activity is a container for views When you have a larger screen device than a phone like a tablet it can look too simple to use phone interface here. Fragments Mini-activities, each

More information

Building User Interface for Android Mobile Applications II

Building User Interface for Android Mobile Applications II Building User Interface for Android Mobile Applications II Mobile App Development 1 MVC 2 MVC 1 MVC 2 MVC Android redraw View invalidate Controller tap, key pressed update Model MVC MVC in Android View

More information

Getting started: Installing IDE and SDK. Marco Ronchetti Università degli Studi di Trento

Getting started: Installing IDE and SDK. Marco Ronchetti Università degli Studi di Trento Getting started: Installing IDE and SDK Marco Ronchetti Università degli Studi di Trento Alternative: Android Studio http://developer.android.com/develop/index.html 2 Tools behind the scenes dx allows

More information

Understanding Application

Understanding Application Introduction to Android Application Development, Android Essentials, Fifth Edition Chapter 4 Understanding Application Components Chapter 4 Overview Master important terminology Learn what the application

More information

8/30/15 MOBILE COMPUTING. CSE 40814/60814 Fall How many of you. have implemented a command-line user interface?

8/30/15 MOBILE COMPUTING. CSE 40814/60814 Fall How many of you. have implemented a command-line user interface? MOBILE COMPUTING CSE 40814/60814 Fall 2015 How many of you have implemented a command-line user interface? 1 How many of you have implemented a graphical user interface? HTML/CSS Java Swing.NET Framework

More information

Mobile Programming Lecture 2. Layouts, Widgets, Toasts, and Event Handling

Mobile Programming Lecture 2. Layouts, Widgets, Toasts, and Event Handling Mobile Programming Lecture 2 Layouts, Widgets, Toasts, and Event Handling Lecture 1 Review How to edit XML files in Android Studio? What holds all elements (Views) that appear to the user in an Activity?

More information

EMBEDDED SYSTEMS PROGRAMMING Android Services

EMBEDDED SYSTEMS PROGRAMMING Android Services EMBEDDED SYSTEMS PROGRAMMING 2016-17 Android Services APP COMPONENTS Activity: a single screen with a user interface Broadcast receiver: responds to system-wide broadcast events. No user interface Service:

More information

Notification mechanism

Notification mechanism Notification mechanism Adaptation of materials: dr Tomasz Xięski. Based on presentations made available by Victor Matos, Cleveland State University. Portions of this page are reproduced from work created

More information

Adapter.

Adapter. 1 Adapter An Adapter object acts as a bridge between an AdapterView and the underlying data for that view The Adapter provides access to the data items The Adapter is also responsible for making a View

More information

Programming with Android: Android for Tablets. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: Android for Tablets. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: Android for Tablets Luca Bedogni Marco Di Felice Dipartimento di Scienze dell Informazione Università di Bologna Outline Android for Tablets: A Case Study Android for Tablets:

More information

INTENTS android.content.intent

INTENTS android.content.intent INTENTS INTENTS Intents are asynchronous messages which allow application components to request functionality from other Android components. Intents allow you to interact with components from the same

More information

Android Beginners Workshop

Android Beginners Workshop Android Beginners Workshop at the M O B IL E M O N D AY m 2 d 2 D E V E L O P E R D A Y February, 23 th 2010 Sven Woltmann, AndroidPIT Sven Woltmann Studied Computer Science at the TU Ilmenau, 1994-1999

More information

Basic UI elements: Android Buttons (Basics) Marco Ronchetti Università degli Studi di Trento

Basic UI elements: Android Buttons (Basics) Marco Ronchetti Università degli Studi di Trento Basic UI elements: Android Buttons (Basics) Marco Ronchetti Università degli Studi di Trento Let s work with the listener Button button = ; button.setonclicklistener(new.onclicklistener() { public void

More information

Mobile Computing Practice # 2c Android Applications - Interface

Mobile Computing Practice # 2c Android Applications - Interface Mobile Computing Practice # 2c Android Applications - Interface One more step in the restaurants application. 1. Design an alternative layout for showing up in landscape mode. Our current layout is not

More information

Xin Pan. CSCI Fall

Xin Pan. CSCI Fall Xin Pan CSCI5448 2011 Fall Outline Introduction of Android System Four primary application components AndroidManifest.xml Introduction of Android Sensor Framework Package Interface Classes Examples of

More information

Programming with Android: Intents. Luca Bedogni. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: Intents. Luca Bedogni. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: Intents Luca Bedogni Dipartimento di Scienze dell Informazione Università di Bologna Outline What is an intent? Intent description Handling Explicit Intents Handling implicit

More information

Applications. Marco Ronchetti Università degli Studi di Trento

Applications. Marco Ronchetti Università degli Studi di Trento Applications Marco Ronchetti Università degli Studi di Trento Android Applications An Android application typically consists of one or more related, loosely bound activities for the user to interact with.

More information

Android framework overview Activity lifecycle and states

Android framework overview Activity lifecycle and states http://www.android.com/ Android framework overview Activity lifecycle and states Major framework terms 1 All Android apps contains at least one of the 4 components Activity (1) Building block of the UI.

More information

Security model. Marco Ronchetti Università degli Studi di Trento

Security model. Marco Ronchetti Università degli Studi di Trento Security model Marco Ronchetti Università degli Studi di Trento Security model 2 Android OS is a multi-user Linux in which each application is a different user. By default, the system assigns each application

More information

App Development for Smart Devices. Lec #18: Advanced Topics

App Development for Smart Devices. Lec #18: Advanced Topics App Development for Smart Devices CS 495/595 - Fall 2011 Lec #18: Advanced Topics Tamer Nadeem Dept. of Computer Science Objective Web Browsing Android Animation Android Backup Presentation - Developing

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

More information

Android development. Outline. Android Studio. Setting up Android Studio. 1. Set up Android Studio. Tiberiu Vilcu. 2.

Android development. Outline. Android Studio. Setting up Android Studio. 1. Set up Android Studio. Tiberiu Vilcu. 2. Outline 1. Set up Android Studio Android development Tiberiu Vilcu Prepared for EECS 411 Sugih Jamin 15 September 2017 2. Create sample app 3. Add UI to see how the design interface works 4. Add some code

More information

Intents and Intent Filters

Intents and Intent Filters Intents and Intent Filters Intent Intent is an messaging object. There are three fundamental use cases: Starting an activity: Intent intent = new Intent(this, SecondActivity.class); startactivity(intent);

More information

Android Fundamentals - Part 1

Android Fundamentals - Part 1 Android Fundamentals - Part 1 Alexander Nelson September 1, 2017 University of Arkansas - Department of Computer Science and Computer Engineering Reminders Projects Project 1 due Wednesday, September 13th

More information

Agenda. The Android GUI Framework Introduction Anatomy A real word example Life cycle Findings

Agenda. The Android GUI Framework Introduction Anatomy A real word example Life cycle Findings The Android GUI Framework Java User Group Switzerland May 2008 Markus Pilz mp@greenliff.com Peter Wlodarczak pw@greenliff.com Agenda 1. 1. Introduction 2. 2. Anatomy 3. 3. A real word example 4. 4. Life

More information

INTRODUCTION TO ANDROID

INTRODUCTION TO ANDROID INTRODUCTION TO ANDROID 1 Niv Voskoboynik Ben-Gurion University Electrical and Computer Engineering Advanced computer lab 2015 2 Contents Introduction Prior learning Download and install Thread Android

More information

Introduction to Android Development

Introduction to Android Development Introduction to Android Development What is Android? Android is the customizable, easy to use operating system that powers more than a billion devices across the globe - from phones and tablets to watches,

More information

Android Data Storage

Android Data Storage Lesson 14 Android Persistency: Victor Matos Cleveland State University Notes are based on: The Busy Coder's Guide to Android Development by Mark L. Murphy Copyright 2008-2009 CommonsWare, LLC. ISBN: 978-0-9816780-0-9

More information

Manifest.xml. Activity.java

Manifest.xml. Activity.java Dr.K.Somasundaram Ph.D Professor Department of Computer Science and Applications Gandhigram Rural Institute, Gandhigram, Tamil Nadu-624302, India ka.somasundaram@gmail.com Manifest.xml

More information

Android Application Model I. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr.

Android Application Model I. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Android Application Model I CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath 1 Framework Support (e.g. Android) 2 Framework Capabilities

More information

Android Workshop: Model View Controller ( MVC):

Android Workshop: Model View Controller ( MVC): Android Workshop: Android Details: Android is framework that provides java programmers the ability to control different aspects of smart devices. This interaction happens through the Android SDK (Software

More information

Upon completion of the second part of the lab the students will have:

Upon completion of the second part of the lab the students will have: ETSN05, Fall 2017, Version 2.0 Software Development of Large Systems Lab 2 1. INTRODUCTION The goal of lab 2 is to introduce students to the basics of Android development and help them to create a starting

More information

Lifecycle Callbacks and Intents

Lifecycle Callbacks and Intents SE 435: Development in the Android Environment Recitations 2 3 Semester 1 5779 4 Dec - 11 Dec 2018 Lifecycle Callbacks and Intents In this recitation we ll prepare a mockup tool which demonstrates the

More information

LifeStreet Media Android Publisher SDK Integration Guide

LifeStreet Media Android Publisher SDK Integration Guide LifeStreet Media Android Publisher SDK Integration Guide Version 1.12.0 Copyright 2015 Lifestreet Corporation Contents Introduction... 3 Downloading the SDK... 3 Choose type of SDK... 3 Adding the LSM

More information

Action Bar. Action bar: Top navigation bar at each screen The action bar is split into four different functional areas that apply to most apps.

Action Bar. Action bar: Top navigation bar at each screen The action bar is split into four different functional areas that apply to most apps. 1 Action Bar Action bar: Top navigation bar at each screen The action bar is split into four different functional areas that apply to most apps. 1) App Icon 3) Action Buttons 2)View Control 4) Action Overflows

More information

Topics of Discussion

Topics of Discussion Reference CPET 565 Mobile Computing Systems CPET/ITC 499 Mobile Computing Fragments, ActionBar and Menus Part 3 of 5 Android Programming Concepts, by Trish Cornez and Richard Cornez, pubslihed by Jones

More information

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology Mobile Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie Android Anatomy Android Anatomy 2! Agenda

More information

Have a development environment in 256 or 255 Be familiar with the application lifecycle

Have a development environment in 256 or 255 Be familiar with the application lifecycle Upcoming Assignments Readings: Chapter 4 by today Horizontal Prototype due Friday, January 22 Quiz 2 today at 2:40pm Lab Quiz next Friday during lecture time (2:10-3pm) Have a development environment in

More information

Android UI Development

Android UI Development Android UI Development Android UI Studio Widget Layout Android UI 1 Building Applications A typical application will include: Activities - MainActivity as your entry point - Possibly other activities (corresponding

More information