Lecture 3 agenda A tour of Android studio features

Slides:



Advertisements
Similar presentations
Programming with Android: Activities and Intents
Advertisements

Application Fundamentals Android Development. Announcements Posting in D2L Tutorials.
Programming with Android: Activities and Intents Luca Bedogni Marco Di Felice Dipartimento di Scienze dell’Informazione Università di Bologna.
Intents.
Mobile Application Development
Mobile Programming Pertemuan 6 Presented by Mulyono Poltek NSC Surabaya.
Intent An Intent describes the operation to be performed. Intents are used to start an activity using either of the following methods – Context.startActivity()
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
UFCFX5-15-3Mobile Device Development Android Development Environments and Windows.
INTERNATIONAL SUMMER ACADEMIC COURSE UNIVESITY OF NIS ISAC – Android programming.
Intro to Android Programming George Nychis Srinivasan Seshan.
Lecture 3 agenda Layouts Intents (both explicit and implicit) ListViews and Adapters.
박 종 혁 컴퓨터 보안 및 운영체제 연구실 MobiSys '11 Proceedings of the 9th international conference on Mobile systems, applications,
 Understanding an activity  Starting an activity  Passing information between activities  Understanding intents  Understanding the activity lifecycle.
CS5103 Software Engineering Lecture 08 Android Development II.
Android Boot Camp for Developers Using Java, Comprehensive: A Guide to Creating Your First Android Apps Chapter 5: Investigate! Android Lists, Arrays,
Lec 04 Content Providers Adapters CursorLoaders Advanced Debugging.
CS378 - Mobile Computing Intents.
Android for Java Developers Denver Java Users Group Jan 11, Mike
Lecture 3 agenda revised setup Android Studio alt-views & shortcuts review layouts and resources debugging in Android Studio lifecycle in Android lab chapters.
Lecture 2 agenda Setting-up projects properly Review git config Java event model Anatomy of and Android Application Activity Lifecycle State Changes; saving.
Overview of Android Application Development
CS378 - Mobile Computing Intents. Allow us to use applications and components that are part of Android System – start activities – start services – deliver.
Android Development 1 Yuliana Setiowati Rizky Yuniar Hakkun Ahmad Syauqi Ahsan.
© 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.
Lec 03 Intents Explicit Intents Implicit Intents.
Linking Activities using Intents How to navigate between Android Activities 1Linking Activities using Intents.
Working with Multiple Activities. Slide 2 Introduction Working with multiple activities Creating multiple views Introduction to intents Passing data to.
Lec 04 Intents and Bundles Fragments. Activated by Intents Activities Services Broadcast Receivers (aka Receivers) (
Introducing Intents Intents Bind application components and navigate between them Transform device into collection of interconnected systems Creating a.
Intents 1 CS440. Intents  Message passing mechanism  Most common uses:  starting an Activity (open an , contact, etc.)  starting an Activity.
Intoduction to Andriod studio Environment With a hello world program.
Lecture 2: Android Concepts
Intents and Broadcast Receivers Dr. David Janzen Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution.
Working with Multiple Activities. Slide 2 Introduction Working with multiple activities Putting together the AndroidManifest.xml file Creating multiple.
Chapter 5: Investigate! Lists, Arrays, and Web Browsers.
CS371m - Mobile Computing Intents 1. Allow us to use applications and components that are already part of Android System – start activities – start services.
Mobile Device Development
Guided By: Dr. Mingon Kang
Android Mobile Application Development
More Security and Programming Language Work on SmartPhones
Mobile Applications (Android Programming)
Intents and Broadcast Receivers
Android Mobile Application Development
Lecture 2: Android Concepts
Content Providers And Content Resolvers
Android 01: Fundamentals
Programming with Android:
Android Studio, Android System Basics and Git
MAD.
Activities and Intents
Android Mobile Application Development
Mobile Application Development Chapter 4 [Android Navigation and Interface Design] IT448-Fall 2017 IT448- Fall2017.
Android Programming Lecture 9
CS371m - Mobile Computing Intents.
Android Programming Lecture 5
CS5103 Software Engineering
Application Development A Tutorial Driven Course
Android Developer Fundamentals V2 Lesson 1
Activities and Intents
Android Topics What are Intents? Implicit Intents vs. Explicit Intents
HNDIT2417 Mobile Application Development
Activities and Intents
It is used to Start an Activity Start a Service Deliver a Broadcast
Lecture 4 agenda Event Handling Fragments The Freemason Conspiracy
Introduction to Android
Lecture 2: Android Concepts
Android Development Introduction to Android Development 2011/01/16
Android Development Tools
CA16R405 - Mobile Application Development (Theory)
Presentation transcript:

Lecture 3 agenda A tour of Android studio features Customizing Android Studio (Gerber 16) Debugging Android (Gerber 12) Intents (both explicit and implicit) The Activity Lifecycle ListViews and Adapters 1

Navigating Android Studio http://developer.android.com/guide/topics/resources/providing-resources.html 2

Navigating in Android Studio alt-1 is project view (alt-F1 is show it in project view) alt-2 is favorites (including bookmarks and breakpoints) alt-3 is the search view (cntl-shift-F to find) alt-4 run-console alt-5 is debug alt-6 is android view (ddms, logcat) alt-7 is structure view (see members and methods) alt-9 is changes(VCS) view Look at the margin of your project

Get help cntl-shift-A (find anything in Android studio) Searching (on mac, replace cntrl with command) cntl-F (find something in the local file) cntl-shift-F (find something in the project) Go to file in code (on mac, replace cntrl with command) cntl-N | Cmd-O (go to files typically in src) cntl-shift-n | Cmd-shift-O (go to any file, including res) cntl-E (open recent files) Go to file in project alt-F1

Go to definition cntl-B (go directly to the method definition) Javadocs cntl-Q (open the javadocs) Live Templates cntl-J adding your own Live Templates (cntl-shift-A “live template”)

ADB (Android Device Bridge) adb kill-server adb start-server adb get-state adb devices Use kill-server / start-server to reboot the adb if your device/emulator is not communicating with your dev-machine. How to export path using Mac.

Debugging Android Studio http://developer.android.com/guide/topics/resources/providing-resources.html 7

Debugging Using the debugger (alt-5) See bookmarks and breakpoints (alt-2) F11 to toggle bookmark Using logcat (alt-6) Using lint and AS analyzer: Analyze || Inspect Code ///TODO this is my todo message

6/9/12

SP scale independent pixels respects the users' settings for font size. 6/9/12

Fragments...what good are they? 6/9/12

Intents 13

From Google: An Intent object is a bundle of information From Google: An Intent object is a bundle of information. It contains information of interest to the component that receives the intent (such as the action to be taken and the data to act on) plus information of interest to the Android system (such as the category of component that should handle the intent and instructions on how to launch a target activity)

Activated by Intents Activities Services Broadcast Receivers (aka Receivers) (http://developer.android.com/guide/componen ts/intents-filters.html) 18

Explicit Intent //Explicit; all you need is the Context and the target class Intent itn = new Intent(this, ResultActivity.class); ResultActivity.class Explicit

Explicit Intent //Explicit; all you need is the packageContext and the target class Intent itn = new Intent(this, ResultActivity.class); itn.putExtra(QuizActivity.CORRECT, mCorrect); itn.putExtra(QuizActivity.INCORRECT, mIncorrect); itn.putExtra(QuizActivity.NAME, mName); CORRECT: 5 INCORRECT: 3 PLAYER: Adam ResultActivity.class Explicit

Intent Architecture::Action/Data/etc //Explicit; all you need is the ComponentName and optionally the bundle. //Implicit; usually Action/Data and then optionally the bundle. name : Adam Gerber email : gerber@cs.uchicago.edu ret : something... Action Data Scheme Categories ComponentName Explicit Implicit

Explicit Intents: intra-app call by name //******************************** //This method works great for intra-app calls between activities //use the calling class and the called class as params to constructor. Intent itn = new Intent(this, Second.class); startActivity(itn); //

Explicit Intents: intra-app call by name Intent itnThird = new Intent(this, ThirdActivity.class); itnThird.putExtra("name", "Adam Gerber"); itnThird.putExtra("email", "gerber@uchicago.edu"); startActivity(itnThird);

Implicit Intents: inter-app call Implicit intents are anonymous and loosely-coupled. You request the component like a service of the operating system. Intent itn = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com/")); startActivity(itn);

Implicit Intents: Action/Data pairs ACTION_VIEW content://contacts/people/1 -- Display information about the person whose identifier is "1". ACTION_DIAL content://contacts/people/1 -- Display the phone dialer with the person filled in. ACTION_VIEW tel:1234448888 -- Display the phone dialer with the given number filled in. Note how the VIEW action does what what is considered the most reasonable thing for a particular URI. ACTION_DIAL tel:1235553333 -- Display the phone dialer with the given number filled in. ACTION_EDIT content://contacts/people/1 -- Edit information about the person whose identifier is "1". ACTION_VIEW content://contacts/people/ -- Display a list of people, which the user can browse through. This example is a typical top-level entry into the Contacts application, showing you the list of people.

Intent Architecture::Bundle (aka extras) //The bundle is a data structure inside the Intent. //It holds key/value pairs. //Keys are always Strings, and values are always primitives, Serializable or Parcelable. name : Adam Gerber email : gerber@cs.uchicago.edu ret : something... Action Data Scheme Categories ComponentName ssfdf exp imp

Serializable versus Parcelable Parcelable is an Interface very much like Serializable only it has been optimized for Android. Unlike Serializeable, all the reflection meta-data has been stripped-out of the parcelized object.  

Intents Intent messaging is a facility for late run-time binding between components in the same or different applications.  Intents are handled by the Android OS. In order for the OS to know about a component, it must be declared in the application manifest file. If a component does not define Intent filters, it can only be called by explicit Intents. A component with filters can receive both explicit and implicit intents. 6/12/12

AndroidManifest.xml file Is an inventory of all the components in an application. If the component is not listed there, the Android OS won't know it's there. Not even intra-app component communication will resolve. 6/12/12

Android OS AndroidManifest.xml I *A A A *A Activies, Receivers, Services, and Content-Providers all must be declared in the manifest. Intnets are calls to the op-system. It handles all intents, explicit and implicit.

Categories //Use Categories to further refine your Intent //Most important is CATEGORY_DEFAULT <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>

Lifecycle in Android http://developer.android.com/guide/topics/resources/providing-resources.html 32

ListViews and Adapters http://developer.android.com/guide/topics/resources/providing-resources.html 36

Adapters 37

AdapterViews 38

how to copy files from a bc branch to a lb branch Actions || Open in Terminal git checkout c7c7 res/drawable-*/. git checkout c7c7 res/values/str* before a commit you may remove from stage, then: discard: for existing files that you want to roll back remove: for new files that you want to delete