Android Developers Backstage

Android Developers

  • 1 hour 10 minutes
    Episode 211: Rules about performance tools

    In this episode Chet, Romain and Tor chat with Shai Barack about how the Android platform team studies performance and understands system health - and what is system health anyway? We talk about measuring performance, deciding trade-offs, and our favorite tools such as Perfetto, Compiler Explorer, and Android Studio's Memory Profiler.

     

    Chapters:

    Intro (00:00)

    System health (0:27)

    Efforts to make apps more efficient (3:35)

    Telemetry data (5:59)

    Trade offs between long battery life and good performance (8:21)

    Scheduling groups (10:38)

    Static drain (13:32)

    Collaborating with App developers vs operating system (19:10)

    High refresh rates (23:26)

    Reach vs engagement (32:02)

    What tools does your team use to optimize performance? (34:10)

    Godbolt.org (37:09)

    Demystifying (39:39)

    The best tools are multi-player (43:52)

    R8 or R-Not? (45:42)

    Optimizing for feature sets (48:05)

    Tools, not Rules (50:08)

    What are the tools I should be aware of as an app developer looking to upscale performance? (54:36)

    Allocation tracker (55:37)

    Open source tools (57:08)

    Useful resources for devs to understand various tools (59:04)

    Final thoughts (1:06:19)

    Links:

     

    Shai: 

    Romain: @romainguythreads.net/@romainguy, [email protected]

    Tor: threads.net/@tor.norbye and [email protected]

    Chet: @chethaasethreads.net/@chet.haase, and [email protected]

     

    Catch videos on YouTube → https://goo.gle/adb-podcast  

    Subscribe to Android Developers  → https://goo.gle/AndroidDevs

    26 November 2024, 10:03 pm
  • 50 minutes 38 seconds
    Episode 210: Studio Jewelry

    In this episode Chet, Romain and Tor chat with Sebastiano about how the Android Studio team builds UIs. We talk about how Compose for Desktop is used in parts of Android Studio and how the Compose Markdown renderer available in the Jewel library makes Studio Bot tick.

     

    Chapters:

    Intro (00:00)

    Android Dev UX team (00:39)

    What kind of libraries and languages are used to build Android studio? (1:52)

    Swing (2:53)

    Reactive and declarative programming models (8:25)

    SKIA for Kotlin (10:01)

    Jetpack Compose widgets (11:54)

    Jewel (13:07)

    Text rendering across platforms (15:51)

    Differences in behaviors (17:40)

    Support for markdown files (20:26)

    What is markdown? (21:25)

    Swing and html (25:45)

    Selection handling in StudioBot (28:46)

    Boosting productivity with Compose (30:40)

    Standalone vs plugin artifacts (34:29)

    The difference between Jewel & Swing (35:30)

    HTML vs Markdown (39:31)

    Markdeep (41:53)

    Jewel's Markdown API (43:46)

    Where to find Jewel? (46:54)

    Sebastiano’s podcast - Code with the Italians (47:34)

    Final thoughts (49:13)

     

    Links:

     

    Sebastiano: ​​https://github.com/rock3r, https://codewiththeitalians.it/

    Romain: @romainguythreads.net/@romainguy, [email protected]

    Tor: threads.net/@tor.norbye and [email protected]

    Chet: @chethaasethreads.net/@chet.haase, and [email protected]

     

    Catch videos on YouTube → https://goo.gle/adb-podcast  

    Subscribe to Android Developers  → https://goo.gle/AndroidDevs 

    24 October 2024, 5:47 pm
  • 59 minutes 36 seconds
    Episode 209: Compose animations

    In this episode Chet, Romain and Tor chat with Doris Liu from the Compose team about animations in Compose -- covering everything from the basic primitives up to the recently added Shared Element Transitions.

     

    Chapters: Intro (00:00) Animation capabilities of Compose (1:06) Different types of animation specs (3:43) Layers of functionality, transitions (7:49) TargetBasedAnimation (9:48) Vectors & velocity of color change (12:43) Second layer parallel to animation spec (16:39) Animation interruptions (18:48) Motion layout problem-solving (20:19) Both scale and move in question (25:45) Different mental models for layout animation in Compose vs. View (26:20) Shared element (31:05) Are there things you wish more people were aware of? (34:19) What's the tooling story for this? (41:57) What is Look Ahead? (43:16) All software is regret (48:49) New API: Modifier.animateBounds (51:52) How to reach Doris – leave a comment (55:57) Motion Frame of Reference Placement (57:29) Wrap up (59:10)

    Links: Shared element tutorial → https://goo.gle/3XrGYp5  Shared element talk → https://goo.gle/47tm3qm  A quick guide to compose animations → https://goo.gle/3Tm853p  The API layers except the highest level APIs we chatted about in the podcast → https://goo.gle/3MGsiNE

    Doris: @doris4lt

    Romain: @romainguythreads.net/@romainguy, [email protected]

    Tor: threads.net/@tor.norbye and [email protected]

    Chet: @chethaasethreads.net/@chet.haase, and [email protected]  

    Catch more Android Developers Backstage on YouTube → https://goo.gle/adb-podcast    Subscribe to Android Developers YouTube → https://goo.gle/AndroidDevs 

    12 September 2024, 6:23 pm
  • 51 minutes 12 seconds
    Episode 208: Micro optimizations

    In this episode Tor and Romain find themselves without a guest and decide to chat about micro optimizations and writing custom tools.

    Tor and Romain

    Chapters:

    Intro (00:00)

    Micro optimizations (00:32)

    Kotlin explorer (3:25)

    Avoiding object allocations (6:49)

    Code Inefficiencies (8:10)

    Compilers (12:13)

    Understand assembly with AI (18:39)

    Layout opt (21:20)

    Programmers writing tools (21:52)

    char.isBlank (25:35)

    Lint checks (27:59)

    Companion objects (29:40)

    Java assertion mechanism (32:00)

    Hash maps (35:13)

    When to micro optimize and when not to (43:46)

    Benchmarking (47:26)

    New optimizations (48:46)

    Wrap up (50:46)

     

    Romain: @romainguythreads.net/@romainguy, [email protected]

    Tor: threads.net/@tor.norbye and [email protected]

     

    Catch videos on YouTube → https://goo.gle/adb-podcast  

    Subscribe to Android Developers  → https://goo.gle/AndroidDevs 

    18 July 2024, 8:46 pm
  • 52 minutes 20 seconds
    Episode 207: AI development assistance

    In this episode we talk with Kathy Korevec from the AIDA team at Google about AI assisted developer tools, such as Android Studio -- which is using Gemini AI models provided by AIDA.

    Romain, Kathy, and Tor

    Kathy:  twitter.com/simpsoka

    Romain: @romainguythreads.net/@romainguy, [email protected]

    Tor: threads.net/@tor.norbye and [email protected]

     

    Check out → https://goo.gle/3wK4EM4 

     

    Catch videos on YouTube → https://goo.gle/adb-podcast  

    Subscribe to Android Developers  → https://goo.gle/AndroidDevs

    20 June 2024, 7:17 pm
  • 1 hour 52 seconds
    Episode 206: Make it faster

    In this episode we cover ADB -- not "Android Developers Backstage", but "Android Debug Bridge", the technology powering device connections. Romain and Tor talk with Fabien Sanglard from the Android Studio team on his work to improve the debug stack -- including the new USB speed detection feature recently unveiled at Google I/O.

    Chapters:

    Intro (00:00)

    You may know Fabien from… (00:50)

    Applying relevant knowledge to Android Studio (3:28)

    Communicating with remote devices and debugging (12:18)

    Accommodating a debugger (13:55)

    Fixed protocols and how to work around (16:10)

    What other versions of ADB do you use to get the suite faster? (19:27)

    Other ways to make the debugger faster  (20:38)

    The differences between USB cables (21:51)

    How to find the right cable (30:17)

    ADB over wifi (32:41)

    How to detect which usb port is faster on your laptop? (34:46)

    Complexity of new cables (36:57)

    Install time of APK’s (37:41)

    New ways of helping full stack devs (45:44)

    Final thoughts (49:19)

    Viewer questions (57:54)

    Romain: @romainguythreads.net/@romainguy, [email protected]

    Tor: threads.net/@tor.norbye and [email protected]

    Fabien: @fabynou

     

    Check out → https://goo.gle/3wK4EM4 

     

    Catch videos on YouTube → https://goo.gle/adb-podcast  

    Subscribe to Android Developers  → https://goo.gle/AndroidDevs 

    22 May 2024, 8:34 pm
  • 46 minutes 50 seconds
    Episode 205: Time for Playtime

    In this episode, Tor, Romain, and Chet talk with Aurash Mahbod from the Play Games team at Google -- covering trends in mobile games, challenges for Android games developers, console games, and more!

     

    Chapters:

    Intro (00:00)

    What’s Aurash working on currently? (02:40)

    How much is Play store providing users with content based on previous interests? (05:29)

    Longstanding games vs new games (08:34)

    Mobile gaming vs console (10:07)

    Are there stats on what type of games people are playing? (18:07)

    Difficulties and solutions for transitioning games from various devices (21:14)

    Movie corner - War Games (25:15)

    How does Play console help devs optimize engagement? (26:23)

    What is the breakdown of tools that devs actually use for games? (27:53)

    Reducing the backend costs for devs (30:18)

    Where does loyalty content surface? (34:28)

    Balancing add load (35:16)

    Cloud saves (38:18)

    Aurash’s history with Play store (42:18)

    Wrap up (42:58)

    Romain: @romainguy, threads.net/@romainguy, [email protected]

    Tor: threads.net/@tor.norbye and [email protected]

    Chet: @chethaase, threads.net/@chet.haase, and [email protected]

    Aurash: https://twitter.com/aurash - @aurash

    Catch videos on YouTube → https://goo.gle/adb-podcast 

    26 March 2024, 4:00 pm
  • 52 minutes 33 seconds
    Episode 204: Fan’otations

    In this episode, Tor, Romain, and Chet talk about one of Tor’s favorite topics: Lint! Specifically, we talk about Lint checks and the annotations that use them to enable better, more robust, and more self-documenting APIs. Lint: It’s not just for pockets anymore.

    Chapters:

    Intro (00:00)

    Lint checks for annotations (01:50)

    Lint checks in Android (05:38)

    Logic checks (07:34)

    Color representations (10:01)

    How does lint know the type of integer? (14:40)

    Kotlin annotations (17:19)

    Unsigned (20:10)

    HalfFloat (22:25)

    Thread annotations (25:12)

    @CallSuper (28:18)

    LayoutOpt (30:26)

    Lint checks in AndroidX (32:00)

    Restrict to annotation (36:45)

    Writing your own custom Lint checks (39:51)

    Lint testing framework (43:26)

    Kotlin buildList Lint check example (45:25)

    @Discouraged (48:15)

    Wrap up (50:08)

    @Deprecated Chet (50:50)

     

    Romain: @romainguythreads.net/@romainguy, [email protected]

    Tor: threads.net/@tor.norbye and [email protected]

    Chet: @chethaasethreads.net/@chet.haase, and [email protected]

     

    Catch videos on YouTube → https://goo.gle/adb-podcast  

    Subscribe to Android Developers  → https://goo.gle/AndroidDevs 

    21 February 2024, 7:56 pm
  • 58 minutes 19 seconds
    Episode 203: (W)rap

    In this episode, Tor, Romain, and Chet talk about some of the many things that happened this year in the world of Android development, including new devices and form factors, tool improvements, AndroidX features and libraries, and Jetpack Compose releases. And any tech podcast would be remiss without mentioning AI/ML, so we talk about that too.

    Tor, Romain and Chet

    Chapters:

    Intro (00:00)

    Google engineers vs Android (00:57)

    Big changes of 2023 intro (3:03)

    AI (3:38)

    Programming with AI (5:08)

    Writing with AI (8:52)

    New devices from Android - Pixel fold (12:31)

    Pixel watch (18:50)

    Bard (19:37)

    Changes in device release times (20:23)

    Major changes in devices vs incremental updates (21:42)

    Camera (22:40)

    Platform developments - mainline modules (24:03)

    More testing for Android (25:12)

    Flaky tests (26:55)

    Jetpack compose features (32:32)

    RTO (38:00)

    Shapes library and KMP (42:42)

    Final thoughts on big events of 2023 (45:03)

    Studio build improvements (46:43)

    Baseline profiles (49:21)

    Listener mail (50:45)

    Where has Chet been? (52:46)

    Metalava question (55:46)

    Wrap up wrap up (57:00)

     

    Romain: @romainguythreads.net/@romainguy, [email protected]

    Tor: threads.net/@tor.norbye and [email protected]

    Chet: @chethaasethreads.net/@chet.haase, and [email protected]

     

    Catch videos on YouTube → https://goo.gle/adb-podcast  

    Subscribe to Android Developers  → https://goo.gle/AndroidDevs

    21 December 2023, 7:05 pm
  • 53 minutes 56 seconds
    Episode 202: AndroidX, Gradle and Metalava

    In this episode, Tor and Romain chat with Aurimas Liutikas from the AndroidX team. Topics include performance tuning the AndroidX Gradle builds using configuration caching, local caching and remote caching, as well as tracking API compatibility using the Metalava tool.

    Aurimas, Romain and Tor

     

    Romain: @romainguythreads.net/@romainguy, [email protected]

    Tor: threads.net/@tor.norbye and [email protected]

    Aurimas: androiddev.social/@Aurimas and www.liutikas.net/blog-posts

     

    Catch videos on YouTube → https://goo.gle/adb-podcast   

    Subscribe to Android Developers  → https://goo.gle/AndroidDevs  

    1 November 2023, 5:19 pm
  • 44 minutes 53 seconds
    Episode 201: Firebase in Android Studio

    In this episode, Tor and Romain chat with Greg Baker and Joe Baker-Malone about exciting new Android Studio features made possible by Firebase integration. Physical device streaming allows you to connect remotely to physical devices hosted in Google’s secure data centers and use them for all your development needs. We also explore other time saving features like the ability to go from a crash report directly to the correct line of code, even across git branches.

     

    Tor, Romain, Joe, Greg

     

    Links:

    Romain: @romainguy, romainguy@threads, [email protected]

    Tor: tor.norbye@threads and [email protected]

    Greg: @[email protected]

     

    21 September 2023, 7:30 pm
  • More Episodes? Get the App
© MoonFM 2024. All rights reserved.