Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Android 11 Meetups - What’s new in Android Studio
Search
pluulove (노현석)
July 30, 2020
Programming
1
950
Android 11 Meetups - What’s new in Android Studio
Android 11 Meetups 에서 발표한 자료입니다.
pluulove (노현석)
July 30, 2020
Tweet
Share
More Decks by pluulove (노현석)
See All by pluulove (노현석)
N.E.X.T LEVEL
pluu
3
500
안드로이드 기술 이력서의 최소 조건
pluu
1
2.7k
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
670
Android Studio와 좀 더 친해지기
pluu
0
180
우리모두 삽질한다
pluu
0
1.4k
Re:Android Studio 설정 살펴보기 및 생산성 올리기
pluu
0
1.6k
What's new in Android development tools
pluu
1
900
What's new in Android development tools
pluu
1
460
개발자 Side Next Step ~ 커뮤니티 x Android
pluu
2
300
Other Decks in Programming
See All in Programming
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
270
Discover Metal 4
rei315
2
130
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
160
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
160
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
0
150
ふつうの技術スタックでアート作品を作ってみる
akira888
1
490
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
610
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
4
730
CursorはMCPを使った方が良いぞ
taigakono
1
250
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
230
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
4
6.5k
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
337
57k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
GitHub's CSS Performance
jonrohan
1031
460k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Become a Pro
speakerdeck
PRO
28
5.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Raft: Consensus for Rubyists
vanstee
140
7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Fireside Chat
paigeccino
37
3.5k
Adopting Sorbet at Scale
ufuk
77
9.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Transcript
GDG Incheon What’s new in Android Studio in 4.0, 4.1,
4.2 HyeonSeok Noh Google Developer Experts for Android
GDG Incheon Roadmap 2019 2020 v3.5 Project Marble v3.6 v4.0
View Binding Emulator - Google Maps UI Leak Detection Design Tool Updates Motion Editor “Live” Layout Inspector Build Analyzer CPU Profiler update v4.1 v4.2
GDG Incheon New Logo?!
4.2 Support for Compose Improved instrumentation testing 4.1 Material Design
Project IDE configuration Dagger navigation Emulator directly Database Inspector Custom View Preview 4.0 Java8 library desugaring Build Analyzer CPU Profiler upgrades New Motion Editor Live Layout Inspector Kotlin Android live templates Updated proguard rules android studio
GDG Incheon Stable Android Studio 4.0 • Java8 library desugaring
• Build Analyzer • CPU Profiler upgrades • New Motion Editor • Live Layout Inspector • Kotlin Android live templates • Updated proguard rules
GDG Incheon Lambda Expressions Default interface method try with resource
… Android Studioীࢲ Java8ۆ? 2013 2014 2015 2016 2017 2018 2019 2020 Google I/O 2013 Android Studio ߊ 3.0 ߊ Java 8 ਗ द (D8)
GDG Incheon Android Gradle Plugin 3.0.0+ https://developer.android.com/studio/write/java8-support
GDG Incheon Android Gradle Plugin 3.0.0+ https://developer.android.com/studio/write/java8-support
GDG Incheon Sample, Required APIs Using time/stream
Default
java.time.LocalDate ࢎਊ Default
java.time.LocalDate ࢎਊ Default java.util.stream.Stream ࢎਊ
GDG Incheon Lambda Expressions Default interface method try with resource
… Android Studio 4.0+ 2013 2014 2015 2016 2017 2018 2019 2020 3.0 ߊ Java 8 ਗ द (D8) 4.0 ߊ Support Java API Desugar (D8) min APIী ೱਸ ߉ঋҊ Java য APIܳ ࢎਊоמ Google I/O 2013 Android Studio ߊ
GDG Incheon coreLibraryDesugaringEnabled android { compileOptions { // ࢜۽ য
APIܳ ਗೞӝ ਤೠ Flag coreLibraryDesugaringEnabled true // Java compatibility ࢸী Java 8 ਊ sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9' } android { defaultConfig { // minSdkVersion 20 ೞੋ ҃ ࣻ multiDexEnabled true } }
GDG Incheon coreLibraryDesugaringEnabled ਊ റ Clear Required API
Java 8 API ࢎਊਸ ਤೠ ഐജࢿ ӝ߈ ࠁо ୶оؽ ਊ
ࠁ ਊ ૐо Desugar
Desugar j$.time.LocalDate ࢎਊ LocalDate.now()
Desugar j$.time.LocalDate ࢎਊ j$.util.stream.Stream ࢎਊ LocalDate.now() stream()
GDG Incheon Supported APIs Android Gradle plugin 4.0.0 or higher
• java.util.stream • java.time • java.util.function • java.util.{Map,Collection,Comparator} • java.util.Optional, java.util.OptionalInt, java.util.OptionalDouble • java.util.concurrent.atomic (new methods on AtomicInteger, AtomicLong, AtomicReference) • ConcurrentHashMap (with bug fixes for Android 5.0) https://developer.android.com/studio/write/java8-support#library-desugaring
GDG Incheon Summary .java .javac .class 3rd party libs D8/R8
App .dex(s) j$ .dex Library desugaring j$.util.stream j$.time … {
// build.gradle (Default) android { buildFeatures { buildConfig = true
viewBinding = false dataBinding = false aidl = true renderScript = true resValues = true shaders = true } } New options to enable or disable build features GDG Incheon • ਗೞח ӝמ ױਤ ഝࢿച оמ • Module ױਤ build Configuration ࢸ Deprecated android { dataBinding.enabled = false viewBinding.enabled = false }
Project-wide default settings GDG Incheon // project gradle.properties android.defaults.buildfeatures.viewbinding=true android.defaults.buildfeatures.databinding=true
android.defaults.buildfeatures.aidl=true android.defaults.buildfeatures.buildconfig=true android.defaults.buildfeatures.renderscript=true android.defaults.buildfeatures.resvalues=true android.defaults.buildfeatures.shaders=true • Project ӝࠄ ࢸ ܻ
GDG Incheon on AGP 4.0+ on Android Studio 4.0+ Analyze
the project's build performance Build… ing… ing…
GDG Incheon Build Analyzer • ࠽٘ दрਸ Ѿೞח ೦ݾٜਸ ࠙ࢳ
• Task ѐࢶਵ۽ ࠽٘ दрਸ ੌ ࣻ ח ನੋ https://developer.android.com/studio/build/build-analyzer
GDG Incheon Build Analyzer ~ Example
GDG Incheon Build Analyzer Pluginsਵ۽ ߊࢤೞח दр ഛੋ OSS ۄࣃझ
јन ݒ ࠽٘दী јनೡ ਃח হ ( 313s / 68.2%)
GDG Incheon Build Analyzer ~ Tasks • Critical Path Task
दрਸ ഛੋ • ࠽٘ दрਸ Ѿೞח ਃ Taskܳ ഛੋ
GDG Incheon Build Analyzer ~ Tasks Critical Path Task
GDG Incheon Build Analyzer ~ Tasks Critical Path Task
GDG Incheon Build Analyzer ~ Warnings ೦࢚ زೞח Taskо ח
҃, 1. Task ࣻ 2. Library Issue ١۾
GDG Incheon Advanced Tips ~ Build Scan ./gradlew assembleDebug --scan
https://guides.gradle.org/creating-build-scans/
GDG Incheon Upgrade CPU Profiler Inspect system traces : https://developer.android.com/studio/profile/cpu-profiler#inspect-traces
• CPU Profiler UI ѐࢶ • ೠ ߣী ݽٚ झۨ٘ܳ ഛੋ (Redner, App-Main, Others Thread) • ؊ ҙਵ۽ ఐ࢝ • ࠙ࢳ ಁօ ѐࢶ
GDG Incheon CPU Profiler GDG Incheon
GDG Incheon CPU Profiler GDG Incheon Timeline Analysis
GDG Incheon CPU Profiler GDG Incheon
GDG Incheon Inspect system traces • ఋ ۄੋীࢲ п झۨ٘ীࢲ
ߊࢤೞח ߮ • ݽٚ CPU যীࢲ झۨ٘ ഝز • UI झۨ٘ ߂ ۨ ࣘب ೞܳ ਬߊೞח ߽ݾ അ࢚ ഛੋ GDG Incheon
GDG Incheon Design tools
GDG Incheon Design Tools Timeline 2.2 3.0 3.3 3.4 3.5
3.6 4.0 Layout Editor Alpha Layout Editor Navigation Editor Resource Manager Project Marble Constraint Layout Motion Layout Motion Editor
GDG Incheon Split View update UX • Code/Split/Design View ജ
ѐࢶ • ఫझ о٘ ୶о
GDG Incheon Material Icons Filled Outlined Rounded Sharp Two Tone
• 1,000+ icons • 5 ઙܨ ప݃ File > New > Image Assert / Vector Assert
GDG Incheon Motion Editor • Required ConstraintLayout 2.0.0-beta3
Demo
GDG Incheon Live Layout Inspector • 3D View (Rotate View)
• Live Updates • Modify Layer Spacing • Required API Level 29+ on Devices
Layout Inspector Example
Issues https://issuetracker.google.com/issues/157714512 GDG Incheon
GDG Incheon Property value resolution stack • ܻࣗझ ч दغח
ਤܳ ઑࢎ • Override غח ܻࣗझ ഛੋ https://developer.android.com/studio/releases#4-0-0-live-layout-inspector
Property value resolution stack
GDG Incheon Layout Validation ۨইਓ ਬബࢿ Ѩࢎ (Multi Devices, Color,
Font Size)
Layout Validation
Color Blind
Font Sizes
Custom Validation ୶о ജ҃ ࢸਵ۽ Preview ഛੋ
GDG Incheon Kotlin Android live templates Preferences | Editor |
Live Templates
GDG Incheon Smart editor for code shrinker rules • R8
٘ ୷ࣗ ӏ ੌ(proguard-rules.pro)ਸ ৌ ٸ झ݃ ಞӝ ӝמ • Class, Method, Field ী ೠ ࡅܲ ఐ࢝җ Rename ਗ
GDG Incheon Smart editor for code shrinker rules
GDG Incheon Beta 5 Android Studio 4.1 • Material Design
Project • IDE configuration • Dagger navigation • Emulator directly • Database Inspector • Custom View Preview
Material Design Components : Updated themes and styles Android Studio
4.1 ࠗఠ ݠ౭ܻ ٣ੋ ӝࠄ ਊ
Material Design Components
Material Design Components ~4.0 : colorPrimary 4.1+ : purple_500 ex)
Material Design Components
Material Design Components Support Dark Theme
GDG Incheon Configuration directory changes Window macOS Linux Syntax: %APPDATA%\Google\<product><version>
Example: C:\Users\YourUserName\AppData\Roaming\Google\AndroidStudioPreview4.1 Syntax: ~/Library/Application Support/Google/<product><version> Example: ~/Library/Application Support/Google/AndroidStudioPreview4.1 Syntax: ~/.config/Google/<product><version> Example: ~/.config/Google/AndroidStudioPreview4.1 IntelliJ IDEA 2020.1 | Default IDE directories
GDG Location Dagger navigation support GDG Incheon New gutter actions
Dagger ҙ۲ ٘ܳ औѱ ఐ࢝ ઓࢿ ҕә(Provider) ఐ࢝ ઓࢿ ࢎਊ(Related) ఐ࢝
Dagger navigation Example GDG Incheon
Emulator directly ীޯۨఠܳ built-in प೯ GDG Incheon
GDG Incheon Emulator directly
GDG Incheon Emulator directly ୶о ஶ܀ ӝמ • Show Zoom
Controls
GDG Incheon Emulator directly ୶о ஶ܀ ӝמ • Show Zoom
Controls • Crop Device Frame
Launch in a tools window AS 4.1 or Higher Preferences
| Tools | Emulator Emulator प೯ ਤܳ ߸҃ • On : IDEী ࠽ੋػ ഋక • Off : ӝઓ ߑध
GDG Incheon Database Inspector A live database tool (AS 4.1
Canary 6+) • Query database • Table ؘఠ ߂ ࣻ • Room/Sqlite ਗ image caption : https://medium.com/androiddevelopers/database-inspector-9e91aa265316 • Live Updates • Run Query Action
GDG Incheon Navigate Menu • View - Tools Windows -
Database Inspector • ೞױ Tool ݫ - Database Inspector GDG Incheon
Database Inspector Required min API Level 26 (Oreo) GDG Incheon
Database Inspector Inspection App ࢶఖ GDG Incheon
Database Inspector DB / Table ഛੋ @Query ۽ ػ Action
प೯ (Database Inspectionदী݅ ഝࢿച) GDG Incheon
GDG Incheon GDG Location Sqlite statement Example
GDG Incheon Update table Example GDG Incheon
GDG Incheon Live updates Example GDG Incheon
GDG Incheon Custom View Preview
GDG Incheon android studio 4.0
GDG Incheon android studio 4.0
Custom View (code) GDG Incheon android studio 4.1
GDG Incheon Updated CPU Profiler https://developer.android.com/studio/preview/features#4.1-ui-upgrades • Box selection •
Summary tab • Add SurfaceFlinger and VSYNC on Display Data
CPU Profiler on AS 4.1 GDG Incheon
GDG Incheon Recurring trace event • ӝࠄ trace (Count, Average,
Max, Min …) • о ӟ प೯ ܻ ഛੋ
GDG Incheon Canary 5 Android Studio 4.2 • Support for
Jetpack Compose • Improved instrumentation testing
GDG Incheon Jetpack Compose
GDG Incheon Jetpack Compose Android ୭न UI toolkit • ࢶੋ
UI Patterns • ࣻ ٘ • ҙ • ࡅܲ ѐߊ җ • ъ۱ೠ ࢿמ • Unbundled UI ஹನք • Kotlin API ࢎਊ • അח Developer Preview Jetpack Compose : https://developer.android.com/jetpack/compose GDG Incheon
GDG Incheon 2020.07 0.1.0-dev15 2019.10 0.1.0-dev01 2010.01 0.1.0-dev04 2019.05
GDG Incheon New Jetpack Composetooling • Compose preview • Interactive
preview • Deploy to device GDG Incheon
GDG Incheon Compose preview GDG Incheon
GDG Incheon PreviewParameter
GDG Incheon • Tools Attribute Sample Data৬ ਬࢎ • ױੌ
ۨইਓਸ ࠂࣻ ؘఠ۽ ഛੋೞҊ र ҃ী ਬਊೣ • PreviewParameterProvider • Data ઁҕਸ ҳഅೞח ੋఠಕझ • PreviewParameter • Data ࣻनܳ ೞח Annotation PreviewParameter GDG Incheon
GDG Incheon Interactive preview • Composable ױਤ۽ Preview प೯ •
पઁ৬ زੌೞѱ ز
GDG Incheon Interactive preview
Deploy Preview
Deploy Preview
GDG Incheon Improved instrumentation testing
GDG Incheon Improved instrumentation testing
GDG Incheon Improved instrumentation testing
GDG Incheon Emulators
Foldables • Foldable ױ݈ Hinge ਗ • Emulator Extended controls
> Virtual sensors ীࢲ ߸҃ • അח ࣻزਵ۽ config.ini ী Hinge ੑ۱ਵ۽ ഝࢿച https://androidstudio.googleblog.com/2020/06/emulator-30017-canary.html
GDG Incheon Hinge angle sensor hw.sensor.hinge = yes hw.sensor.hinge.count =
2 hw.sensor.hinge.ranges = 0-360,0-360 hw.sensor.hinge.defaults = 180,180 hw.sensor.hinge.areas = 0-987-1440-0, 0-1974-1440-0 hw.sensor.posture_list = 1, 2, 3, 4 hw.sensor.hinge_angles_posture_definitions = 0-30 & 0-30, 30-150 & 30-150, 150-210 & 150-210, 210-360 & 210-360 https://cs.android.com/android/platform/superproject/+/master:prebuilts/ android-emulator/linux-x86_64/lib/hardware-properties.ini;l=535 Add lines to ~/.android/avd/avdName.avd/config.ini
GDG Incheon Create AVD • Open AVD (on 4.1 or
Higher) • Category > Tablet • Create 13.5” Freeform
GDG Incheon
v4.0 Motion Editor “Live” Layout Inspector Layout Validation Custom View
Preview CPU Profiler Update R8 Rules Editing Build Analyzer Dynamic Feature Dependency Intellij 2019.3 android studio Database Inspector Dependency Injection tools Faster Apply Changes Gradle Config Caching Android Emulator in IDE Instrumentation Testing Profiler UI Updates Native Memory Profiling New Gradle API MLKit & TFLite Model Import Intellij 2020.1 Wireless ADB Debugging Compose Interactive Preview Compose Animation Visualization ConstraintLayout Visualization Compose Theme Preview Compose Deploy to Device Sample Data API for Compose Compose Editing Support Test Failure Retention Intellij 2020.2 v4.1 v4.2
GDG Incheon Reference Android Studio Release • https://developer.android.com/studio/releases#4-0-0 • https://developer.android.com/studio/preview/features#4.1
• https://developer.android.com/studio/preview/features#4.2 • https://android-developers.googleblog.com/2020/05/android-studio-4.html Medium • https://medium.com/androiddevelopers/layout-inspector-1f8d446d048 • https://medium.com/androiddevelopers/database-inspector-9e91aa265316 • https://medium.com/androiddevelopers/whats-new-in-android-studio-system-trace-5841465c5935 • https://medium.com/androiddevelopers/support-for-newer-java-language-apis-bca79fc8ef65 • https://medium.com/androiddevelopers/dagger-navigation-support-in-android-studio-49aa5d149ec9 • https://medium.com/androiddevelopers/android-at-large-how-to-bring-optimized-experiences-to-the-big-screen- a50a6784e59d
GDG Incheon Thanks!! http://pluu.github.io @pluulove