Leak Canary Intro Jennifer McGee
|
|
- Dylan Parsons
- 5 years ago
- Views:
Transcription
1 Leak Canary Intro Jennifer McGee 1
2 Leak Canary What is Leak Canary? Open source library written by Square s Pierre-Yves (PY) Ricau Library which attempts to automatically detect and report memory leaks in android
3 Leak Cannary Memory Leaks in Java 3
4 GC Overview Objects Reachable Object Object Object Object from GC Roots Object Object GC Root GC Root GC Roots 4
5 GC Overview Not Reachable from GC Root Object Object Object Object Can be garbage collected Object Object GC Root GC Root GC Roots 5
6 Leak Cannary How Leak Canary Works 6
7 Android Memory Leaks Basic Idea 1) Identify objects you are worried about leaking 2) When they are destroyed keep a week reference 3) Wait 4) If not garbage collected notify of possible memory leak 7
8 Leak Canary Key Classes 8
9 Leak Canary What does RefWatcher Coordinate 9
10 Android Memory Leaks How Do We Guess when activities Should have been garbage collected? 10
11 RecyclerView Q: How can we guess when fragments should have been garbage collected? A: Extend Fragment public abstract class BaseFragment extends Fragment public void ondestroy() { super.ondestroy(); RefWatcher refwatcher = ExampleApplication.getRefWatcher(getActivity()); refwatcher.watch(this); } } 11
12 Leak Cannary Leak Canary Leak Demo 12
13 Leak Cannary Activity that Will Leak public class MainActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main_activity); View button = findviewbyid(r.id.async_task); button.setonclicklistener(new View.OnClickListener() public void onclick(view v) { startasynctask(); } }); } void startasynctask() { // This async task is an anonymous class and therefore has a hidden reference to the outer // class MainActivity. If the activity gets destroyed before the task finishes (e.g. rotation), // the activity instance will leak. new AsyncTask<Void, Void, Void>() protected Void doinbackground(void... params) { // Do some slow work in background SystemClock.sleep(20000); return null; } }.execute(); } } 13
14 Leak Cannary What a Leak Log Looks Like :52: /com.example.leakcanary D/LeakCanary: In com.example.leakcanary:1.0:1. What has Leaked GC Root :52: /com.example.leakcanary D/LeakCanary: * com.example.leakcanary.mainactivity has leaked: :52: /com.example.leakcanary D/LeakCanary: * GC ROOT thread java.lang.thread.<java Local> (named 'AsyncTask #2 ) :52: /com.example.leakcanary D/LeakCanary: * references com.example.leakcanary.mainactivity$2.this$0 (anonymous subclass of android.os.asynctask) :52: /com.example.leakcanary D/LeakCanary: * leaks com.example.leakcanary.mainactivity instance How much Memory :52: /com.example.leakcanary D/LeakCanary: * Retaining: 260KB. Reference Key :52: /com.example.leakcanary D/LeakCanary: * Reference Key: f856c32b-53ad-4f31-bb5b-a51c c :52: /com.example.leakcanary D/LeakCanary: * Device: Genymotion generic Samsung Galaxy S API x1920 vbox86p :52: /com.example.leakcanary D/LeakCanary: * Android Version: API: 19 LeakCanary: 1.4-SNAPSHOT 14
15 Android Memory Leaks How to Setup Leak Canary in your App 15
16 RecyclerView Basic Leak Canary Setup In your Gradle File: dependencies { debugcompile 'com.squareup.leakcanary:leakcanary-android:1.3.1' releasecompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' testcompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' } In your Application Class: public class ExampleApplication extends Application public void oncreate() { super.oncreate(); LeakCanary.install(this); } } 16
17 Android Memory Leaks What about Memory Leaks you Can t Fix? 17
18 LeakCanary What Does LeakCanary.install(this) do? Lets look at the source public static RefWatcher install(application application) { return install(application, DisplayLeakService.class, } AndroidExcludedRefs.createAppDefaults().build()); public static RefWatcher install(application application, Class<? extends AbstractAnalysisResultService> listenerserviceclass, ExcludedRefs excludedrefs) { We pass in Excluded Refs Object Look there it has an overwritten constructor! 18
19 LeakCanary How To Add 3rd Party Exclusions ExcludedRefs excludedrefs = AndroidExcludedRefs.createAppDefaults().instanceField("com.example.third.party.TheirClassOne", "fieldname").instancefield("com.example.third.party.theirclasstwo", "fieldname").build(); LeakCanary.install(application, DisplayLeakService.class, excludedrefs); Add in the additional exclusions here 19
20 LeakCanary Excluded Refs Builder Interface public interface Builder { BuilderWithParams instancefield(string classname, String fieldname); BuilderWithParams staticfield(string classname, String fieldname); BuilderWithParams thread(string threadname); BuilderWithParams clazz(string classname); BuilderWithParams rootclass(string rootsuperclassname); ExcludedRefs build(); } 20
21 LeakCanary Known Android SDK Leaks are in AndroidExcludedRefs.java Parts of an Excluded Leak: Name (Manufacturer and SDK void add(excludedrefs.builder excluded) { excluded.type of field <instance,static,root class, clazz>( full.path.classtoignore, field that was leaked") } } }.reason( comment reason for the leak ); AndroidExcludedRefs.java 21
22 Android Memory Leaks Leak Canary Gotcha s 22
23 Leak Cannary Leak Canary on 6.0 and latter phones 23
24 Leak Cannary Leak Canary on 6.0 and latter phones Here is what you see in the Log :37: /com.example.leakcanary D/LeakCanary: Could not attempt cleanup, leak storage not writable :37: /com.example.leakcanary D/LeakCanary: Could not write to leak storage to dump heap. Cause: LeakCannary needs to write out heap dumps to external storage, so it needs the read and write external permissions, but on 6.0 this must be requested at run time Fix: use 1.4-beta1 or latter enable storage permission when notification pops up notification 24
25 Android Memory Leaks Fun with OQL 25
26 Leak Cannary To find the referenced object in HPROF To find your leaked object in the hprof file SELECT * FROM INSTANCEOF com.squareup.leakcanary.keyedweakreference a WHERE a.key = <Reference Key from Log> If you don t have LeakCanary but do have hprof SELECT * FROM INSTANCEOF android.app.activity a WHERE a.mdestroyed = true 26
27 27
28 Special Thanks to Bottle Rocket Studios for providing meeting space and allowing me to share this material which is a simplified version of material presentation at a weekly code and tell. More Resources Questions? 28
Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB)
Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB) In this exercise, we will create a simple Android application that uses IBM Bluemix Cloudant NoSQL DB. The application
More informationCS 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 informationAndroid/Java Lightning Tutorial JULY 30, 2018
Android/Java Lightning Tutorial JULY 30, 2018 Java Android uses java as primary language Resource : https://github.mit.edu/6178-2017/lec1 Online Tutorial : https://docs.oracle.com/javase/tutorial/java/nutsandbolts/inde
More informationUnderstand 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 informationTable of Content. CLOUDCHERRY Android SDK Manual
Table of Content 1. Introduction: cloudcherry-android-sdk 2 2. Capabilities 2 3. Setup 2 4. How to create static token 3 5. Initialize SDK 5 6. How to trigger the SDK? 5 7. How to setup custom legends
More informationLECTURE 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 informationWireless Vehicle Bus Adapter (WVA) Android Library Tutorial
Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial Revision history 90001431-13 Revision Date Description A October 2014 Original release. B October 2017 Rebranded the document. Edited the document.
More informationAndroid About.me/DavidCorrado Mobile Meetup Organizer
Android Tips/Tricks @DavidCorrado About.me/DavidCorrado Mobile Meetup Organizer IDE Don t Use Eclipse Use either Android Studio/IntelliJ They are basically the same thing. They are both built off of IntelliJ
More informationAndroid. 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 informationEMBEDDED 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 informationINTRODUCTION 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 informationServices. Background operating component without a visual interface Running in the background indefinitely
Services Background operating component without a visual interface Running in the background indefinitely Differently from Activity, Service in Android runs in background, they don t have an interface
More informationLifecycle-Aware Components Live Data ViewModel Room Library
Lifecycle-Aware Components Live Data ViewModel Room Library Multiple entry points launched individually Components started in many different orders Android kills components on reconfiguration / low memory
More informationLifeStreet 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 informationVienos 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 informationOverview 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 informationBuilding MyFirstApp Android Application Step by Step. Sang Shin Learn with Passion!
Building MyFirstApp Android Application Step by Step. Sang Shin www.javapassion.com Learn with Passion! 1 Disclaimer Portions of this presentation are modifications based on work created and shared by
More informationUNDERSTANDING 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 informationTheme 2 Program Design. MVC and MVP
Theme 2 Program Design MVC and MVP 1 References Next to the books used for this course, this part is based on the following references: Interactive Application Architecture Patterns, http:// aspiringcraftsman.com/2007/08/25/interactiveapplication-architecture/
More informationTablets 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 informationGetting Started With Android Feature Flags
Guide Getting Started With Android Feature Flags INTRO When it comes to getting started with feature flags (Android feature flags or just in general), you have to understand that there are degrees of feature
More informationAndroid Tutorial: Part 3
Android Tutorial: Part 3 Adding Client TCP/IP software to the Rapid Prototype GUI Project 5.2 1 Step 1: Copying the TCP/IP Client Source Code Quit Android Studio Copy the entire Android Studio project
More informationANDROID 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 informationANDROID 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 informationIntroduction to Android
Introduction to Android http://myphonedeals.co.uk/blog/33-the-smartphone-os-complete-comparison-chart www.techradar.com/news/phone-and-communications/mobile-phones/ios7-vs-android-jelly-bean-vs-windows-phone-8-vs-bb10-1159893
More informationMobile Application Development
Mobile Application Development MTAT.03.262 Jakob Mass jakob.mass@ut.ee Goal Give you an idea of how to start developing mobile applications for Android Introduce the major concepts of Android applications,
More informationMOBILE APPLICATION DEVELOPMENT LECTURE 10 SERVICES IMRAN IHSAN ASSISTANT PROFESSOR
MOBILE APPLICATION DEVELOPMENT LECTURE 10 SERVICES IMRAN IHSAN ASSISTANT PROFESSOR WWW.IMRANIHSAN.COM Android Component A Service is an application component that runs in the background, not interacting
More informationCreate new Android project in Android Studio Add Button and TextView to layout Learn how to use buttons to call methods. Modify strings.
Hello World Lab Objectives: Create new Android project in Android Studio Add Button and TextView to layout Learn how to use buttons to call methods. Modify strings.xml What to Turn in: The lab evaluation
More informationIntroduction to Android development
Introduction to Android development Manifesto Digital We re an award winning London based digital agency that loves ideas design and technology We aim to make people s lives better, easier, fairer, more
More informationLab 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 informationGetting Started ArcGIS Runtime SDK for Android. Andy
Getting Started ArcGIS Runtime SDK for Android Andy Gup @agup Agenda Introduction Runtime SDK - Tools and features Maps & Layers Tasks Editing GPS Offline Capabilities Summary My contact info Andy Gup,
More informationDatabase Development In Android Applications
ITU- FAO- DOA- TRCSL Training on Innovation & Application Development for E- Agriculture Database Development In Android Applications 11 th - 15 th December 2017 Peradeniya, Sri Lanka Shahryar Khan & Imran
More informationCS 4518 Mobile and Ubiquitous Computing Lecture 4: WebView (Part 2) Emmanuel Agu
CS 4518 Mobile and Ubiquitous Computing Lecture 4: WebView (Part 2) Emmanuel Agu WebView Widget WebView Widget A View that displays web pages Can be used for creating your own web browser OR just display
More informationServices. service: A background task used by an app.
CS 193A Services This document is copyright (C) Marty Stepp and Stanford Computer Science. Licensed under Creative Commons Attribution 2.5 License. All rights reserved. Services service: A background task
More informationAndrosia Securing 'data in process' for your Android Apps
Androsia Securing 'data in process' for your Android Apps C:\>whoami Samit Anwer Product Security Team @Citrix R&D India Pvt Ltd Web/Mobile App Security Enthusiast Speaker: AppSec USA (Orlando, USA) 2017,
More informationDiving 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 informationMobile Programming Practice Background processing AsynTask Service Broadcast receiver Lab #5
1 Mobile Programming Practice Background processing AsynTask Service Broadcast receiver Lab #5 Prof. Hwansoo Han T.A. Sung-in Hong T.A. Minseop Jeong 2 Background processing Every Android app has a main
More informationActivities. 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 informationEMBEDDED 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 informationReal-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 informationAndroid Coding. Dr. J.P.E. Hodgson. August 23, Dr. J.P.E. Hodgson () Android Coding August 23, / 27
Android Coding Dr. J.P.E. Hodgson August 23, 2010 Dr. J.P.E. Hodgson () Android Coding August 23, 2010 1 / 27 Outline Starting a Project 1 Starting a Project 2 Making Buttons Dr. J.P.E. Hodgson () Android
More informationCheetah Orion Ad Platform SDK Guide (for Android) V1.0
Cheetah Orion Ad Platform SDK Guide (for Android) V1.0 Cheetah Mobile Date 2015-11-12 Version 1.0 1 Introduction... 3 2 Integration Workflow... 3 2.1 Integration Workflow... 3 2.2 Load Cheetah Orion Ad
More informationAbout 1. Chapter 1: Getting started with dagger-2 2. Remarks 2. Versions 2. Examples 2. Description and Setup 2. Basic Example 3.
dagger-2 #dagger-2 Table of Contents About 1 Chapter 1: Getting started with dagger-2 2 Remarks 2 Versions 2 Examples 2 Description and Setup 2 Basic Example 3 Android example 4 Learn Dagger2 with simple
More informationGoogle Maps Troubleshooting
Google Maps Troubleshooting Before you go through the troubleshooting guide below, make sure that you ve consulted the class FAQ, Google s Map Activity Tutorial, as well as these helpful resources from
More informationEclipse Memory Analyzer Release Review
Eclipse Memory Analyzer Release Review Review Date: Dec 10, 2008 Community Channel: mailto:mat-dev@eclipse.org http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.memory-analyzer Author:
More informationLogin with Amazon. Getting Started Guide for Android apps
Login with Amazon Getting Started Guide for Android apps Login with Amazon: Getting Started Guide for Android Copyright 2017 Amazon.com, Inc., or its affiliates. All rights reserved. Amazon and the Amazon
More informationVoice Control SDK. Vuzix M100 Developer SDK. Developer Documentation. Ron DiNapoli Vuzix Corporation Created: July 22, 2015 Last Update: July 22, 2015
Voice Control SDK Vuzix M100 Developer SDK Ron DiNapoli Vuzix Corporation Created: July 22, 2015 Last Update: July 22, 2015 Developer Documentation Introduction The Vuzix Voice Control SDK allows you to
More informationEMBEDDED SYSTEMS PROGRAMMING UI Specification: Approaches
EMBEDDED SYSTEMS PROGRAMMING 2016-17 UI Specification: Approaches UIS: APPROACHES Programmatic approach: UI elements are created inside the application code Declarative approach: UI elements are listed
More informationFragments. Lecture 10
Fragments Lecture 10 Situa2onal layouts Your app can use different layouts in different situa2ons Different device type (tablet vs. phone vs. watch) Different screen size Different orienta2on (portrait
More informationPreview from Notesale.co.uk Page 13 of 72
sensordata=0; private void calibrate(int iseed) // Do some calibration here protected void seedcalibration(int iseed) calibrate(iseed); public int getsensordata() // Check sensor here return sensordata;
More informationCSCU9YH Development with Android
CSCU9YH Development with Android Computing Science and Mathematics University of Stirling 1 Android Context 3 Smartphone Market share Source: http://www.idc.com/promo/smartphone-market-share/os 4 Smartphone
More informationAndroid 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 informationAn Overview of the Android Programming
ID2212 Network Programming with Java Lecture 14 An Overview of the Android Programming Hooman Peiro Sajjad KTH/ICT/SCS HT 2016 References http://developer.android.com/training/index.html Developing Android
More informationAndroid Debug Framework
Android Debug Framework (Logcat, DDMS, Debug, Exception Handling, Third Party APIs) Sisoft Technologies Pvt Ltd SRC E7, Shipra Riviera Bazar, Gyan Khand-3, Indirapuram, Ghaziabad Website: www.sisoft.in
More informationBlackBerry Developer Global Tour. Android. Table of Contents
BlackBerry Developer Global Tour Android Table of Contents Page 2 of 55 Session - Set Up the BlackBerry Dynamics Development Environment... 5 Overview... 5 Compatibility... 5 Prepare for Application Development...
More informationSoftware Engineering Large Practical: Preferences, storage, and testing
Software Engineering Large Practical: Preferences, storage, and testing Stephen Gilmore (Stephen.Gilmore@ed.ac.uk) School of Informatics November 9, 2016 Contents A simple counter activity Preferences
More informationBasic GUI elements - exercises
Basic GUI elements - exercises https://developer.android.com/studio/index.html LIVE DEMO Please create a simple application, which will be used to calculate the area of basic geometric figures. To add
More informationAndroid Application Development using Kotlin
Android Application Development using Kotlin 1. Introduction to Kotlin a. Kotlin History b. Kotlin Advantages c. How Kotlin Program Work? d. Kotlin software Prerequisites i. Installing Java JDK and JRE
More informationMobile and Ubiquitous Computing: Android Programming (part 4)
Mobile and Ubiquitous Computing: Android Programming (part 4) Master studies, Winter 2015/2016 Dr Veljko Pejović Veljko.Pejovic@fri.uni-lj.si Examples from: Mobile and Ubiquitous Computing Jo Vermeulen,
More informationMobile 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 informationMobile Development Lecture 10: Fragments
Mobile Development Lecture 10: Fragments Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Elgayyar.weebly.com Situational Layouts Your app can use different layout in different situations: different device type
More informationFragments. Lecture 11
Fragments Lecture 11 Situational layouts Your app can use different layouts in different situations Different device type (tablet vs. phone vs. watch) Different screen size Different orientation (portrait
More informationEclipse Memory Analyzer Release Review 0.8
Eclipse Memory Analyzer Release Review 0.8 Review Date: May 29, 2008 Community Channel: mailto:mat-dev@eclipse.org http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.memory-analyzer
More informationFramework. Set of cooperating classes/interfaces. Example: Swing package is framework for problem domain of GUI programming
Frameworks 1 Framework Set of cooperating classes/interfaces Structure essential mechanisms of a problem domain Programmer can extend framework classes, creating new functionality Example: Swing package
More informationNeed to Node: Profiling Node.js Applications
Need to Node: Profiling Node.js Applications Patrick Mueller January 19, 2016 Questions during the Need to Node webinar? Post a question to Twitter with the hashtag: #needtonode 2 NodeSource is the Enterprise
More information... 1... 2... 2... 3... 3... 4... 4... 5... 5... 6... 6... 7... 8... 9... 10... 13... 14... 17 1 2 3 4 file.txt.exe file.txt file.jpg.exe file.mp3.exe 5 6 0x00 0xFF try { in.skip(9058); catch (IOException
More informationCS 528 Mobile and Ubiquitous Computing Lecture 3: Android UI, WebView, Android Activity Lifecycle Emmanuel Agu
CS 528 Mobile and Ubiquitous Computing Lecture 3: Android UI, WebView, Android Activity Lifecycle Emmanuel Agu Android UI Design Example GeoQuiz App Reference: Android Nerd Ranch, pgs 1 30 App presents
More information<uses-permission android:name="android.permission.internet"/>
Chapter 11 Playing Video 11.1 Introduction We have discussed how to play audio in Chapter 9 using the class MediaPlayer. This class can also play video clips. In fact, the Android multimedia framework
More informationSEVEN ADVANCED ACADEMY
SEVEN ADVANCED ACADEMY Course Schedule MOBILE APP PROGRAMMING Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Lesson 1 Lesson 2 Lesson 3 Lesson 4 Lesson 5 Lesson 6 Lesson 7 Lesson 8 Lesson 9 Lesson
More informationAdFalcon Android SDK Developer's Guide. AdFalcon Mobile Ad Network Product of Noqoush Mobile Media Group
AdFalcon Android SDK 400 Developer's Guide AdFalcon Mobile Ad Network Product of Noqoush Mobile Media Group Table of Contents 1 Introduction 3 Prerequisites 3 2 Project Configurations 4 Step 1: Add the
More informationLecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.
CSCE 315: Android Lectures (1/2) Dr. Jaerock Kwon App Development for Mobile Devices Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering App Development for Mobile Devices Jaerock Kwon, Ph.D.
More informationAndroid Essentials with Java
Android Essentials with Java Before You Program o Exercise in algorithm generation Getting Started o Using IntelliJ CE Using Variables and Values o Store data in typed variables Static Methods o Write
More informationSoftware 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 informationATC Android Application Development
ATC Android Application Development 1. Android Framework and Android Studio b. Android Platform Architecture i. Linux Kernel ii. Hardware Abstraction Layer(HAL) iii. Android runtime iv. Native C/C++ Libraries
More informationCompilers. 8. Run-time Support. Laszlo Böszörmenyi Compilers Run-time - 1
Compilers 8. Run-time Support Laszlo Böszörmenyi Compilers Run-time - 1 Run-Time Environment A compiler needs an abstract model of the runtime environment of the compiled code It must generate code for
More informationUI 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 informationMobile Application Development
Mobile Application Development donation-web api { method: 'GET', path: '/api/candidates', config: CandidatesApi.find, { method: 'GET', path: '/api/candidates/{id', config: CandidatesApi.findOne, { method:
More informationCS260 Intro to Java & Android 03.Java Language Basics
03.Java Language Basics http://www.tutorialspoint.com/java/index.htm CS260 - Intro to Java & Android 1 What is the distinction between fields and variables? Java has the following kinds of variables: Instance
More informationTishik Int. University / College of Science / IT Dept. This Course based mainly on online sources ADVANCED MOBILE APPLICATIONS / Spring 1
ADVANCED MOBILE APPLICATIONS / 2018-2019 Spring Tishik Int. University / College of Science / IT Dept. Presented By: Mohammad Salim Al-Othman For 4 th Grade Students This Course based mainly on online
More informationAndroid Programmierung leichtgemacht. Lars Vogel
Android Programmierung leichtgemacht Lars Vogel Twitter: @vogella Lars Vogel Arbeitet als unabhängiger Eclipse und Android Berater und Trainer Arbeit zusätzlichen für SAP AG als Product Owner in einem
More informationProduced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar
Design Patterns MSc in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More information05. RecyclerView and Styles
05. RecyclerView and Styles 08.03.2018 1 Agenda Intents Creating Lists with RecyclerView Creating Cards with CardView Application Bar Menu Styles and Themes 2 Intents 3 What is Intent? An Intent is an
More informationUniversity of Stirling Computing Science Telecommunications Systems and Services CSCU9YH: Android Practical 1 Hello World
University of Stirling Computing Science Telecommunications Systems and Services CSCU9YH: Android Practical 1 Hello World Before you do anything read all of the following red paragraph! For this lab you
More information1. Implementation of Inheritance with objects, methods. 2. Implementing Interface in a simple java class. 3. To create java class with polymorphism
ANDROID TRAINING COURSE CONTENT SECTION 1 : INTRODUCTION Android What it is? History of Android Importance of Java language for Android Apps Other mobile OS-es Android Versions & different development
More informationJava Basics A Simple Hit the Zombies Game
Lecture #3 Introduction Java Basics A Simple Hit the Zombies Game The previous lecture provided a guided tour to explore the basics of Android Studio and how to use it to create a project to build an Android
More informationCOMP4521 EMBEDDED SYSTEMS SOFTWARE
COMP4521 EMBEDDED SYSTEMS SOFTWARE LAB 1: DEVELOPING SIMPLE APPLICATIONS FOR ANDROID INTRODUCTION Android is a mobile platform/os that uses a modified version of the Linux kernel. It was initially developed
More informationServices. Marco Ronchetti Università degli Studi di Trento
1 Services Marco Ronchetti Università degli Studi di Trento Service An application component that can perform longrunning operations in the background and does not provide a user interface. So, what s
More informationEmbedded 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 informationFragments 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 informationandroid-espresso #androidespresso
android-espresso #androidespresso Table of Contents About 1 Chapter 1: Getting started with android-espresso 2 Remarks 2 Examples 2 Espresso setup instructions 2 Checking an Options Menu items (using Spoon
More informationGetting started with Encap Client API for Android - version-3.3
Pages / / Device client documentation - version-3.3 Getting started with Encap Client API for Android - version-3.3 Created by Johan Sörmling, last modified on Dec 01, 2016 1 Introduction 1.1 About Encap
More informationDeveloping Android Applications Introduction to Software Engineering Fall Updated 1st November 2015
Developing Android Applications Introduction to Software Engineering Fall 2015 Updated 1st November 2015 Android Lab 3 & Midterm Additional Concepts No Class Assignment 2 Class Plan Android : Additional
More informationprofiling Node.js applications
Patrick Mueller @pmuellr, muellerware.org senior node engineer at NodeSource http://pmuellr.github.io/slides/2017/01-profiling-node http://pmuellr.github.io/slides/2017/01-profiling-node/slides.pdf http://pmuellr.github.io/slides/
More informationIEMS 5722 Mobile Network Programming and Distributed Server Architecture
Department of Information Engineering, CUHK MScIE 2 nd Semester, 2016/17 IEMS 5722 Mobile Network Programming and Distributed Server Architecture Lecture 1 Course Introduction Lecturer: Albert C. M. Au
More informationWhen programming in groups of people, it s essential to version the code. One of the most popular versioning tools is git. Some benefits of git are:
ETSN05, Fall 2017, Version 1.0 Software Development of Large Systems Lab 2 preparations Read through this document carefully. In order to pass lab 2, you will need to understand the topics presented in
More informationEffective Java Heap Memory Analysis on Enterprise-Scale SAP Memory Analyzer. Vedran Lerenc, SAP NetWeaver Java Server Technology October 11th 2007
Effective Java Heap Memory Analysis on Enterprise-Scale SAP Memory Analyzer Vedran Lerenc, SAP NetWeaver Java Server Technology October 11th 2007 Memory 101 Heap MB Full Garbage Collection 2 a.m. Out Of
More informationMVC Apps Basic Widget Lifecycle Logging Debugging Dialogs
Overview MVC Apps Basic Widget Lifecycle Logging Debugging Dialogs Lecture: MVC Model View Controller What is an App? Android Activity Lifecycle Android Debugging Fixing Rotations & Landscape Layouts Localization
More informationGetting 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 informationUnderstanding 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 informationAndroid 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