SlideShare a Scribd company logo
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Somkiat Khitwongwattana
Hello, Android Studio 3.2
And Android App Bundle
Android Studio 3.2
Beta 2
Based on IntelliJ IDEA 2018.1.1
Canary Beta Stable
Beta Stable
Your project
Develop
AndroidX
New package structure to make it clearer which packages are bundled
with the Android operating system
Android Studio include the AndroidX as Default dependencies
and Built-in migration for Android X
// build.gradle
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
implementation 'androidx.legacy:legacy-support-v4:1.0.0-alpha3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
}
Refactor > Migrate to AndroidX...
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
// build.gradle
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
implementation 'androidx.legacy:legacy-support-v4:1.0.0-alpha3'
...
implementation('android.arch.navigation:navigation-fragment:1.0.0-alpha02') {
exclude group: 'com.android.support'
}
}
Android App Bundle
An improved way to package your app. Lets you more easily deliver a
great experience in a smaller app size, allowing for the huge variety of
Android devices available today.
Slices Provider
Generator
Built-in template to help
you to extend your app
with the new Slice
Provider APIs
Sample Data
Easily see a preview of your view
in the Layout Editor filled with
sample data
Sample Data
Easily see a preview of your view
in the Layout Editor filled with
sample data
What's new
Assistant
Informs you about the latest
changes in Android Studio.
Help > What's new in Android Studio
Build
D8 desugaring
Turn on by default
R8, New code shrinker
New tool for code shrinking and obfuscation that replaces ProGuard.
Try the preview version, add this in gradle.properties file
.
android.enableR8 = true .
.
Removed ABIs for multi-APKs
Android Studio no longer generates APKs for the following ABIs by default:
mips, mips64 and armeabi
What to build with these ABIs?
.
// build.gradle .
android { .
splits { .
abi { .
include 'armeabi', 'mips', 'mips64' .
... .
} .
} .
} .
.
NDK r16b or lower is required
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
AAPT2 moved to
Google’s Maven repository
To use AAPT2
.
// build.gradle .
buildscript { .
repositories { .
google() .
... .
} .
dependencies { .
classpath 'com.android.tools.build:gradle:3.2.0-beta1' .
} .
} .
.
allprojects { .
repositories { .
google() .
... .
} .
.
Native multidex enabled
by default
The Android plugin for Gradle enables native multidex for all modules
that set minimum SDK version to 21 or higher.
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Removal of “configuration on demand”
Test
Emulator
• Emulator snapshot
• Screen record in Android emulator
• Virtual scene Android emulator camera
ADB Connection
Assistant
Step-by-step instructions to help
you set up and use a device over
the Android Debug Bridge (ADB)
connection.
Tools > Connection Assistant
Optimize
Energy Profiler
Help you understand the energy impact of your app on an Android device.
Energy Profiler
Help you understand the energy impact of your app on an Android device.
Profiling Recorder
Record CPU activity during your app's startup.
Develop
AndroidX
Navigation Editor
Slices Provider Generator
Sample Data in Layout Design
What's new Assistant
Build
D8 desugaring
R8, New code shrinker
Removed ABIs for multi-APKs
Build speed improvement
AAPT2 moved to Google's Maven repository
Native multidex enabled by default
Removal of “configuration on demand”
Test
Emulator Snapshot
Screen Record in Android Emulator
Virtual Scene Android Emulator Camera
ADB Connection Assistant
Optimize
Energy Profiler
Profiling Recorder
Android Studio on Chromebooks
And more!
Android Studio 3.2 Beta - Android Developers Blog
https://android-developers.googleblog.com/2018/06/android-studio-3-2-beta.html
Android Studio Preview
https://developer.android.com/studio/preview/
What's new in Android development tools - Google I/O '18
https://www.youtube.com/watch?v=WxAZk7A7OkM
Android App Bundle
The new app publishing format
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Publishing format
• Not installable
• Metadata files
• Strict validation
All the ingredients to build optimized APKs
Android
App Bundle
Dex
Java resources
Resources
Assets
AndroidManifest.xml
Native libraries
Metadata files
Dynamic Delivery
Uses your app bundle to generate and serve optimized APKs for each
user’s device configuration.
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Split APKs
Multiple installed for a single app
and appear as if a single APK.
Android Lollipop or higher
Pre L Devices
ABA English Blue Apron Airbnb LinkedIn Perigee
Jaumo Memrise TextPlus RV AppStudios Twitter Pluto TV
28% 46% 11% 23% 49%
50% 45% 26% 64% 35% 22%
.
// build.gradle (Base module) .
android { .
... .
splits {...} .
.
bundle { .
language { .
enableSplit = false .
} .
density { .
enableSplit = true .
} .
abi { .
enableSplit = true .
} .
} .
} .
.
.
// build.gradle (Base module) .
android { .
... .
defaultConfig { .
... .
versionCode 5 .
versionName "1.0.1" .
} .
} .
.
Disable types of configuration
Only one version code in the
base module
Build > Build Bundles(s) / APK(s)
Dynamic Features
Uses your app bundle to generate and
serve optimized APKs for each user’s
device configuration.
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018
// AndroidManifest.xml (Feature module)
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dist="http://schemas.android.com/apk/distribution"
package="com.akexorcist.dynamic_feature">
<dist:module
dist:onDemand="true"
dist:title="@string/title_dynamic_feature">
<dist:fusing dist:include="true" />
</dist:module>
</manifest>
// build.gradle (Feature module)
apply plugin: 'com.android.dynamic-feature'
...
dependencies {
...
implementation project(':app')
}
// build.gradle (App module)
android {
...
dynamicFeatures = [":feature_payment"]
}
// Request the dynamic feature
val manager = SplitInstallManagerFactory.create(this)
val request = SplitInstallRequest.newBuilder().apply {
addModule("feature_photo_gallery")
addModule("feature_top_10_promotions")
}.build()
manager.startInstall(request)
.addOnSuccessListener { sessionId: Int ->
// Do something
}
.addOnFailureListener { exception ->
// Do something
}
manager.deferredInstall(listOf("feature_photo_gallery"))
manager.deferredUninstall(listOf("feature_payment_history"))
manager.cancelInstall(sessionId)
val listener = SplitInstallStateUpdatedListener { state ->
// state.sessionId()
// state.status()
// state.moduleNames()
if (state.status() == SplitInstallSessionStatus.REQUIRES_USER_CONFIRMATION) {
startIntentSender(state.resolutionIntent().intentSender, null, 0, 0, 0)
}
}
manager.registerListener(listener)
manager.unregisterListener(listener)
SplitInstallSessionStatus
CANCELED
CANCELING
DOWNLOADED
DOWNLOADING
FAILED
INSTALLED
PENDING
REQUIRES_USER_CONFIRMATION
UNKNOWN
SplitInstallErrorCode
ACCESS_DENIED
ACTIVE_SESSIONS_LIMIT_EXCEEDED
API_NOT_AVAILABLE
INCOMPATIBLE_WITH_EXISTING_SESSION
INTERNAL_ERROR
INVALID_REQUEST
MODULE_UNAVAILABLE
NETWORK_ERROR
NO_ERROR
SERVICE_DIED
SESSION_NOT_FOUND
Thank you
Somkiat Khitwongwattana
developers.android.com
Helpful resources
@Akexorcist
Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018

More Related Content

PDF
Deep Dive Into Repository - Android Architecture Components
Somkiat Khitwongwattana
 
PPT
IntroToAndroid
Quickoffice Test
 
PDF
AKS: k8s e azure
Alessandro Melchiori
 
PDF
Android with dagger_2
Kros Huang
 
PPTX
A Skeptic's Guide to Docker
Tori Wieldt
 
PPTX
Presentation1
Kshitiz Rimal
 
PDF
How to keep maintainability of long life Scala applications
takezoe
 
PDF
GitBucket: Git Centric Software Development Platform by Scala
takezoe
 
Deep Dive Into Repository - Android Architecture Components
Somkiat Khitwongwattana
 
IntroToAndroid
Quickoffice Test
 
AKS: k8s e azure
Alessandro Melchiori
 
Android with dagger_2
Kros Huang
 
A Skeptic's Guide to Docker
Tori Wieldt
 
Presentation1
Kshitiz Rimal
 
How to keep maintainability of long life Scala applications
takezoe
 
GitBucket: Git Centric Software Development Platform by Scala
takezoe
 

What's hot (20)

PDF
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
Michael Vorburger
 
PPT
IEEE Day 2013 - Reverse Engineering an Android Application
Rufatet Babakishiyev
 
PDF
DI with Dagger2
Eugen Martynov
 
PDF
Android Modularization
Young-Hyuk Yoo
 
PDF
Getting started with dagger 2
Rodrigo Henriques
 
PDF
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Sunnyvale
 
PDF
Writing Commits for You, Your Friends, and Your Future Self
All Things Open
 
PDF
GitOps with Gitkube
Tirumarai Selvan
 
PDF
Upcoming features in Airflow 2
Kaxil Naik
 
PDF
Reactive Applications with Apache Pulsar and Spring Boot
VMware Tanzu
 
PPTX
Introduction of Android Architecture
Bin Yang
 
ODP
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Mickael Istria
 
PPTX
Automating the Quality
Dejan Vukmirovic
 
PDF
SBG Infrastructure Tools
🤘Ivan Vandot
 
PDF
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
Julian Mazzitelli
 
PDF
Red Hat OpenShift App Dev meetup - Operator SDK
Dmitry Kartsev
 
PPTX
Linker namespace upload
Bin Yang
 
PPTX
Kotlin で android アプリを作ってみた
bina1204 Hozuki
 
PDF
From Spring Framework 5.3 to 6.0
VMware Tanzu
 
PDF
What's coming in Airflow 2.0? - NYC Apache Airflow Meetup
Kaxil Naik
 
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
Michael Vorburger
 
IEEE Day 2013 - Reverse Engineering an Android Application
Rufatet Babakishiyev
 
DI with Dagger2
Eugen Martynov
 
Android Modularization
Young-Hyuk Yoo
 
Getting started with dagger 2
Rodrigo Henriques
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Sunnyvale
 
Writing Commits for You, Your Friends, and Your Future Self
All Things Open
 
GitOps with Gitkube
Tirumarai Selvan
 
Upcoming features in Airflow 2
Kaxil Naik
 
Reactive Applications with Apache Pulsar and Spring Boot
VMware Tanzu
 
Introduction of Android Architecture
Bin Yang
 
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Mickael Istria
 
Automating the Quality
Dejan Vukmirovic
 
SBG Infrastructure Tools
🤘Ivan Vandot
 
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
Julian Mazzitelli
 
Red Hat OpenShift App Dev meetup - Operator SDK
Dmitry Kartsev
 
Linker namespace upload
Bin Yang
 
Kotlin で android アプリを作ってみた
bina1204 Hozuki
 
From Spring Framework 5.3 to 6.0
VMware Tanzu
 
What's coming in Airflow 2.0? - NYC Apache Airflow Meetup
Kaxil Naik
 
Ad

Similar to Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018 (20)

PDF
Intro to Gradle + How to get up to speed
Reid Baker
 
PDF
To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016
Codemotion
 
PDF
ID Android TechTalk Series #6 : Google Service and Gradle - Anton Nurdin Tuha...
Dicoding
 
PPTX
Hands on the gradle
Kostiantyn Zghirovskyi
 
PPTX
Android App Bundles - Overview
Syed Awais Mazhar Bukhari
 
PDF
Michal Havryluk: How To Speed Up Android Gradle Builds
mdevtalk
 
PPTX
Gradle + Google I/O 2014 remarks
Damian Mee
 
PPTX
Android, Gradle & Dependecies
Édipo Souza
 
PDF
Making the Most of Your Gradle Builds
Egor Andreevich
 
PPTX
Android Studio 3 - Dependency-Aware Build Variants and Product Flavors
Stefan Martynkiw
 
PDF
Gradle 101
Kurt Mbanje
 
PDF
Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BD...
DicodingEvent
 
PDF
Developing for Android TV and the Nexus player - Mihai Risca & Alexander Wegg...
Codemotion Tel Aviv
 
PDF
Gradle presentation
Oriol Jiménez
 
PDF
Froyo to kit kat two years developing & maintaining deliradio
Droidcon Berlin
 
PDF
Android : Deep dive into developing MobileApp using Android
Emertxe Information Technologies Pvt Ltd
 
PPTX
From Containerization to Modularity
oasisfeng
 
PDF
A Gradle Story
Eduardo Felipe Ewert Bonet
 
PDF
How To Build and Deploy Android App Bundles.pdf
RipenApps Technologies Pvt. Ltd.
 
PPTX
Exploring the power of Gradle in android studio - Basics & Beyond
Kaushal Dhruw
 
Intro to Gradle + How to get up to speed
Reid Baker
 
To ∞ (~65K) and beyond! - Sebastiano Gottardo - Codemotion Milan 2016
Codemotion
 
ID Android TechTalk Series #6 : Google Service and Gradle - Anton Nurdin Tuha...
Dicoding
 
Hands on the gradle
Kostiantyn Zghirovskyi
 
Android App Bundles - Overview
Syed Awais Mazhar Bukhari
 
Michal Havryluk: How To Speed Up Android Gradle Builds
mdevtalk
 
Gradle + Google I/O 2014 remarks
Damian Mee
 
Android, Gradle & Dependecies
Édipo Souza
 
Making the Most of Your Gradle Builds
Egor Andreevich
 
Android Studio 3 - Dependency-Aware Build Variants and Product Flavors
Stefan Martynkiw
 
Gradle 101
Kurt Mbanje
 
Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BD...
DicodingEvent
 
Developing for Android TV and the Nexus player - Mihai Risca & Alexander Wegg...
Codemotion Tel Aviv
 
Gradle presentation
Oriol Jiménez
 
Froyo to kit kat two years developing & maintaining deliradio
Droidcon Berlin
 
Android : Deep dive into developing MobileApp using Android
Emertxe Information Technologies Pvt Ltd
 
From Containerization to Modularity
oasisfeng
 
How To Build and Deploy Android App Bundles.pdf
RipenApps Technologies Pvt. Ltd.
 
Exploring the power of Gradle in android studio - Basics & Beyond
Kaushal Dhruw
 
Ad

More from Somkiat Khitwongwattana (17)

PPTX
What's new in Android - Google I/O Extended Bangkok 2022
Somkiat Khitwongwattana
 
PDF
Canvas API in Android
Somkiat Khitwongwattana
 
PDF
Get Ready for Target SDK Version 29 and 30
Somkiat Khitwongwattana
 
PDF
What's new in Android P @ I/O Extended Bangkok 2018
Somkiat Khitwongwattana
 
PDF
New things that android developer should not miss in 2019
Somkiat Khitwongwattana
 
PDF
Architecture Components In Real Life Season 2
Somkiat Khitwongwattana
 
PDF
Bitmap management like a boss
Somkiat Khitwongwattana
 
PDF
Android Architecture Component in Real Life
Somkiat Khitwongwattana
 
PDF
Introduction to Architecture Components @ Google I/O Extended Bangkok 2017
Somkiat Khitwongwattana
 
PDF
What's new in Android O @ Google I/O Extended Bangkok 2017
Somkiat Khitwongwattana
 
PDF
Pokemon GO 101@Nextzy
Somkiat Khitwongwattana
 
PDF
Advance Android Layout Walkthrough
Somkiat Khitwongwattana
 
PPTX
Interface Design for Mobile Application
Somkiat Khitwongwattana
 
PDF
Smart Lock for Password @ Game DevFest Bangkok 2015
Somkiat Khitwongwattana
 
PDF
Whats new in Android Development Tools @ I/O Rewind Bangkok
Somkiat Khitwongwattana
 
PDF
What's new in Google Play Services @ I/O Rewind Bangkok
Somkiat Khitwongwattana
 
PPTX
ListView and Custom ListView on Android Development [Thai]
Somkiat Khitwongwattana
 
What's new in Android - Google I/O Extended Bangkok 2022
Somkiat Khitwongwattana
 
Canvas API in Android
Somkiat Khitwongwattana
 
Get Ready for Target SDK Version 29 and 30
Somkiat Khitwongwattana
 
What's new in Android P @ I/O Extended Bangkok 2018
Somkiat Khitwongwattana
 
New things that android developer should not miss in 2019
Somkiat Khitwongwattana
 
Architecture Components In Real Life Season 2
Somkiat Khitwongwattana
 
Bitmap management like a boss
Somkiat Khitwongwattana
 
Android Architecture Component in Real Life
Somkiat Khitwongwattana
 
Introduction to Architecture Components @ Google I/O Extended Bangkok 2017
Somkiat Khitwongwattana
 
What's new in Android O @ Google I/O Extended Bangkok 2017
Somkiat Khitwongwattana
 
Pokemon GO 101@Nextzy
Somkiat Khitwongwattana
 
Advance Android Layout Walkthrough
Somkiat Khitwongwattana
 
Interface Design for Mobile Application
Somkiat Khitwongwattana
 
Smart Lock for Password @ Game DevFest Bangkok 2015
Somkiat Khitwongwattana
 
Whats new in Android Development Tools @ I/O Rewind Bangkok
Somkiat Khitwongwattana
 
What's new in Google Play Services @ I/O Rewind Bangkok
Somkiat Khitwongwattana
 
ListView and Custom ListView on Android Development [Thai]
Somkiat Khitwongwattana
 

Recently uploaded (20)

PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 

Hello, Android Studio 3.2 & Android App Bundle @ I/O Extended Bangkok 2018