Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android 11 Meetups - What’s new in Android Studio

Android 11 Meetups - What’s new in Android Studio

Android 11 Meetups 에서 발표한 자료입니다.

pluulove (노현석)

July 30, 2020
Tweet

More Decks by pluulove (노현석)

Other Decks in Programming

Transcript

  1. GDG Incheon What’s new in Android Studio in 4.0, 4.1,

    4.2 HyeonSeok Noh Google Developer Experts for Android
  2. 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
  3. 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
  4. 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
  5. 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)
  6. 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 ߊ಴
  7. 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 } }
  8. 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
  9. GDG Incheon Summary .java .javac .class 3rd party libs D8/R8

    App .dex(s) j$ .dex Library desugaring j$.util.stream j$.time … {
  10. // 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 }
  11. 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 ੹୓ ӝࠄ ࢸ੿ ୊ܻ
  12. GDG Incheon on AGP 4.0+ on Android Studio 4.0+ Analyze

    the project's build performance Build… ing… ing…
  13. GDG Incheon Build Analyzer • ࠽٘ दрਸ Ѿ੿ೞח ೦ݾٜਸ ࠙ࢳ

    • Task ѐࢶਵ۽ ੹୓ ࠽٘ दрਸ ઴ੌ ࣻ ੓ח ನੋ౟ https://developer.android.com/studio/build/build-analyzer
  14. GDG Incheon Build Analyzer Pluginsਵ۽ ߊࢤೞח दр ഛੋ OSS ۄ੉ࣃझ

    јन਷ ݒ ࠽٘दী јनೡ ೙ਃח হ׮ (੹୓ ઺ 313s / 68.2%)
  15. GDG Incheon Build Analyzer ~ Tasks • Critical Path Task੄

    दрਸ ഛੋ • ࠽٘ दрਸ Ѿ੿ೞח ઱ਃ Taskܳ ഛੋ
  16. GDG Incheon Build Analyzer ~ Warnings ೦࢚ ز੘ೞח Taskо ੓ח

    ҃਋, 1. Task ࣻ੿ 2. Library Issue ١۾
  17. GDG Incheon Advanced Tips ~ Build Scan ./gradlew assembleDebug --scan

    https://guides.gradle.org/creating-build-scans/
  18. 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) • ؊਌ ૒ҙ੸ਵ۽ ఐ࢝ • ࠙ࢳ ಁօ ѐࢶ
  19. GDG Incheon Inspect system traces • ఋ੐ ۄੋীࢲ੄ п झۨ٘ীࢲ

    ߊࢤೞח ੉߮౟ • ݽٚ CPU ௏যীࢲ झۨ٘ ഝز • UI झۨ٘ ߂ ೐ۨ੐ ࣘب ੷ೞܳ ਬߊೞח ߽ݾ അ࢚ ഛੋ GDG Incheon
  20. 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
  21. GDG Incheon Material Icons Filled Outlined Rounded Sharp Two Tone

    • 1,000+ icons • 5 ઙܨ੄ ప݃ File > New > Image Assert / Vector Assert
  22. GDG Incheon Live Layout Inspector • 3D View (Rotate View)

    • Live Updates • Modify Layer Spacing • Required API Level 29+ on Devices
  23. GDG Incheon Property value resolution stack • ܻࣗझ ч੉ द੘غח

    ਤ஖ܳ ઑࢎ • Override غח ܻࣗझ ഛੋ https://developer.android.com/studio/releases#4-0-0-live-layout-inspector
  24. GDG Incheon Smart editor for code shrinker rules • R8

    ௏٘ ୷ࣗ ӏ஗ ౵ੌ(proguard-rules.pro)ਸ ৌ ٸ झ݃౟ ಞ૘ӝ ӝמ • Class, Method, Field ী ؀ೠ ࡅܲ ఐ࢝җ Rename ૑ਗ
  25. GDG Incheon Beta 5 Android Studio 4.1 • Material Design

    Project • IDE configuration • Dagger navigation • Emulator directly • Database Inspector • Custom View Preview
  26. Material Design Components : Updated themes and styles Android Studio

    4.1 ࠗఠ ݠ౭ܻ঴ ٣੗ੋ੉ ӝࠄ ੸ਊ
  27. 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
  28. GDG Location Dagger navigation support GDG Incheon New gutter actions

    Dagger ҙ۲ ௏٘ܳ औѱ ఐ࢝ ੄ઓࢿ ҕә੗(Provider) ఐ࢝ ੄ઓࢿ ࢎਊ੗(Related) ఐ࢝
  29. Launch in a tools window AS 4.1 or Higher Preferences

    | Tools | Emulator Emulator੄ प೯ ਤ஖ܳ ߸҃ • On : IDEী ࠽౟ੋػ ഋక • Off : ӝઓ ߑध
  30. 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
  31. GDG Incheon Navigate Menu • View - Tools Windows -

    Database Inspector • ೞױ Tool ݫ׏ - Database Inspector GDG Incheon
  32. Database Inspector DB / Table ഛੋ @Query ۽ ੿੄ػ Action

    प೯ (Database Inspectionदী݅ ഝࢿച) GDG Incheon
  33. GDG Incheon Recurring trace event • ӝࠄ trace (Count, Average,

    Max, Min …) • о੢ ӟ प೯ ୊ܻ ഛੋ
  34. GDG Incheon Canary 5 Android Studio 4.2 • Support for

    Jetpack Compose • Improved instrumentation testing
  35. 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
  36. GDG Incheon • Tools Attribute੄ Sample Data৬ ਬࢎ • ױੌ

    ۨ੉ইਓਸ ࠂࣻ ؘ੉ఠ۽ ഛੋೞҊ र ਷ ҃਋ী ਬਊೣ • PreviewParameterProvider • Data ઁҕਸ ҳഅೞח ੋఠಕ੉झ • PreviewParameter • Data ࣻन੗ܳ ૑੿ೞח Annotation PreviewParameter GDG Incheon
  37. Foldables • Foldable ױ݈੄ Hinge ૑ਗ • Emulator Extended controls

    > Virtual sensors ীࢲ ߸҃ • അ੤ח ࣻزਵ۽ config.ini ী Hinge ੑ۱ਵ۽ ഝࢿച https://androidstudio.googleblog.com/2020/06/emulator-30017-canary.html
  38. 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
  39. GDG Incheon Create AVD • Open AVD (on 4.1 or

    Higher) • Category > Tablet • Create 13.5” Freeform
  40. 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
  41. 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