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 (노현석)
Google I/O Extended Incheon 2025 ~ What's new in Android development tools
pluu
1
290
N.E.X.T LEVEL
pluu
3
510
안드로이드 기술 이력서의 최소 조건
pluu
1
2.8k
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
680
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
Other Decks in Programming
See All in Programming
DataformでPythonする / dataform-de-python
snhryt
0
180
Vibe coding コードレビュー
kinopeee
0
450
ライブ配信サービスの インフラのジレンマ -マルチクラウドに至ったワケ-
mirrativ
1
230
TROCCO×dbtで実現する人にもAIにもやさしいデータ基盤
nealle
0
240
20250808_AIAgent勉強会_ClaudeCodeデータ分析の実運用〜競馬を題材に回収率100%の先を目指すメソッドとは〜
kkakeru
0
180
What's new in Adaptive Android development
fornewid
0
140
Comparing decimals in Swift Testing
417_72ki
0
170
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
10
1.8k
マイコンでもRustのtestがしたい その2/KernelVM Tokyo 18
tnishinaga
2
2.3k
ゲームの物理
fadis
5
1.2k
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
850
Langfuseと歩む生成AI活用推進
licux
3
250
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
20k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
Bash Introduction
62gerente
614
210k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
810
For a Future-Friendly Web
brad_frost
179
9.9k
Site-Speed That Sticks
csswizardry
10
770
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
The Pragmatic Product Professional
lauravandoore
36
6.8k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
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