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
360
N.E.X.T LEVEL
pluu
3
530
안드로이드 기술 이력서의 최소 조건
pluu
1
3.1k
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
700
Android Studio와 좀 더 친해지기
pluu
0
200
우리모두 삽질한다
pluu
0
1.4k
Re:Android Studio 설정 살펴보기 및 생산성 올리기
pluu
0
1.7k
What's new in Android development tools
pluu
1
910
What's new in Android development tools
pluu
1
460
Other Decks in Programming
See All in Programming
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
190
他言語経験者が Golangci-lint を最初のコーディングメンターにした話 / How Golangci-lint Became My First Coding Mentor: A Story from a Polyglot Programmer
uma31
0
340
NIKKEI Tech Talk#38
cipepser
0
170
CSC305 Lecture 09
javiergs
PRO
0
310
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
3
700
「ちょっと古いから」って避けてた技術書、今だからこそ読もう
mottyzzz
12
7.1k
チームの境界をブチ抜いていけ
tokai235
0
210
実践Claude Code:20の失敗から学ぶAIペアプログラミング
takedatakashi
18
8k
コード生成なしでモック処理を実現!ovechkin-dm/mockioで学ぶメタプログラミング
qualiarts
0
260
スキーマ駆動で、Zod OpenAPI Honoによる、API開発するために、Hono Takibiというライブラリを作っている
nakita628
0
310
What's new in Spring Modulith?
olivergierke
1
170
CSC509 Lecture 05
javiergs
PRO
0
310
Featured
See All Featured
Music & Morning Musume
bryan
46
6.9k
Fireside Chat
paigeccino
40
3.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Producing Creativity
orderedlist
PRO
347
40k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
The Language of Interfaces
destraynor
162
25k
Thoughts on Productivity
jonyablonski
70
4.9k
A better future with KSS
kneath
239
18k
Code Reviewing Like a Champion
maltzj
526
40k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
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