A multi-layered software stack for building and · A multi-layered software stack for building and...

48

Transcript of A multi-layered software stack for building and · A multi-layered software stack for building and...

Page 1: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 2: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 3: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

A multi-layered software stack for building and running mobile applications

Page 4: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Your workbench for writing Android applications

See:https://developer.android.com/studio/intro/

Page 5: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Downloading Android SDK

Using the Android Studio IDE

Using the Android emulator

Debugging Android applications

Other tools

Page 6: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Supported Operating Systems:Microsoft Windows 7/8/10 (32- or 64-bit)

Mac OS X 10.10 (Yosemite) up to 10.14 (Mojave)

GNOME or KDE desktop (tested on Ubuntu 14.04 LTS, Trusty Tahr)

Chrome OS

Page 7: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

4 GB RAM min, 8 GB RAM rec

2-4 GB+ for Android SDK, emulator system images, and caches

1280 x 800 min screen resolution

Page 8: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Download & install Android Studio

See: https://developer.android.com/studio/

Page 9: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Android platform

Android Studio IDE

Key development tools

System image for emulator

Page 10: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

HelloWorld

Page 11: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

package course.examples.helloworld

import android.app.Activityimport android.os.Bundle

class MainActivity : Activity() {

override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)

}}

Page 12: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Runs virtual devices

Page 13: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 14: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 15: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

ProsDoesn’t require an actual phone

Hardware is reconfigurable

Changes are non-destructive

Page 16: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

ConsSlower than an actual device

Some features unavailablee.g., no support for Bluetooth, USB connections, NFC, etc.

Performance / user experience can be misleading

Page 17: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Can emulate many different device/user characteristics, such as:

Network speed/latencies

Battery power

Location coordinates

Page 18: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Change network speeds

Page 19: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 20: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Emulate incoming phone calls & SMS messages

Page 21: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 22: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 23: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Can interconnect multiple emulators

Page 24: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 25: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 26: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Many more options

See:

https://developer.android.com/studio/run/emulator.html

Page 27: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Tool for examining the internal state of a running application

Page 28: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

TheAnswer

Page 29: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

class TheAnswer : Activity() {companion object {

private val answers = intArrayOf(42, -10, 0, 100, 1000)private const val answer = 42private const val TAG = "TheAnswer"

}

override fun onCreate(savedInstanceState: Bundle?) {// Required call through to Activity.onCreate()// Restore any saved instance statesuper.onCreate(savedInstanceState)

// Set up the application's user interface (content view)setContentView(R.layout.answer_layout)val value = findAnswer()

Page 30: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

val output = if (value != null) answer.toString() else getString(R.string.never_know_string)

// Get a reference to a TextView in the content viewval answerView = findViewById<TextView>(R.id.answer_view)// Set desired text in answerView TextViewanswerView.text = output

}private fun findAnswer(): Int? {

Log.d(TAG, "Entering findAnswer()")// Incorrect behaviorreturn answers.firstOrNull { it == -answer }// Correct behavior// return answers.firstOrNull { it == answer }

}}

Page 31: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 32: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Android Studio provides numerous tools for monitoring application behaviors

Page 33: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Device File Explorer

Logcat

CPU Profiler

Layout Inspector

Page 34: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

View, copy, and delete files on your device

Often used to examine and verify file creation and transfer

Page 35: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 36: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 37: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Write and review log messages

Apps use Log class to write messages to log

Developer can search and filter log messages

Page 38: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 39: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 40: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Logs execution sequences and timing taken from a running application

Graphically displays method traces and metrics

Page 41: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 42: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 43: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 44: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Shows the runtime organization of the user interface

Page 45: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 46: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:
Page 47: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

Application Fundamentals

Page 48: A multi-layered software stack for building and · A multi-layered software stack for building and running mobile applications. Your workbench for writing Android applications See:

HelloWorld

TheAnswer