Video není dostupné.
Omlouváme se.

Troubleshooting app performance issues with System Trace in Android Studio

Sdílet
Vložit
  • čas přidán 17. 08. 2024
  • App performance issues can be difficult to track down. System Trace is a powerful tool in Android Studio that can help you understand how your app’s code interacts with system resources. We recently improved System Trace to make it more usable and helpful. In this video, we'll show you how to troubleshoot performance issues with System Trace by walking through a demo and impart some tips and tricks for making the most out of the tool.
    Time stamps:
    0:27 System Trace Overview
    2:59 Demo starts
    3:56 How to capture a System Trace in AS
    4:35 Navigating a trace in AS
    11:06 Adding Custom Events to your app's code
    13:01 How to enable System Trace on app start-up
    Resources:
    What’s New in Android Studio System Trace → goo.gle/39clMtw
    Download Android Studio Beta → goo.gle/2WDUPtM
    Send feedback → goo.gle/3jmddRC
    System Trace Documentation → goo.gle/3eHf4wJ
    How to define custom events → goo.gle/30xJWdZ
    IOSched app on Github → goo.gle/3jmdvrG
    Android Graphics Inspector → goo.gle/3fR2hJC
    Check out the 11 Weeks of Android website → goo.gle/30FDT8S
    Related Playlists:
    Android Developer Tools - 11 Weeks of Android playlist → goo.gle/androi...
    11 Weeks of Android playlist → goo.gle/androi...
    Subscribe to Android Developers → goo.gle/Androi...
    Speaker:
    Yi Yang
    #featured #android11 #11WeeksOfAndroid

Komentáře • 41

  • @yiyang_google
    @yiyang_google Před 4 lety +15

    0:27 System Trace Overview
    2:59 Demo starts
    3:56 How to capture a System Trace in AS
    4:35 Navigating a trace in AS
    11:06 Adding Custom Events to your app's code
    13:01 How to enable System Trace on app start-up

  • @FelipeRRM
    @FelipeRRM Před 4 lety +5

    Excellent content and tool, will give it a try now as we are struggling with performance on some very specific phones that are not even low-end.

  • @ravinderchhaba215
    @ravinderchhaba215 Před 2 lety +1

    Very nice useful, safe and secure teachings about Android devices

    • @AndroidDevelopers
      @AndroidDevelopers  Před 2 lety

      Thank you so much for the positive feedback, Ravinder 😀
      Be sure to check out the links in the description for even more tips and tutorials!

  • @denisreinoso3191
    @denisreinoso3191 Před 3 lety

    HUMBLE SYMMARY
    System trace helps get the full picture of the app’s runtime performance by capturing performance data from all of your layers.
    Can optional define custom events to instrument your app code to tie up functionality with the rest of all the data. In a nutshell System Trace is a tool that allows how your app interacts with system resources.
    The process is kind of:
    1. Run profiler
    2. Select area of interest
    3. Can correlate what the code is doing with the instrumentation framework
    4. Check the top-down tree view and can see the exact times of these trace events
    Also you can check the start app performance Run/Debug configurations -> start this recording at start up -> Trace system calls

  • @oleksee
    @oleksee Před 4 lety +2

    Thanks for this great video. This was very useful and the tutorial we were really missing I think.

  • @andriibogachenko2537
    @andriibogachenko2537 Před rokem +1

    Great Simple video with nice explanation! Thanks

  • @denisreinoso3191
    @denisreinoso3191 Před 3 lety +2

    Amazing! you just helped me to fix a bug

  • @yichu1782
    @yichu1782 Před 3 lety +1

    It would be great if the Android Studio System Trace adds more information such as SurfaceView or SurfaceTexture like the Old systrace tools do

    • @yichu1782
      @yichu1782 Před 3 lety

      @Android Developers, @Yi Yang

    • @yiyang_google
      @yiyang_google Před 3 lety

      @@yichu1782 SurfaceView in the old systrace actually represents the depth of BufferQueue, so in Android Studio 4.2 we added a BufferQueue track in the Display section. As for SurfaceTexture, I'm actually not familiar with what it represents in the old systrace. Can you elaborate?

  • @shuangshuangliu
    @shuangshuangliu Před 4 lety +1

    Good job bro @Yi Yang.

  • @mwshubham
    @mwshubham Před 3 lety

    Does progress dialog causes frozen frames?

  • @LacuevadelprogramadorOficial

    this will help me understand the performance

  • @noliebowtie1315
    @noliebowtie1315 Před 3 lety

    I learned a lot from this, thanks!

  • @mohammadtahirshaikh7132

    I cannot get option to new navigation gesture > I have latest Android 10 on my redmi note 8 pro handsets why but any problem

    • @yiyang_google
      @yiyang_google Před 4 lety

      Some of the features are in Android Studio 4.1 Beta. Feel free to try it out: developer.android.com/studio/preview/

  • @alexneeky7920
    @alexneeky7920 Před 4 lety

    Awesome, more real world examples would be great

  • @usabilist
    @usabilist Před 3 lety

    What could be a reason that Frames/SurfaceFlinger/VSYNC are empty for me? (Studio 4.1.3)

    • @yiyang_google
      @yiyang_google Před 3 lety

      What's your device's API level? Frame data are available on Android O or later. SF and VSYNC are available on Android Q or later.

    • @usabilist
      @usabilist Před 3 lety

      @@yiyang_google Android Q. I assume other prerequisites must be fulfilled, like vendor GPU driver supporting some features, no?

    • @yiyang_google
      @yiyang_google Před 3 lety

      @@usabilist Can you open a bug by going to Help -> Submit Feedback? In the bug, upload your trace file (if you don't want the file to be public we can set up a shared folder) so we can investigate. Thanks!

    • @usabilist
      @usabilist Před 3 lety

      @@yiyang_google Sorry do not think it is possible, it is a closed project behind NDA. I hoped to understand more what is required to enable those features but if you do not have the answer we should stop.

    • @yiyang_google
      @yiyang_google Před 3 lety +1

      @@usabilist I understand. Another place to check is the main thread in the Threads section. If you can't find Choreographer#doFrame events in the call chart, it might explain why Frames is empty for you. That could mean either your app is not using Choreographer, or the OEM has a custom implementation.

  • @anesabismail6111
    @anesabismail6111 Před 4 lety

    Great tool and explanation.

  • @xiangzhongchang2663
    @xiangzhongchang2663 Před 4 lety

    @Yi Yang great work!

  • @mohamedsalama2743
    @mohamedsalama2743 Před 2 lety +1

    Great Video!

    • @AndroidDevelopers
      @AndroidDevelopers  Před 2 lety

      Thank you very much, Mohamed! We're glad you have enjoyed the video. If you'd like to learn additional resources, check out the System Tracing documentation here: goo.gle/3T8JHke
      Happy learning 😁

  • @mwshubham
    @mwshubham Před 3 lety

    Great Video. Thank you so much.

  • @Patriqu
    @Patriqu Před 4 lety

    Great tool!

  • @bignorth5197
    @bignorth5197 Před 2 lety

    please offer your demo code.

  • @halcyonramirez6469
    @halcyonramirez6469 Před 3 lety

    Is it possible to convert the trace to an automation friendly format?
    such as JSON?
    After the loading the trace all you can do is look at it. You can't even copy the node names on the clipboard
    is it possible to somehow be able to export the parsed trace to JSON or something?
    It could help with analytics of current and previous performance by comparing traces programmatically

    • @yiyang_google
      @yiyang_google Před 3 lety

      Thank you for the feedback. A trace file contains a huge amount of data so we need to understand exactly what information is useful for export. Can you open a feature request here (issuetracker.google.com/issues/new?component=192708&template=840533) and elaborate on the kind of data you're interested in? Thanks!

    • @yiyang_google
      @yiyang_google Před 3 lety

      Meanwhile, Perfetto (perfetto.dev/docs/quickstart/trace-analysis) provides a SQL like interface for querying certain data from a system trace (also works on trace files captured in Android Studio), see if it helps in your case.

  • @lukeyd2000
    @lukeyd2000 Před 3 lety

    10:57 [INAUDIBLE] translates to "app code"

  • @pembatamang8233
    @pembatamang8233 Před 3 lety

    great video

  • @MrDanamiel
    @MrDanamiel Před 4 lety

    keep repeating the video and still dont know how to start profiler here @_@

    • @shukangzhou109
      @shukangzhou109 Před 4 lety

      To start profilers in Android Studio, choose View > Tool Windows > Profiler or click Profile in the toolbar. Here is the official doc to Android Studio profilers: developer.android.com/studio/profile/android-profiler. What this video focuses on, System Trace, is in the CPU profiler.

  • @PalCan
    @PalCan Před 3 lety

    Why do I understand this. I'm a pharmacist for Gods sake. 😅

  • @BillyDaGoat783
    @BillyDaGoat783 Před 4 měsíci

    Now I will go destroy my phones operating system...wish me luck!