How To Find Unused Classes In Android Studio

In this document

  1. Use the System Log
  2. Work with Breakpoints

See also

Android Studio enables you to debug apps running on the emulator or on an Android device.With Android Studio, you can:

You can also find it in an Android Studio project view list like below: Why Can I Not Find the R Class In the Android Studio? This is a common dilemma because you select the wrong subview in the. To identify all unused resources: Open Menu Analyze Run Inspection by Name Select “Unused Resources” Make sure Whole project is checked, then press OK. Look through the list. You can always rerun the Inspection with the Rerun button. There is no really easy way in Android Studio (v 1.0) to remove a resource string for all locales. Android IntelliJ Errors Cannot resolve R.raw Cannot find symbols (3) cannot resolve symbol HttpEntity Error: cannot find symbol variable hierarchy using opencv in android studio.

Android Studio makes it easier to navigate between your Dagger-related code by providing new gutter actions and extending support in the Find Usages window. For example, clicking on the gutter action next to a method that consumes a given type navigates you to the provider of that type. Auto Import Classes In Android Studio. 1.1 For Windows or Linux. If your android studio is running on Windows or Linux, you can follow below steps. Click File — Settings menu item. Click Editor — General — Auto Import in the popup dialog. In the right panel, choose All from the Insert imports on paste drop down list.

  • Select a device to debug your app on.
  • View the system log.
  • Set breakpoints in your code.
  • Examine variables and evaluate expressions at run time.
  • Run the debugging tools from the Android SDK.
  • Capture screenshots and videos of your app.

To debug your app, Android Studio builds a debuggable version of your app, connectsto a device or to the emulator, installs the app and runs it. The IDE shows the system logwhile your app is running and provides debugging tools to filter log messages, work withbreakpoints, and control the execution flow.

Run your App in Debug Mode

Figure 1. The Choose Device window enables you to select a physical Android device or a virtual device to debug your app.

To run your app in debug mode, you build an APK signed with a debug key and install it on aphysical Android device or on the Android emulator.To set up an Android device for development, see UsingHardware Devices. For more information about the emulator provided by the Android SDK, seeUsing the Emulator.

To debug your app in Android Studio:

  1. Open your project in Android Studio.
  2. Click Debug in the toolbar.
  3. On the Choose Device window, select a hardware device from the list or choose a virtual device.
  4. Click OK. Your app starts on the selected device.

Figure 1 shows the Choose Device window. The list shows all the Android devicesconnected to your computer. Select Launch Emulator to use an Android virtual deviceinstead. Click the ellipsis to open theAndroid Virtual Device Manager.

Android Studio opens the Debug tool window when you debug your app. To open theDebug window manually, click Debug.This window shows threads and variables in the Debugger tab, the device status in theConsole tab, and the system log in the Logcat tab. The Debug toolwindow also provides other debugging tools covered in the following sections.

Figure 2. The Debug tool window in Android Studio showingthe current thread and the object tree for a variable.

Use the System Log

The system log shows system messages while you debug your app. These messages includeinformation from apps running on the device. If you want to use thesystem log to debug your app, make sure your code writes log messages and prints the stacktrace for exceptions while your app is in the development phase.

Write log messages in your code

To write log messages in your code, use the Log class. Log messageshelp you understand the execution flow by collecting the system debug output while you interactwith your app. Log messages can tell you what part of your application failed. For moreinformation about logging, see Reading and Writing Logs.

The following example shows how you might add log messages to determine if previous stateinformation is available when your activity starts:

During development, your code can also catch exceptions and write the stack trace to the systemlog:

Note: Remove debug log messages and stack trace print calls fromyour code when you are ready to publish your app. You could do this by setting a DEBUGflag and placing debug log messages inside conditional statements.

View the system log

Both the Android DDMS (Dalvik Debug Monitor Server) and the Debug tool windowsshow the system log; however, the Android DDMS tool window lets you view only log messagesfor a particular process. To view the system log on the Android DDMS tool window:

  1. Start your app as described in Run your App in Debug Mode.
  2. Click Android to open the Android DDMS tool window.
  3. If the system log is empty in the Logcat view, click Restart .

Figure 4. The system log in the Android DDMS toolwindow.

The Android DDMS tool window gives you access to some DDMS features from Android Studio.For more information about DDMS, see Using DDMS.

The system log shows messages from Android services and other Android apps. To filter the logmessages to view only the ones you are interested in, use the tools in the Android DDMSwindow:

  • To show only log messages for a particular process, select the process in the Devices view and then click Only Show Logcat from Selected Process . If the Devices view is not available, click Restore Devices View on the right of the Android DDMS tool window. This button is only visible when you hide the Devices window.
  • To filter log messages by log level, select a level under Log Level on the top of the Android DDMS window.
  • To show only log messages that contain a particular string, enter the string in the search box and press Enter.

Work with Breakpoints

Breakpoints enable you to pause the execution of your app at a particular line of code, examinevariables, evaluate expressions, and continue the execution line by line. Use breakpoints todetermine the causes of run-time errors that you can't fix by looking at your code only. To debugyour app using breakpoints:

  1. Open the source file in which you want to set a breakpoint.
  2. Locate the line where you want to set a breakpoint and click on it.
  3. Click on the yellow portion of the side bar to the left of this line, as shown in figure 5.
  4. Start your app as described in Run your App in Debug Mode.

Android Studio pauses the execution of your app when it reaches the breakpoint. You can thenuse the tools in the Debug tool window to identify the cause of the error.

Figure 5. A red dot appears next to the line when you seta breakpoint.

View and configure breakpoints

To view all the breakpoints and configure breakpoint settings, click ViewBreakpoints on the left side of the Debug toolwindow. The Breakpoints window appears, as shown in figure 6.

Figure 6. The Breakpoints window lists all the currentbreakpoints and includes behavior settings for each.

The Breakpoints window lets you enable or disable each breakpoint from thelist on the left. If a breakpoint is disabled, Android Studio does not pause your app whenit hits that breakpoint. Select a breakpoint from the list to configure its settings.You can configure a breakpoint to be disabled at first and have the system enable it after adifferent breakpoint is hit. You can also configure whether a breakpoint should be disabled afterit is hit. To set a breakpoint for any exception, select Exception Breakpointsin the list of breakpoints.

Debug your app with breakpoints

After you set breakpoints in your code, click Rerun to start the app again. When a breakpoint ishit, Android Studio pauses the app and highlights the breakpoint in the source code. TheDebug tool window lets you examine variables and control the execution step bystep:

  • To examine the object tree for a variable, expand it in the Variables view. If the Variables view is not visible, click Restore Variables View .

  • To evaluate an expression at the current execution point, click Evaluate Expression .

  • To advance to the next line in the code (without entering a method), click Step Over .

  • To advance to the first line inside a method call, click Step Into .

  • To advance to the next line outside the current method, click Step Out .

  • To continue running the app normally, click Resume Program .

Figure 7. The Variables view in the Debug tool window.

Track Object Allocation

Android Studio lets you track objects that are being allocated on the Java heap and see whichclasses and threads are allocating these objects. This allows you to see the list of objectsallocated during a period of interest. This information is valuable for assessing memory usagethat can affect application performance.

To track memory allocation of objects:

How to find unused classes in android studio app
  1. Start your app as described in Run Your App in Debug Mode.
  2. Click Android to open the Android DDMStool window.
  3. On the Android DDMS tool window, select the Devices logcat tab.
  4. Select your device from the dropdown list.
  5. Select your app by its package name from the list of running apps.
  6. Click Start Allocation Tracking
  7. Interact with your app on the device.
  8. Click Stop Allocation Tracking

Android Studio shows the objects that the system allocated with the following information:

  • Allocation order
  • Allocated class
  • Allocation size
  • Thread ID
  • Allocation method, class, and line number
  • Stack trace at the point of allocation

Figure 8. Object allocation tracking in Android Studio.

Analyze Runtime Metrics to Optimize your App

Even if your application does not generate runtime errors, this does not mean it is free ofproblems. You should also consider the following issues:

  • Does your app use memory efficiently?
  • Does your app generate unnecessary network traffic?
  • What methods should you focus your attention on to improve the performance of your app?
  • Does your app behave properly when the user receives a phone call or a message?

The Android Device Monitor is a stand-alone tool with a graphical user interface for serveralAndroid application debugging and analysis tools, including the Dalvik Debug Monitor Server (DDMS).You can use the Android Device Monitor to analyze memory usage, profile methods,monitor network traffic and simulate incoming calls and messages.

How to find unused classes in android studio software

To open the Android Device Monitor from Android Studio, clickMonitor on the toolbar. The Android Device Monitoropens in a new window.


For more information about the Android Device Monitor and DDMS, seeDevice Monitor andUsing DDMS.

Capture Screenshots and Videos

Android Studio enables you to capture a screenshot or a short video of the device screenwhile your app is running. Screenshots and videos are useful as promotional materials for yourapp, and you can also attach them to bug reports that you send to your development team.

How To Find Unused Classes In Android Studio

To take a screenshot of your app:

How To Find Unused Classes In Android Studio Windows 10

  1. Start your app as described in Run your App in Debug Mode.
  2. Click Android to open the Android DDMS tool window.
  3. Click Screen Capture on the left side of the Android DDMS tool window.
  4. Optional: To add a device frame around your screenshot, enable the Frame screenshot option.
  5. Click Save.

To take a video recording of your app:

  1. Start your app as described in Run your App in Debug Mode.
  2. Click Android to open the Android DDMS tool window.
  3. Click Screen Record on the left side of the Android DDMS tool window.
  4. Click Start Recording.
  5. Interact with your app.
  6. Click Stop Recording.
  7. Enter a file name for the recording and click OK.
Google is committed to advancing racial equity for Black communities. See how.

With the Create New Class dialog and file templates, AndroidStudio helps you to quickly create the following new classes and types:

  • Java classes
  • Enumeration and singleton classes
  • Interface and annotation types

After you fill in the Create New Class dialog fields and clickOK, Android Studio creates a .java file containingskeleton code, including a package statement, any necessary imports, a header,and a class or type declaration. Next, you can add your code to this file.

File templates specify how Android Studio generates the skeleton code. You canuse the file templates provided with Android Studio as is, or customize them tosuit your development process.

Viewing and customizing file templates

Android Studio provides file templates that determine how new Java classes andtypes are created with the Create New Class dialog. You cancustomize these templates.

Figure 1. The Create New Classdialog.

The Android Studio file templates include Velocity Template Language (VTL) codeand variables that handle these additional options.The Create New Class dialog uses the AnnotationType,Class,Enum, Interface, and Singletonfile templates.

To view the templates, find customizations, and modify the templates, followthese steps:

  1. Do one of the following:

    • For Windows or Linux, select File > Settings > Editor > File and CodeTemplates > Files.
    • For macOS, select Android Studio > Preferences > Editor > File and CodeTemplates > Files.

    In the template list,internal template names are in bold font. Customized template names aredisplayed in a highlight color, such as blue.

  2. Customize the file templates as needed.

    If you want to use the Create New Class dialog fields, make sure yourchanges comply with the Android Studio file template code.

For more information about file templates, including VTL, see Fileand Code Templates and Fileand Code Templates Dialog.

Creating a Java class or type

Android Studio helps you to create new Java classes; enumeration and singletonclasses; and interface and annotation types based on file templates.

To create a new Java class or type, follow these steps:

  1. In the Project window, right-click a Java file or folder,and select New >Java Class.
  2. Alternatively, select a Java file or folder in the Projectwindow, or click in a Java file in the Code Editor. Then selectFile >New >Java Class.

    The item you select determines the default package for the new class or type.

  3. In the Create New Class dialog, fill in the fields:
    • Name - The name of the new class or type. It must complywith Java name requirements. Don’t type a file name extension.
    • Kind - Select the category of class or type.
    • Superclass - The class that your new class inherits from.You can type the package and class name, or just the class name and thendouble-click an item in the drop-down list to autocomplete it.
    • Interface(s) - One or more interfaces that the new class ortype implements. Multiple interfaces should be separated by a comma followed by anoptional space. You can type the package and interface name, or just theinterface name and then double-click an item in the drop-down list toautocomplete it.
    • Autocomplete works for the first interface name only. Note that whilethe comma and the following interface name can bring up a tooltip error, you can ignore the error because it doesn’t affect the generated code.

    • Package - The package that the class or type will residein. The default automatically appears in the field. If you type a package namein the field, any portions of the package identifier that don’t exist arehighlighted red; in this case, Android Studio creates the package after youclick OK. This field must contain a value; otherwise, the Javafile won’t contain a package statement, and the class or type won’t be placed within a package in the project.
    • The default depends on how youlaunched the Create New Class dialog. If you first selected aJava file or folder in the Project window, the default is thepackage for the item you selected. If you first clicked in a Java file in the Code Editor, the default is the package that contains this file.

    • Visibility - Select whether the class or type is visible toall classes, or just to those in its own package.
    • Modifiers - Select the Abstract orFinal modifier for a Class, or neither.
    • Show Select Overrides Dialog - For a Kindof Class, check this option to open the SelectMethods to Override/Implement dialog after you click OK. Inthis dialog, you can select methods that you would like to override orimplement, and Android Studio will generate skeleton code for these methods.

    Any fields that don’t apply to the Kind are hidden.

  4. Click OK.
  5. Android Studio creates a Java file with skeleton code that you can modify. Itopens the file in the Code Editor.

Note: You can create a singleton class by selectingFile > New > Singleton orFile > New > Java Class; thelatter technique offers more options.

Android Studio file templates

How to find unused classes in android studio app

This section lists the Android Studio file template code written in the VTL scripting language, followedby definitions of the variables. The values that you provide in theCreate New Class dialog become the variable values in the template.Note that the lines that begin with#if (${VISIBILITY} extend all the way to the open brace ({ ). 3d dock mac sierra.

AnnotationType file template

Class file template

Enum file template

How To Find Unused Classes In Android Studio Free

Interface file template

Singleton file template

File template variables

How To Find Unused Classes In Android Studio Software

Android Studio replaces file template variables with values in the generatedJava file. You enter the values in the Create New Class dialog.The template has the following variables that you can use:

How To Find Unused Classes In Android Studio App

  • IMPORT_BLOCK - A newline-delimited list of Javaimport statements necessary to support any superclass orinterfaces, or an empty string ('). For example, If you onlyimplement the Runnable interface and extend nothing, this variablewill be 'import java.lang.Runnable;n'. If you implement theRunnable interface and extend the Activity class, it will be'import;nimportjava.lang.Runnable;n'.
  • VISIBILITY - Whether the class will have public access or not.It can have a value of PUBLIC or PACKAGE_PRIVATE.
  • SUPERCLASS - A single class name, or empty. If present, therewill be an extends ${SUPERCLASS} clause after the new class name.
  • INTERFACES - A comma-separated list of interfaces, or empty. Ifpresent, there will be an implements ${INTERFACES} clause after thesuperclass, or after the class name if there’s no superclass. For interfaces andannotation types, the interfaces have the extends keyword.
  • ABSTRACT - Whether the class should be abstract or not. It canhave a value of TRUE or FALSE.
  • FINAL - Whether the class should be final or not. It can have avalue of TRUE or FALSE.