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
920
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 (노현석)
안드로이드 기술 이력서의 최소 조건
pluu
1
1.8k
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
510
Android Studio와 좀 더 친해지기
pluu
0
110
우리모두 삽질한다
pluu
0
1.3k
Re:Android Studio 설정 살펴보기 및 생산성 올리기
pluu
0
1.5k
What's new in Android development tools
pluu
1
830
What's new in Android development tools
pluu
1
410
개발자 Side Next Step ~ 커뮤니티 x Android
pluu
2
240
Modern Android Developer ~ 안내서
pluu
1
3k
Other Decks in Programming
See All in Programming
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
7
7.8k
광고 소재 심사 과정에 AI를 도입하여 광고 서비스 생산성 향상시키기
kakao
PRO
0
170
Click-free releases & the making of a CLI app
oheyadam
2
120
CSC509 Lecture 11
javiergs
PRO
0
180
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
930
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
8
2.2k
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
as(型アサーション)を書く前にできること
marokanatani
10
2.7k
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
150
Jakarta EE meets AI
ivargrimstad
0
180
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
A designer walks into a library…
pauljervisheath
204
24k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Become a Pro
speakerdeck
PRO
25
5k
GraphQLとの向き合い方2022年版
quramy
43
13k
Making Projects Easy
brettharned
115
5.9k
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