Software Engineering for Internet Applications

Slides:



Advertisements
Similar presentations
All About Android Introduction to Android 1. Creating a New App “These aren’t the droids we’re looking for.” Obi-wan Kenobi 1. Bring up Eclipse. 2. Click.
Advertisements

Application Fundamentals. See: developer.android.com/guide/developing/building/index.html.
Filip Debelić What is it? Android is a mobile operating system (OS) based on the Linux kernel and currently developed by Google Android,
Android Development (Basics)
INTERNATIONAL SUMMER ACADEMIC COURSE UNIVESITY OF NIS ISAC – Android programming.
Chien-Chung Shen Manifest and Activity Chien-Chung Shen
Better reference the original webpage :
Mobile Programming Lecture 1 Getting Started. Today's Agenda About the Eclipse IDE Hello, World! Project Android Project Structure Intro to Activities,
Introduction to Android Programming Content Basic environmental structure Building a simple app Debugging.
Android development the first app. Andoid vs iOS which is better? Short answer: neither Proponents on both sides For an iOS side, see this article on.
Android: versions Note that: Honeycomb (Android v3.0) A tablet-only release Jelly Bean (Android v4.1) Released on July 09, 2012.
CS5103 Software Engineering Lecture 08 Android Development II.
© Keren Kalif Intro to Android Development Written by Keren Kalif, Edited by Liron Blecher Contains slides from Google I/O presentation.
Chapter 2: Simplify! The Android User Interface
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
Frank Xu Gannon University.  Linear Layout  Relative Layout  Table Layout.
Chapter 2 The Android User Interface. Objectives  In this chapter, you learn to:  Develop a user interface using the TextView, ImageView, and Button.
INTRODUCTION TO ANDROID. Slide 2 Application Components An Android application is made of up one or more of the following components Activities We will.
CS378 - Mobile Computing Intents. Allow us to use applications and components that are part of Android System – start activities – start services – deliver.
Programming Mobile Applications with Android September, Albacete, Spain Jesus Martínez-Gómez.
Android - Broadcast Receivers
Android Boot Camp for Developers Using Java, 3E
Programming with Android: Layouts, Widgets and Events Luca Bedogni Marco Di Felice Dipartimento di Scienze dell’Informazione Università di Bologna.
User Interfaces: Part 1 (View Groups and Layouts).
Presented By: Muhammad Tariq Software Engineer Android Training course.
Android Boot Camp for Developers Using Java, Comprehensive: A Guide to Creating Your First Android Apps Chapter 2: Simplify! The Android User Interface.
Creating an Example Android App in Android Studio Activity lifecycle & UI Resources.
HW#9 Clues CSCI 571 Fall, HW#9 Prototype
MOBILE COMPUTING D10K-7D02 MC05: Android UI Design Dr. Setiawan Hadi, M.Sc.CS. Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran.
CS378 - Mobile Computing User Interface Basics. User Interface Elements View – Control – ViewGroup Layout Widget (Compound Control) Many pre built Views.
Building User Interfaces Basic Applications
ANDROID LAYOUTS AND WIDGETS. Slide 2 Introduction Parts of the Android screen Sizing widgets and fonts Layouts and their characteristics Buttons, checkboxes.
Introduction to Android Programming
Chapter 2: Simplify! The Android User Interface
Lab7 – Appendix.
Introduction to android
Android Programming - Features
Open Handset Alliance.
Android Application Development 1 6 May 2018
Lecture 2 Zablon Ochomo Android Programming Lecture 2 Zablon Ochomo
Instructor: Mazhar Hussain
Android – Event Handling
CS499 – Mobile Application Development
MAD.
Activities and Intents
Android Mobile Application Development
Android Widgets 1 7 August 2018
Creation of an Android App By Keith Lynn
Mobile Application Development Chapter 4 [Android Navigation and Interface Design] IT448-Fall 2017 IT448- Fall2017.
The Android Activity Lifecycle
ANDROID UI – FRAGMENTS UNIT II.
Anatomy of an Android Application
Android SDK & App Development
CS5103 Software Engineering
CIS 470 Mobile App Development
CMPE419 Mobile Application Development
Building User Interfaces Basic Applications
Activities and Intents
HNDIT2417 Mobile Application Development
Android Programming Tutorial
Programming Mobile Applications with Android
CIS 470 Mobile App Development
Android Developer Fundamentals V2
Activities and Intents
Android Project Structure, App Resources and Event Handling
Introduction to Android
Mobile Programmming Dr. Mohsin Ali Memon.
CMPE419 Mobile Application Development
Activities, Fragments, and Intents
CIS 694/EEC 693 Android Sensor Programming
Presentation transcript:

Software Engineering for Internet Applications Mobile Apps Programming - Android Development ADF 11/7/2018

Mobile Devices Today 11/7/2018

Android Evolution 11/7/2018

Android Advantages 11/7/2018

Android in a Glance Android SDK Dalvik Eclipse vs. Android Studio ADT Debug & Testing Tools DDMS Open Source Libraries 11/7/2018

Android Architecture Diagram 11/7/2018

Environment Setup JDK 5 or later + JRE 6 Android IDE Android Studio Eclipse ADT bundle IntelliJ IDE Android SDK Manager Android Virtual Devices 11/7/2018

Android Components App Manifest Activities Services Content Providers Broadcast Receivers 11/7/2018

App Manifest AndroidManifest.xml describes the fundamental characteristics of the app and defines each of its components presents essential information about your app to the Android system information the system must have before it can run any of the app's code 11/7/2018

App Manifest 11/7/2018

Activities dictate the UI and handle the user interaction to the smart phone screen An activity represents a single screen with a user interface public class MainActivity extends Activity { … } 11/7/2018

Services a component that runs in the background to perform long-running operations or to perform work for remote processes public class MyService extends Service{ … } 11/7/2018

Content Providers supplies data from one application to others on request reading and writing data public class MyContentProvider extends ContenProvider{ public void onCreate (){ … } 11/7/2018

Broadcast Receivers a component that responds to system-wide broadcast announcements respond to broadcast messages from other applications or from the system public class MyReceiver extends BroadcastReceiver{ public void onReceive(context, intent){ … } 11/7/2018

Intents asynchronous message a messaging object you can use to request an action from another app component Activating activities, services, and broadcast receivers 11/7/2018

Android Anatomy 1 src contains the .java source files for your project. By default, it includes an MainActivity.java source file having an activity class that runs when your app is launched using the app icon. 2 gen This contains the .R file, a compiler-generated file that references all the resources found in your project. You should not modify this file. 3 bin This folder contains the Android package files .apk built by the ADT during the build process and everything else needed to run an Android application. 4 res/drawable-hdpi This is a directory for drawable objects that are designed for high-density screens. 5 res/layout This is a directory for files that define your app's user interface. 6 res/values This is a directory for other various XML files that contain a collection of resources, such as strings and colours definitions. 7 AndroidManifest.xml This is the manifest file which describes the fundamental characteristics of the app and defines each of its components. 11/7/2018

Android Anatomy Eclipse Android Studio MyProject/ src/ MyActivity.java res/ drawable/ icon.png layout/ activity_main.xml info.xml values/ strings.xml MyProject/ src/ main/ java/ MyActivity.java res/ drawable/ icon.png layout/ activity_main.xml info.xml values/ strings.xml 11/7/2018

Main Activity File MainActivity.java the actual application file which ultimately gets converted to a Dalvik executable and runs the application package com.example.helloworld; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.support.v4.app.NavUtils; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; 11/7/2018

String File string.xml located in the res/values folder contains all the text that your application uses. the names of buttons, labels, default text, and similar types of strings go into this file. <resources> <string name="app_name">HelloWorld</string> <string name="hello_world">Hello world!</string> <string name="menu_settings">Settings</string> <string name="title_activity_main">MainActivity</string> </resources> 11/7/2018

R File gen/com.example.helloworld/R.java Connecting activity Java files and the resources Generated Do not modify the content of the R.java file 11/7/2018

Accessing Resource Upon Android application compiled a R class gets generated, It contains resource IDs for all the resources available in res/ directory Use R class to access resource Use sub-directory and resource name or directly resource ID 11/7/2018

Accessing Resource Example Accessing res/drawable/myimage.png and set an ImageView R.id.myimageview get ImageView defined with id myimageview in a Layout file. R.drawable.myimage get an image with name myimage available in drawable sub- directory under /res. ImageView imageView = (ImageView) findViewById(R.id.myimageview); imageView.setImageResource(R.drawable.myimage); 11/7/2018

Accessing Resource Example res/values/strings.xml set the text on a TextView object with ID msg using a resource ID <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello, World!</string> </resources> TextView msgTextView = (TextView) findViewById(R.id.msg); msgTextView.setText(R.string.hello); 11/7/2018

Layout File activity_main.xml res/layout directory referenced by the application when building its interface <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium" android:text="@string/hello_world" tools:context=".MainActivity" /> </RelativeLayout> 11/7/2018

Android User Interface Layout in xml files Directory res/layout built using a hierarchy of View and ViewGroup objects 11/7/2018

Drag-and-Drop Layout Generating 11/7/2018

Android Activity Flow 1 onCreate() This is the first callback and called when the activity is first created. 2 onStart() This callback is called when the activity becomes visible to the user. 3 onResume() This is called when the user starts interacting with the application. 4 onPause() The paused activity does not receive user input and cannot execute any code and called when the current activity is being paused and the previous activity is being resumed. 5 onStop() This callback is called when the activity is no longer visible. 6 onDestroy() This callback is called before the activity is destroyed by the system. 7 onRestart() This callback is called when the activity restarts after stopping it. 11/7/2018

Android Service Flow 1 Started A service is started when an application component called startService(). Once started, a service can run in the background indefinitely, even if the component that started it is destroyed. 2 Bound A service is bound when an application component binds to it by calling bindService(). A bound service offers a client-server interface that allows components to interact with the service, send requests, get results, and even do so across processes with interprocess communication (IPC). 11/7/2018

Android Fragments A piece of an activity which enable more modular activity design. sub-activity A fragment has its own layout and its own behavior with its own life cycle callbacks. add or remove fragments in an activity while the activity is running. combine multiple fragments in a single activity to build a multi-plane UI. used in multiple activities. 11/7/2018

Android Fragments 11/7/2018

Android Fragments Life Cycle 11/7/2018

Android Intents an abstract description of an operation to be performed. It can be used with startActivity to launch an Activity, broadcastIntent to send it to any interested BroadcastReceiver components, startService(Intent) or bindService(Intent, ServiceConnection, int) to communicate with a background Service. 11/7/2018

Android Intent Object The intent itself, an Intent object, is a passive data structure holding an abstract description of an operation to be performed. An Intent object is a bundle of information which is used by the component that receives the intent as well as information used by the Android system. No Method Description 1 Context.startActivity() The Intent object is passed to this method to launch a new activity or get an existing activity to do something new. 2 Context.startService() The Intent object is passed to this method to initiate a service or deliver new instructions to an ongoing service. 3 Context.sendBroadcast() The Intent object is passed to this method to deliver the message to all interested broadcast receivers. 11/7/2018

Explicit Intents connected internal world of application Example : connect one activity to another activity // Explicit Intent by specifying its class name Intent i = new Intent(FirstActivity.this, SecondAcitivity.class); // Starts TargetActivity startActivity(i); 11/7/2018

Implicit Intents These intents do not name a target and the field for the component name is left blank. Implicit intents are often used to activate components in other applications 11/7/2018

Android UI Layouts 11/7/2018

Android Layout Types 1 Linear Layout LinearLayout is a view group that aligns all children in a single direction, vertically or horizontally. 2 Relative Layout RelativeLayout is a view group that displays child views in relative positions. 3 Table Layout TableLayout is a view that groups views into rows and columns. 4 Absolute Layout AbsoluteLayout enables you to specify the exact location of its children. 5 Frame Layout The FrameLayout is a placeholder on screen that you can use to display a single view. 6 List View ListView is a view group that displays a list of scrollable items. 7 Grid View GridView is a ViewGroup that displays items in a two-dimensional, scrollable grid. 11/7/2018

Android UI Controls 11/7/2018

AutoCompleteTextView Android UI Controls 1 TextView This control is used to display text to the user. 2 EditText EditText is a predefined subclass of TextView that includes rich editing capabilities. 3 AutoCompleteTextView The AutoCompleteTextView is a view that is similar to EditText, except that it shows a list of completion suggestions automatically while the user is typing. 4 Button A push-button that can be pressed, or clicked, by the user to perform an action. 5 ImageButton AbsoluteLayout enables you to specify the exact location of its children. 6 CheckBox An on/off switch that can be toggled by the user. You should use check box when presenting users with a group of selectable options that are not mutually exclusive. 7 ToggleButton An on/off button with a light indicator. 8 RadioButton The RadioButton has two states: either checked or unchecked. 9 RadioGroup A RadioGroup is used to group together one or more RadioButtons. 10 ProgressBar The ProgressBar view provides visual feedback about some ongoing tasks, such as when you are performing a task in the background. 11 Spinner A drop-down list that allows users to select one value from a set. 12 TimePicker The TimePicker view enables users to select a time of the day, in either 24-hour mode or AM/PM mode. 13 DatePicker The DatePicker view enables users to select a date of the day. 11/7/2018

Android Event Handling Event Listeners an interface in the View class that contains a single callback method. called by the Android framework when the View to which the listener has been registered is triggered by user interaction with the item in the UI. Event Listeners Registration the process by which an Event Handler gets registered with an Event Listener so that the handler is called when the Event Listener fires the event. Event Handlers When an event happens and an event listener is registered for the event, the event listener calls the Event Handlers, which is the method that actually handles the event. 11/7/2018

Event Listeners & Event Handlers Description onClick() OnClickListener() called when the user either clicks or touches or focuses upon any widget like button, text, image etc. You will use onClick() event handler to handle such event. onLongClick() OnLongClickListener() called when the user either clicks or touches or focuses upon any widget like button, text, image etc. for one or more seconds. You will use onLongClick() event handler to handle such event. onFocusChange() OnFocusChangeListener() called when the widget looses its focus ie. user goes away from the view item. You will use onFocusChange() event handler to handle such event. onKey() called when the user is focused on the item and presses or releases a hardware key on the device. You will use onKey() event handler to handle such event. onTouch() OnTouchListener() called when the user presses the key, releases the key, or any movement gesture on the screen. You will use onTouch() event handler to handle such event. onMenuItemClick() OnMenuItemClickListener() called when the user selects a menu item. You will use onMenuItemClick() event handler to handle such event. onCreateContextMenu() onCreateContextMenuItemListener() called when the context menu is being built(as the result of a sustained "long click) 11/7/2018

11/7/2018