14.1 Overview of Android - Blackberry smart phone appeared in 2003

Slides:



Advertisements
Similar presentations
Introduction to Eclipse. Start Eclipse Click and then click Eclipse from the menu: Or open a shell and type eclipse after the prompt.
Advertisements

ANDROID DEVELOPMENT KELLY MCBEAN. DEVELOPMENT ENVIRONMENT OVERVIEW Eclipse Standard IDE for Developing Android Applications Install: 1.Java (JDK) – Since.
Intro to Android Development. Getting started 1.Install Android SDK (includes Eclipse; 2.If using Windows.
Programming with Android: Widgets and Events Luca Bedogni Marco Di Felice Dipartimento di Scienze dell’Informazione Università di Bologna.
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.
Filip Debelić What is it? Android is a mobile operating system (OS) based on the Linux kernel and currently developed by Google Android,
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Android Programming Beomjoo Seo Sep., 12 CS5248 Fall 2012.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Android Development (Basics)
Android: Layouts David Meredith
Android Application Development 2013 PClassic Chris Murphy 1.
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: 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.
PROG Mobile Java Application Development PROG Mobile Java Application Development Developing Android Apps: Components & Layout.
Favorite Twitter® Searches App Android How to Program © by Pearson Education, Inc. All Rights Reserved.
Android development basics Introduction,Structure,Development Boncho Valkov.Net Developer.
Tip Calculator App Building an Android App with Java © by Pearson Education, Inc. All Rights Reserved.
Basic Android Tutorial USF’s Association for Computing Machinery.
© 2016 Cengage Learning®. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or in part. Android Boot Camp.
INTRODUCTION TO ANDROID. Slide 2 Application Components An Android application is made of up one or more of the following components Activities We will.
Android Boot Camp for Developers Using Java, 3E
User Interfaces: Part 1 (View Groups and Layouts).
Presented By: Muhammad Tariq Software Engineer Android Training course.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Introduction to Android (Part.
Android Hello World 1. Click on Start and type eclipse into the textbox 2.
Copyright© Jeffrey Jongko, Ateneo de Manila University Basic Views and Layouts.
Cosc 4730 Android Fragments. Fragments You can think of a fragment as a modular section of an activity, which has its own lifecycle, receives its own.
Chapter 14 © 2014 by Pearson Education Overview of Android - Blackberry smart phone appeared in 2003 – First widely used mobile access to the Web.
Mobile Programming Lecture 3 Debugging. Lecture 2 Review What widget would you use to allow the user to enter o a yes/no value o a range of values from.
Applications with Multiple Activities. Most applications will have more than one activity. The main activity is started when the application is started.
MOBILE COMPUTING D10K-7D02 MC05: Android UI Design Dr. Setiawan Hadi, M.Sc.CS. Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran.
1 Android Development Lean and mean introduction Based on a presentation by Mihail L. Sichitiu.
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
BUILDING A SIMPLE USER INTERFACE. In this lesson, you create a layout in XML that includes a text field and a button. In the next lesson, your app responds.
COMP 365 Android Development.  Developing for Android  XML for user interface formatting and other scripting  Java for programming.
Chapter 2 Building User Interfaces and 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. Slide 2 Introduction I take a top-down approach to describing an application’s anatomy.
Android apps development - Eclipse, Android SDK, and ADT plugin Introduction of.
Chapter 2: Simplify! The Android User Interface
Introduction to android
Eclipse.
Open Handset Alliance.
Mobile Application Development BSCS-7 Lecture # 2
Mobile Application Development Chapter 3 [Using Eclipse Android Studio for Android Development] IT448-Fall 2017 IT448- Fall2017.
Eclipse Navigation & Usage.
Mobile Application Development Chapter 5 [Persistent Data in Android]
Activities and Intents
Mobile Application Development Chapter 4 [Android Navigation and Interface Design] IT448-Fall 2017 IT448- Fall2017.
Software Engineering in Mobile Computing
The Android Activity Lifecycle
Chap 7. Building Java Graphical User Interfaces
Graphical User Interfaces -- Introduction
Debugging with Eclipse
CS323 Android Getting Started
CS5103 Software Engineering
Building User Interfaces Basic Applications
Activities and Intents
Android Programming Tutorial
Software Setup & Validation
Android Developer Fundamentals V2
Building a Simple User Interface
Mobile Programmming Dr. Mohsin Ali Memon.
Android Development Introduction to Android Development 2011/01/16
Debugging with Eclipse
Presentation transcript:

14.1 Overview of Android - Blackberry smart phone appeared in 2003 – First widely used mobile access to the Web - Smart phone market now dominated by Android, iPhone, and Windows Phone - Tablets are now popular, using the same operating systems - Android was initially developed by Android, Inc. - Acquired by Google in 2005 - In 2007, development was taken over by the Open Handset Alliance, with more than 80 member companies - It is an open source product, written in a form of Java, using an XML tag set for the displays - Mobile devices use two communications methods: WiFi or a cell phone network

14.2 Tools - Android software is nearly always developed with the help of an IDE (Integrated Development Environment) - JDK (Java Development Kit) - Android Software Development Kit Eclipse Android IDE / Android Development Tools (ADT) http://www.Eclipse.Org/downloads/eclipse-packages/ Download and unzip Click the Eclipse icon to start Try the examples there. Start a new project by following the instructions in the book. The link from the book) http://developer.android.com/sdk/index.html#download will forwarded to Android Studio. Android Studio https://developer.android.com/studio

14.3 Architecture of Android Applications - All Android applications use the MVC architecture - Activities - Related to servlets - An activity is a Java class instance with an associated view markup file - Each activity manages one page of display

14.3 Architecture of Android Applications (continued) - View Files - XML documents that display forms - Intents (Events / Massages ) - A means of communication within and among applications - An intent is a Java class instance, often used to start and stop activities - Implementation - An Android application is built as a project, with one or more activities - Applications are compiled to an intermediate form similar to byte code, interpreted by the Dalvik VM - Each application runs in its own process on its own copy of the Dalvik VM Local on the device.

14.4 Execution Model - An Android application starts execution when the user starts it - It ends when the user starts another application or the operating system stops it to capture its resources - Execution is controlled by callback methods that are implicitly called when system- or user-raised events occur - Activities are placed on a stack, with the top one currently running with its view displayed  SHOW Figure 14.1 - The onCreate method sets the activity’s view and often initializes some class-scope variables - The onStart, which is implicitly called when onCreate is finished, displays the view and calls onResume - The onResume starts the execution of the activity’s code

14.4 Execution Model (continued) - The onPause method takes an activity from the resumed state to the paused state - The onStop method takes an activity from the paused state to the stopped state - The onDestroy method takes an activity to the destroyed state - All of these are called the life-cycle methods

14.5 View Groups - A view is similar to a form, with several subviews, or components - A view group, derived from the ViewGroup class, is a container for views - A layout manager, called a layout, is also derived from the ViewGroup class - There are four layout managers: - LinearLayout – views are arranged in a column or a row - FrameLayout – pins its views around its frame - RelativeLayout – views are positioned relative to other views in the layout - GridLayout – views are arranged in a grid

- Attributes of LinearLayout: - orientation – vertical or horizontal 14.6 Simple Views - Attributes of LinearLayout: - orientation – vertical or horizontal - layout_width and layout_height - match_parent or wrap_content - TextView – used to define fixed text (output) - Attributes: - id – Specified as ″@+id/the_name″ - Means the XML parser should parse the whole string and identify it as a resource id - Also, the + means it is a new resource to be put in R.java - text – the text of the element

14.6 Simple Views (continued) <TextView android:id = ″@+id/label1″ android:layout_width = ″wrap_content″ android:layout_height = ″wrap_content″ android:text = ″The temperature is: ″ /> - Normally, the actual text is defined as a resource in the strings.xml file of the res/values directory <string name = ″temp_label” > The temperature is: </string> - The text attribute then would be: android:text = ″@string/temp_label″ https://developer.android.com/training/basics/supporting-devices/languages.html - EditText – A subclass of TextView (input) - Allows editing of its contents (like HTML textboxes) - Same attributes as TextView, plus hint for initial text and inputType - Tapping in the text field produces a standard keyboard - To get a special keyboard, include inputType with a value such as: textEmailAddress, textUri, number, and phone

14.6 Simple Views (continued) - Button Elements <Button android:id = ″@+id/button_send″ android:layout_width = ″wrap_content″ android:layout_height = ″wrap_content″ android:text = ″@string/button_send″ /> With the following in res/values/strings.xml: <string name = ″button_send″ > Send </string> - Events and Handlers - Button click events are Click - Can be registered in code, but we’ll do it in markup <Button android:id = ... ... android:onClick = ″the_handler″ />

14.7 An Example Application 1. Start Eclipse and select File/New/Android Application Project This produces the New Android Application screen 2. Type the application’s name; we use Simple1 3. Change the package name; we chose com.myexample.simple1 4, Click Next, which produces the Configure Project screen

14.7 An Example Application (continued) 5. Defaults are ok, so click Next to get the Configure Launcher Icon screen, which is ok as is, so click Next again, which produces the Create Activity screen 6. The Create Activity screen has Blank Activity preselected, which is ok, so click Next to get the Blank Activity screen 7. Click Finish; this displays the workspace view of the project Project workspace:

14.7 An Example Application (continued) The workspace has much information: - The left window has Package Explorer, which lists all of the projects in the workspace, including our example, Simple1 - The projects are partially elided; clicking the small triangle left of a directory’s name expands the directory (empty triangles indicate elided names) - Clicking the activity_main.xml tab at the top of the central window, we get the workspace showing the graphical layout of activity_main.xml - The central window shows an emulated display

14.7 An Example Application (continued) Contents of activity_main.xml

14.7 An Example Application (continued) - To run the project on an emulator: 1. Create a specific device emulator - Select Window/Android Virtual Device Manager - Click New - Type in avd as the name for our AVD, choose 5.1 inch WVGA device and the Android 4.3 target - Unselect the checkbox for keyboard - Select ARM processor, though it is irrelevant for simple projects 2. Back in the Android Virtual Device Manager screen, select avd and click Start; this opens the Launch Options window, on which we click Scale display to real size and Launch 3. After a while, the emulated device screen will appear. Select Run/Run, which may open the Run As window 4. If Run As is opened, select Android Application and click OK (You may need to click the MENU button to see the display)

14.7 An Example Application (continued) 14.8 Running on an Android device - Requires a driver running on the computer that has Android/ADT - Connect the device to the computer with the cable used to charge the device - USB debugging must be turned on

14.9 Using the Intent Class - We’ll use it to call other activities - First, create an Intent object Intent intent = new Intent(this, Second.class); - To call the activity: startActivity(intent); - This is ok, but can’t pass data to the second activity, which is no simple process - To pass the content of an EditText component with the id editText1: - First get the address of the code of the component EditText editText = (EditText) findViewById(R.id.editText1); - Now, the value of the component can be gotten with: String message = editText.getText().toString(); (toString is required because getText returns an Editable type)

14.9 Using the Intent Class (continued) - Add message to the Intent object - So the called activity can identify the message, precede it with a constant string, EXTRA_MESSAGE, in the caller public final static String EXTRA_MESSAGE = ″com.myexample.interact.MESSAGE″; where interact is the name of the application - Attach the text box content (message) and the constant string with: intent.putExtra(EXTRA_MESSAGE, message); - To retrieve the message in the called activity: - Create an Intent object and use getStringExtra: Intent intent = getIntent(); String message = intent.getStringExtra( MainActivity.EXTRA_MESSAGE);

14.10 A Second Activity - The first activity asks the user for his or her name. The second is called with the name. It responds with a personalized greeting, including time and date  SHOW activity_main.xml - Sometimes, an event handler must be registered in code Button button = (Button) findViewById(R.id.mybutton); button.setOnClickListener( new View.OnClickListener() { public void onClick(View view) { … } }); - The main activity defines the event handler for the button, sendMessage, which must call the second activity SHOW MainActivity.java - Now build the second activity: 1. Select File/New/Other/Android/Android Activity and click Next

14.10 A Second Activity (continued) 2. Click Next on Blank Activity 3. Type in the activity’s name Response_Activity and its hierarchical parent, com.myexample.Ineract.MainActivity 4. Click Finish - The framework-produced ResponseActivity.java includes some parts we don’t need - Remove onCreateOptionsMenu - Remove the block of comments on onOptionsItemSelected - Remove setUpActionBar and the call to it  SHOW the initial version of ResponseActivity.java (page 625) - Add the necessary code to it: 1. Get references to the two TextView boxes TextView greetBox = (TextView) findViewById(R.id.greeting); TextView dayBox = (TextView) findViewById(R.id.today);

14.10 A Second Activity (continued) 2. Create an Intent object and get the passed data Intent intent = getIntent(); final String message = intent.getStringExtra( MainActivity.EXTRA_MESSAGE); 3. Add the code for the first response line and put it in the main activity’s TextView String out = ″Hello, ″ + message + ″, it’s nice to hear from you.″; greetBox.setText(out); 4. Add the code for the second response line and put it in the main activity’s TextView String date = DateFormat.getDateTimeInstance() .format(new Date()); String day = ″Today is ″ + date; dayBox.setText(day); SHOW complete ResponseActivity.java (page 627-628) - Write the response view file - Needs two TextView elements for the response with the ids greetBox and dayBox

14.10 A Second Activity (continued) - If we run this application and enter Alison, we get the response: 14.11 More Widgets - Toggle Buttons Traditional (on and off) <ToggleButton android:id = "@+id/togbutton" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:textOn = "Vibration mode on" android:textOff = "Vibration mode off" android:onClick = "onToggleClicked" />

14.11 More Widgets (continued) - Toggle Buttons (continued) - A skeletal handler: public void onToggleClicked(View view) { boolean on = ((ToggleButton) view).isChecked(); if (on) { // Actions for when the toggle is turned on } else { // Actions for when the toggle is turned off } - The other kind, named switch toggle buttons, are similar, but use a slide button instead of a regular button - Checkboxes - Managed individually <CheckBox android:id = "@+id/checkbox_tomatoes“ android:layout_width = "wrap_content“ android:layout_height = "wrap_content“ android:text = "@string/tomatoes“ android:onClick = "checkbox_handler" />  

14.11 More Widgets (continued) - Checkboxes (continued) - A handler for two checkboxes: public void checkbox_handler(View view) { boolean checked = ((CheckBox) view).isChecked();   switch(view.getID()) { case R.id.checkbox_tomatoes: if (checked) // Put tomatoes on the pizza else // Hold the tomatoes break; case R.id.checkbox_anchovies: // Put anchovies on the pizza // Hold the anchovies } - Radio Buttons - Must be nested inside RadioGroup elements

14.11 More Widgets (continued) - Radio Buttons (continued) SHOW XML on bottom p. 630 & top p. 631 - A handler for these three radio buttons is: public void radiohandler(View view) { boolean checked = ((RadioButton) view).isChecked();   switch(view.getID()) { case R.id.ageunder35: if (checked) // Actions for younger folks break; case R.id.agebet3560: // Actions for middle age folks case R.id.ageover60: // Actions for older folks }

14.12 Lists - ListView - Elements are similar to TextView elements, with id, layout_width, and layout_height attributes - The static part of a ListView can be represented in an array - If it is completely static, it can be an Array - If the length is dynamic, it needs to be an ArrayList - The array is bound to the ListView with an ArrayAdapter object final ArrayAdapter<String> adaptr; adaptr = new ArrayAdapter<String> ( this, android.R.layout.simple_list_item_1, listHolidays);   If the ListView element has the id aList, we could bind it with: aList.setAdapter(adaptr);

14.12 Lists (continued) - An example using lists - A grocery list with a button to add an element and one to clear the list SHOW the view document (p. 633) - The required strings for strings.xml <string name = "new_list_item"> New list item </string>  <string name = "add_item"> Add item </string>  <string name = "clear_list">Clear list  

14.12 Lists (continued) - Now we change the main activity code file: 1. New class-level declarations so we can reference the ListView and EditText elements: ListView theListView; EditText theEditText; 2. Declaration for the grocery list array and for a reference to the array adapter ArrayList<Strinig> groceryList = new ArrayList<String>(); ArrayAdapter<String> adaptr; 3. Code to get the addresses of the objects associated with the ListView and EditText elements theListView = (ListView) findViewById(R.id.myList); theEditText = (EditText) findViewById(R.id.newItem);

14.12 Lists (continued) 4. Instantiate the array adapter adaptr = new ArrayAdapter<String>( this, android.R.Layout.simple_list_item_1, grocerList); theListView.setAdapter(adaptr); 5. Event handlers for the two buttons public void addItem(View, view) { groceryList.add(groceryList.size(), theEditText.getText().toString()); adaptr.notifyDataSetChanged(); theEditText.setText(″″); } public void clearList(View view) { groceryList.clear(); SHOW MainActivity.java for the groceryList project (pp. 636-637)

14.13 Data Persistence - To be useful, the grocery list must be saved between uses of the application - There are three different ways to persist data in Android: shared preferences (for primitive data), files, and SQLite relational databases - Shared preferences - First create a SharedPreferences object SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences (this); - Then create an Editor object SharedPreferences.Editor edit = prefs.edit(); - Data is placed in savings with a puttype method, such as putString or putFloat - Data must be saved and retrieved with the same save identifier

14.13 Data Persistence (continued) - Code to save data is placed in an overridden version of onPause and code to retrieve it is placed in an overridden version of onResume - For our example, we cannot save the array, because it is not a primitive type, so we convert it to a primitive type, a String, by first converting it to a StringBuilder object StringBuilder bigString = new StringBuilder(); for (int i = 0; i < groceryList.size(); i++) { bigString.append( new StringBuilder(groceryList.get(i))). append(new StringBuilder(":")); } Now, bigString has the elements of the array with colons between the elements

14.13 Data Persistence (continued) - To retrieve the data back into the array groceryList String bigString = new String (PreferenceManager. getDefaultSharedPreferences( getBaseContext()).getString("SAVELIST", "")); String[] strings = bigString.split(":"); for (int i = 0; i < strings.length; i++) { groceryList.add(strings[i]); } SHOW final version of MainActivity (pp. 639-641) 14.14 Debugging Applications - Eclipse with the Android ADT plug-in includes an integrated debugger - Right-click the application’s name in the Package Explorer and select Debug As/Android Application

14.14 Debugging Applications (continued) - Click the Debug button in the upper right corner - Set a breakpoint on a line of code by putting the cursor to the left of a line and right clicking - Remove a breakpoint by right-clicking the blue circle at the left end of the line and selecting Toggle Breakpoint