SlideShare ist ein Scribd-Unternehmen logo
1 von 89
Downloaden Sie, um offline zu lesen
1 / 89
PPTB (ET-4044)
Android
Programming
Basics
Eueung Mulyana
https://eueung.github.io/012017/android1
CodeLabs | Attribution-ShareAlike CC BY-SA
Outline
Android & Android Studio
App Development
Building Your First App
2 / 89
Notes
Android Studio 2.3.3 (Stable Channel)
A copy of the latest OpenJDK comes bundled with Android Studio 2.2 and higher, and this is the
JDK version recommended for your Android projects. Ref: [Con gure Android Studio]
3 / 89
Android & Android Studio
4 / 89
5 / 89
What is
Android
Mobile operating system based on Linux kernel
User Interface for touch screens
Used on over 80% of all smartphones
Powers devices such as watches, TVs, and cars
Over 2 Million Android apps in Google Play store
Highly customizable for devices / by vendors
Open source
Ref: Android Developer Fundamentals
Android Versions
6 / 89
7 / 89
Android
Studio+ Android SDK
O cial Android IDE
Develop, run, debug, test, and package
apps
Monitors and performance tools
Virtual devices
Project views
Visual layout editor
Ref: Android Developer Fundamentals
8 / 89
Logical Areas
1. Toolbar
2. Navigation Bar
3. Editor Window
4. Tool Window Bar (Expand/Collapse)
5. Tool Window
6. Status Bar
9 / 89
Layout Editor
Project Window (1)
Palette of UI Elements (2)
Selectors (3)
Design Pane (6)
Component Tree (7)
Design/Text Tabs (8)
10 / 89
Layout Editor
Properties Pane (4)
Text Property of TextView (5)
App Development
11 / 89
12 / 89
Android
App
One or more interactive screens
Written using Java Programming
Language and XML (*)
Uses the Android Software Development
Kit (SDK)
Uses Android libraries and Android
Application Framework
Executed by Android Runtime Virtual
machine (ART)
Ref: Android Developer Fundamentals
13 / 89
Android
Challenges
Multiple screen sizes and resolutions
Performance: make your apps responsive and smooth
Security: keep source code and user data safe
Compatibility: run well on older platform versions
Marketing: understand the market and your users (Hint: It
doesn't have to be expensive, but it can be.)
14 / 89
App
Building
Blocks
Resources: layouts, images, strings, colors as XML and
media les
Components: activities, services,... and helper classes as
Java code
Manifest: information about app for the runtime
Build con guration: APK versions in Gradle con g les
15 / 89
Component
Types
Activity is a single screen with a user interface
Service performs long-running tasks in background
Content provider manages shared set of data
Broadcast receiver responds to system-wide
announcements
16 / 89
Think of
Android as a
Hotel
Your App is the guest
The Android System is the hotel manager
Services are available when you request them (Intents)
In the foreground (Activities) such as registration
In the background (Services) such as laundry
Calls you when a package has arrived (Broadcast Receiver)
Access the city's tour companies (Content Provider)
Ref: Android Developer Fundamentals
Android Studio
Building Your First App
17 / 89
18 / 89
Building
Your First App
1. Create an Android Project
2. Run Your App
3. Build a Simple User Interface
4. Start Another Activity
Create an Android Project
19 / 89
Start a New Project 20 / 89
Adjust Application name (& Company domain) 21 / 89
Set Target Devices 22 / 89
Co ee Time ... (If SDK components not yet locally available) 23 / 89
Add Empty Activity 24 / 89
Adjust Activity Name (& Layout Name) 25 / 89
Project Window | app>java> ... >MainActivity.java 26 / 89
app>res>layout>activity_main.xml (Design View)
27 / 89
app>res>layout>activity_main.xml (Text View)
28 / 89
app>manifests>AndroidManifest.xml 29 / 89
@string/app_name 30 / 89
@string/app_name 31 / 89
Run Your App
On an Emulator | On a Real Device
32 / 89
Launch AVD Manager 33 / 89
Create Virtual Device 34 / 89
Select Hardware | Phone 35 / 89
Download System Image (If it's not already there) 36 / 89
Co ee Time ... 37 / 89
Select System Image 38 / 89
Verify -> Finish 39 / 89
Launch this AVD in the Emulator 40 / 89
AVD Launched 41 / 89
Run the App 42 / 89
Select Target 43 / 89
Showtime! 44 / 89
Run Your App
On an Emulator | On a Real Device
45 / 89
46 / 89
USB Debugging
Settings>General >About Device
Note: Titles may vary!
47 / 89
USB Debugging
Build Number
48 / 89
USB Debugging
Build Number | Tap 7x!
49 / 89
USB Debugging
Settings>Developer Options
50 / 89
USB Debugging
Settings>Developer Options | USB Debugging
Note: Titles may vary!
Run | Select Target 51 / 89
52 / 89
Done!
Installed on the Device
Build a Simple User
Interface
53 / 89
Show Blueprint, Show Constraints, Autoconnect O & Default Margin 16 54 / 89
Component Tree | Replace TextView with EditText | Adjust/Drag Constraint Anchors 55 / 89
Add Button | Adjust/Drag Constraint Anchors | Note: Baseline Constraint 56 / 89
Change the UI Strings | String Resources 57 / 89
Change the UI Strings | Translation Editor 58 / 89
Properties | @string/edit_message (Remove text) 59 / 89
Properties | @string/button_send 60 / 89
Select Both | Center Horizontally 61 / 89
A Chain Between the Two Views 62 / 89
Button | Left & Right Margin ->16 63 / 89
Text | Left Margin ->16 | Width Indicator -> Match Constraints 64 / 89
activity_main.xml (Text) 65 / 89
Run & Test 66 / 89
Start Another Activity
67 / 89
sendMessage() Method Stub | Alt + Enter -> Import class 68 / 89
Connect sendMessage() to the Button 69 / 89
app | Create a New Empty Activity 70 / 89
DisplayMessageActivity 71 / 89
DisplayMessageActivity.java 72 / 89
MainActivity.java 73 / 89
activity_display_message.xml | textAppearance 74 / 89
Run & Test 75 / 89
AVD - Landscape 76 / 89
77 / 89
Run & Test
Real Device | SM-N750
78 / 89
Run & Test
Real Device | SM-N750
MainActivity.java | Di
79 / 89
package com.example.em.exampleapplication01;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE = "com.example.em.exampleapplication01.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.editText);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}
80 / 89
MainActivity.java
package com.example.em.exampleapplication01;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class DisplayMessageActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
// Get the Intent that started this activity and extract the string
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
// Capture the layout's TextView and set the string as its text
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(message);
}
}
81 / 89
DisplayMessageActivity.java
activity_main.xml | Di
82 / 89
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.em.exampleapplication01.MainActivity">
<EditText
android:id="@+id/editText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:ems="10"
android:hint="@string/edit_message"
android:inputType="textPersonName"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toLeftOf="@+id/button"
android:layout_marginLeft="16dp" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:onClick="sendMessage"
android:text="@string/button_send"
app:layout_constraintBaseline_toBaselineOf="@+id/editText"
app:layout_constraintLeft_toRightOf="@+id/editText"
app:layout_constraintRight_toRightOf="parent" />
</android.support.constraint.ConstraintLayout>
83 / 89
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.em.exampleapplication01.DisplayMessageActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="TextView"
android:textAppearance="@style/TextAppearance.AppCompat.Display1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
84 / 89
activity_display_message.xml
AndroidManifest.xml | Di
85 / 89
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.em.exampleapplication01">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".DisplayMessageActivity" android:parentActivityName=".MainActivity"
</application>
</manifest>
86 / 89
AndroidManifest.xml
Refs/Resources
87 / 89
Refs/Resources
1. Getting Started | Android Developers
2. Dashboards | Android Developers
3. Android Developer Fundamentals | Google Developers Training | Google Developers
4. Introduction - Android Developer Fundamentals Course - Practicals
88 / 89
89 / 89
ENDEueung Mulyana
https://eueung.github.io/012017/android1
CodeLabs | Attribution-ShareAlike CC BY-SA

Weitere Àhnliche Inhalte

Was ist angesagt?

Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android application
Atibur Rahman
 
Android application structure
Android application structureAndroid application structure
Android application structure
Alexey Ustenko
 
Android ui layout
Android ui layoutAndroid ui layout
Android ui layout
Krazy Koder
 
Android Services
Android ServicesAndroid Services
Android Services
Ahsanul Karim
 
android activity
android activityandroid activity
android activity
Deepa Rani
 

Was ist angesagt? (20)

Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
 
Basic android-ppt
Basic android-pptBasic android-ppt
Basic android-ppt
 
Mobile application development ppt
Mobile application development pptMobile application development ppt
Mobile application development ppt
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application Development
 
Mobile Application Development With Android
Mobile Application Development With AndroidMobile Application Development With Android
Mobile Application Development With Android
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Presentation on Android application
Presentation on Android applicationPresentation on Android application
Presentation on Android application
 
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & SpinnerAndroid User Interface Tutorial: DatePicker, TimePicker & Spinner
Android User Interface Tutorial: DatePicker, TimePicker & Spinner
 
Introduction to fragments in android
Introduction to fragments in androidIntroduction to fragments in android
Introduction to fragments in android
 
Introduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fastIntroduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fast
 
Introduction to Android ppt
Introduction to Android pptIntroduction to Android ppt
Introduction to Android ppt
 
Android application structure
Android application structureAndroid application structure
Android application structure
 
Android ui layout
Android ui layoutAndroid ui layout
Android ui layout
 
Flutter
FlutterFlutter
Flutter
 
Activity lifecycle
Activity lifecycleActivity lifecycle
Activity lifecycle
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
 
Android Services
Android ServicesAndroid Services
Android Services
 
android activity
android activityandroid activity
android activity
 
Eclipse introduction IDE PRESENTATION
Eclipse introduction IDE PRESENTATIONEclipse introduction IDE PRESENTATION
Eclipse introduction IDE PRESENTATION
 
Android Components
Android ComponentsAndroid Components
Android Components
 

Ähnlich wie Android Programming Basics

Android installation guide
Android installation guideAndroid installation guide
Android installation guide
magicshui
 
Synapseindia android apps intro to android development
Synapseindia android apps  intro to android developmentSynapseindia android apps  intro to android development
Synapseindia android apps intro to android development
Synapseindiappsdevelopment
 

Ähnlich wie Android Programming Basics (20)

Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspective
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011
 
Android best training-in-mumbai
Android best training-in-mumbaiAndroid best training-in-mumbai
Android best training-in-mumbai
 
Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15Android 3.0 Portland Java User Group 2011-03-15
Android 3.0 Portland Java User Group 2011-03-15
 
Android classes in mumbai
Android classes in mumbaiAndroid classes in mumbai
Android classes in mumbai
 
lecture-2-android-dev.pdf
lecture-2-android-dev.pdflecture-2-android-dev.pdf
lecture-2-android-dev.pdf
 
Android
AndroidAndroid
Android
 
Android installation guide
Android installation guideAndroid installation guide
Android installation guide
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android-Tutorial.ppt
Android-Tutorial.pptAndroid-Tutorial.ppt
Android-Tutorial.ppt
 
[Android Codefest] Using the Second-Screen API & IntelÂź Wireless Display From...
[Android Codefest] Using the Second-Screen API & IntelÂź Wireless Display From...[Android Codefest] Using the Second-Screen API & IntelÂź Wireless Display From...
[Android Codefest] Using the Second-Screen API & IntelÂź Wireless Display From...
 
Industrial Training in Android Application
Industrial Training in Android ApplicationIndustrial Training in Android Application
Industrial Training in Android Application
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android deep dive
Android deep diveAndroid deep dive
Android deep dive
 
Android
AndroidAndroid
Android
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Synapseindia android apps intro to android development
Synapseindia android apps  intro to android developmentSynapseindia android apps  intro to android development
Synapseindia android apps intro to android development
 

Mehr von Eueung Mulyana

Mehr von Eueung Mulyana (20)

FGD Big Data
FGD Big DataFGD Big Data
FGD Big Data
 
Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem PerspectiveHyper-Connectivity and Data Proliferation - Ecosystem Perspective
Hyper-Connectivity and Data Proliferation - Ecosystem Perspective
 
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated WorldIndustry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
Industry 4.0 And Beyond The A.I* For Surviving A Tech-Accelerated World
 
Blockchain Introduction
Blockchain IntroductionBlockchain Introduction
Blockchain Introduction
 
Bringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based ApproachBringing Automation to the Classroom: A ChatOps-Based Approach
Bringing Automation to the Classroom: A ChatOps-Based Approach
 
FinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency IntroductionFinTech & Cryptocurrency Introduction
FinTech & Cryptocurrency Introduction
 
Open Source Networking Overview
Open Source Networking OverviewOpen Source Networking Overview
Open Source Networking Overview
 
ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments ONOS SDN Controller - Clustering Tests & Experiments
ONOS SDN Controller - Clustering Tests & Experiments
 
Open stack pike-devstack-tutorial
Open stack pike-devstack-tutorialOpen stack pike-devstack-tutorial
Open stack pike-devstack-tutorial
 
Basic onos-tutorial
Basic onos-tutorialBasic onos-tutorial
Basic onos-tutorial
 
ONOS SDN Controller - Introduction
ONOS SDN Controller - IntroductionONOS SDN Controller - Introduction
ONOS SDN Controller - Introduction
 
OpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - IntroductionOpenDaylight SDN Controller - Introduction
OpenDaylight SDN Controller - Introduction
 
Mininet Basics
Mininet BasicsMininet Basics
Mininet Basics
 
Cloud Computing: Overview and Examples
Cloud Computing: Overview and ExamplesCloud Computing: Overview and Examples
Cloud Computing: Overview and Examples
 
selected input/output - sensors and actuators
selected input/output - sensors and actuatorsselected input/output - sensors and actuators
selected input/output - sensors and actuators
 
Connected Things, IoT and 5G
Connected Things, IoT and 5GConnected Things, IoT and 5G
Connected Things, IoT and 5G
 
Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+Connectivity for Local Sensors and Actuators Using nRF24L01+
Connectivity for Local Sensors and Actuators Using nRF24L01+
 
NodeMCU with Blynk and Firebase
NodeMCU with Blynk and FirebaseNodeMCU with Blynk and Firebase
NodeMCU with Blynk and Firebase
 
Trends and Enablers - Connected Services and Cloud Computing
Trends and Enablers  - Connected Services and Cloud ComputingTrends and Enablers  - Connected Services and Cloud Computing
Trends and Enablers - Connected Services and Cloud Computing
 
Digital Ecosystems - Connected Services and Cloud Computing
Digital Ecosystems - Connected Services and Cloud ComputingDigital Ecosystems - Connected Services and Cloud Computing
Digital Ecosystems - Connected Services and Cloud Computing
 

KĂŒrzlich hochgeladen

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

KĂŒrzlich hochgeladen (20)

Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

Android Programming Basics

  • 1. 1 / 89 PPTB (ET-4044) Android Programming Basics Eueung Mulyana https://eueung.github.io/012017/android1 CodeLabs | Attribution-ShareAlike CC BY-SA
  • 2. Outline Android & Android Studio App Development Building Your First App 2 / 89
  • 3. Notes Android Studio 2.3.3 (Stable Channel) A copy of the latest OpenJDK comes bundled with Android Studio 2.2 and higher, and this is the JDK version recommended for your Android projects. Ref: [Con gure Android Studio] 3 / 89
  • 4. Android & Android Studio 4 / 89
  • 5. 5 / 89 What is Android Mobile operating system based on Linux kernel User Interface for touch screens Used on over 80% of all smartphones Powers devices such as watches, TVs, and cars Over 2 Million Android apps in Google Play store Highly customizable for devices / by vendors Open source Ref: Android Developer Fundamentals
  • 7. 7 / 89 Android Studio+ Android SDK O cial Android IDE Develop, run, debug, test, and package apps Monitors and performance tools Virtual devices Project views Visual layout editor Ref: Android Developer Fundamentals
  • 8. 8 / 89 Logical Areas 1. Toolbar 2. Navigation Bar 3. Editor Window 4. Tool Window Bar (Expand/Collapse) 5. Tool Window 6. Status Bar
  • 9. 9 / 89 Layout Editor Project Window (1) Palette of UI Elements (2) Selectors (3) Design Pane (6) Component Tree (7) Design/Text Tabs (8)
  • 10. 10 / 89 Layout Editor Properties Pane (4) Text Property of TextView (5)
  • 12. 12 / 89 Android App One or more interactive screens Written using Java Programming Language and XML (*) Uses the Android Software Development Kit (SDK) Uses Android libraries and Android Application Framework Executed by Android Runtime Virtual machine (ART) Ref: Android Developer Fundamentals
  • 13. 13 / 89 Android Challenges Multiple screen sizes and resolutions Performance: make your apps responsive and smooth Security: keep source code and user data safe Compatibility: run well on older platform versions Marketing: understand the market and your users (Hint: It doesn't have to be expensive, but it can be.)
  • 14. 14 / 89 App Building Blocks Resources: layouts, images, strings, colors as XML and media les Components: activities, services,... and helper classes as Java code Manifest: information about app for the runtime Build con guration: APK versions in Gradle con g les
  • 15. 15 / 89 Component Types Activity is a single screen with a user interface Service performs long-running tasks in background Content provider manages shared set of data Broadcast receiver responds to system-wide announcements
  • 16. 16 / 89 Think of Android as a Hotel Your App is the guest The Android System is the hotel manager Services are available when you request them (Intents) In the foreground (Activities) such as registration In the background (Services) such as laundry Calls you when a package has arrived (Broadcast Receiver) Access the city's tour companies (Content Provider) Ref: Android Developer Fundamentals
  • 17. Android Studio Building Your First App 17 / 89
  • 18. 18 / 89 Building Your First App 1. Create an Android Project 2. Run Your App 3. Build a Simple User Interface 4. Start Another Activity
  • 19. Create an Android Project 19 / 89
  • 20. Start a New Project 20 / 89
  • 21. Adjust Application name (& Company domain) 21 / 89
  • 23. Co ee Time ... (If SDK components not yet locally available) 23 / 89
  • 25. Adjust Activity Name (& Layout Name) 25 / 89
  • 26. Project Window | app>java> ... >MainActivity.java 26 / 89
  • 32. Run Your App On an Emulator | On a Real Device 32 / 89
  • 35. Select Hardware | Phone 35 / 89
  • 36. Download System Image (If it's not already there) 36 / 89
  • 37. Co ee Time ... 37 / 89
  • 39. Verify -> Finish 39 / 89
  • 40. Launch this AVD in the Emulator 40 / 89
  • 42. Run the App 42 / 89
  • 45. Run Your App On an Emulator | On a Real Device 45 / 89
  • 46. 46 / 89 USB Debugging Settings>General >About Device Note: Titles may vary!
  • 47. 47 / 89 USB Debugging Build Number
  • 48. 48 / 89 USB Debugging Build Number | Tap 7x!
  • 49. 49 / 89 USB Debugging Settings>Developer Options
  • 50. 50 / 89 USB Debugging Settings>Developer Options | USB Debugging Note: Titles may vary!
  • 51. Run | Select Target 51 / 89
  • 52. 52 / 89 Done! Installed on the Device
  • 53. Build a Simple User Interface 53 / 89
  • 54. Show Blueprint, Show Constraints, Autoconnect O & Default Margin 16 54 / 89
  • 55. Component Tree | Replace TextView with EditText | Adjust/Drag Constraint Anchors 55 / 89
  • 56. Add Button | Adjust/Drag Constraint Anchors | Note: Baseline Constraint 56 / 89
  • 57. Change the UI Strings | String Resources 57 / 89
  • 58. Change the UI Strings | Translation Editor 58 / 89
  • 59. Properties | @string/edit_message (Remove text) 59 / 89
  • 61. Select Both | Center Horizontally 61 / 89
  • 62. A Chain Between the Two Views 62 / 89
  • 63. Button | Left & Right Margin ->16 63 / 89
  • 64. Text | Left Margin ->16 | Width Indicator -> Match Constraints 64 / 89
  • 66. Run & Test 66 / 89
  • 68. sendMessage() Method Stub | Alt + Enter -> Import class 68 / 89
  • 69. Connect sendMessage() to the Button 69 / 89
  • 70. app | Create a New Empty Activity 70 / 89
  • 75. Run & Test 75 / 89
  • 76. AVD - Landscape 76 / 89
  • 77. 77 / 89 Run & Test Real Device | SM-N750
  • 78. 78 / 89 Run & Test Real Device | SM-N750
  • 80. package com.example.em.exampleapplication01; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class MainActivity extends AppCompatActivity { public static final String EXTRA_MESSAGE = "com.example.em.exampleapplication01.MESSAGE"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void sendMessage(View view) { Intent intent = new Intent(this, DisplayMessageActivity.class); EditText editText = (EditText) findViewById(R.id.editText); String message = editText.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message); startActivity(intent); } } 80 / 89 MainActivity.java
  • 81. package com.example.em.exampleapplication01; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class DisplayMessageActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_message); // Get the Intent that started this activity and extract the string Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); // Capture the layout's TextView and set the string as its text TextView textView = (TextView) findViewById(R.id.textView); textView.setText(message); } } 81 / 89 DisplayMessageActivity.java
  • 83. <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.em.exampleapplication01.MainActivity"> <EditText android:id="@+id/editText" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:ems="10" android:hint="@string/edit_message" android:inputType="textPersonName" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintRight_toLeftOf="@+id/button" android:layout_marginLeft="16dp" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:onClick="sendMessage" android:text="@string/button_send" app:layout_constraintBaseline_toBaselineOf="@+id/editText" app:layout_constraintLeft_toRightOf="@+id/editText" app:layout_constraintRight_toRightOf="parent" /> </android.support.constraint.ConstraintLayout> 83 / 89 activity_main.xml
  • 84. <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.em.exampleapplication01.DisplayMessageActivity"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:text="TextView" android:textAppearance="@style/TextAppearance.AppCompat.Display1" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout> 84 / 89 activity_display_message.xml
  • 86. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.em.exampleapplication01"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".DisplayMessageActivity" android:parentActivityName=".MainActivity" </application> </manifest> 86 / 89 AndroidManifest.xml
  • 88. Refs/Resources 1. Getting Started | Android Developers 2. Dashboards | Android Developers 3. Android Developer Fundamentals | Google Developers Training | Google Developers 4. Introduction - Android Developer Fundamentals Course - Practicals 88 / 89
  • 89. 89 / 89 ENDEueung Mulyana https://eueung.github.io/012017/android1 CodeLabs | Attribution-ShareAlike CC BY-SA