Package jadx.api

Class JadxDecompiler

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public final class JadxDecompiler
    extends java.lang.Object
    implements java.io.Closeable
    Jadx API usage example:
     
    
     JadxArgs args = new JadxArgs();
     args.getInputFiles().add(new File("test.apk"));
     args.setOutDir(new File("jadx-test-output"));
     try (JadxDecompiler jadx = new JadxDecompiler(args)) {
        jadx.load();
        jadx.save();
     }
     
     

    Instead of 'save()' you can iterate over decompiled classes:

     
    
      for(JavaClass cls : jadx.getClasses()) {
          System.out.println(cls.getCode());
      }
     
     
    • Constructor Detail

      • JadxDecompiler

        public JadxDecompiler()
      • JadxDecompiler

        public JadxDecompiler​(JadxArgs args)
    • Method Detail

      • load

        public void load()
      • reloadPasses

        public void reloadPasses()
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
      • registerPlugin

        public void registerPlugin​(JadxPlugin plugin)
      • getVersion

        public static java.lang.String getVersion()
      • save

        public void save()
      • saveSources

        public void saveSources()
      • saveResources

        public void saveResources()
      • getSaveTaskExecutor

        public ITaskExecutor getSaveTaskExecutor()
      • getSaveExecutor

        @Deprecated(forRemoval=true)
        public java.util.concurrent.ExecutorService getSaveExecutor()
        Deprecated, for removal: This API element is subject to removal in a future version.
      • getSaveTasks

        @Deprecated(forRemoval=true)
        public java.util.List<java.lang.Runnable> getSaveTasks()
        Deprecated, for removal: This API element is subject to removal in a future version.
      • getClasses

        public java.util.List<JavaClass> getClasses()
      • getClassesWithInners

        public java.util.List<JavaClass> getClassesWithInners()
      • getResources

        public java.util.List<ResourceFile> getResources()
      • getPackages

        public java.util.List<JavaPackage> getPackages()
      • getErrorsCount

        public int getErrorsCount()
      • getWarnsCount

        public int getWarnsCount()
      • printErrorsReport

        public void printErrorsReport()
      • getRoot

        @Internal
        public RootNode getRoot()
        Internal API. Not Stable!
      • searchJavaClassByOrigFullName

        @Nullable
        public @Nullable JavaClass searchJavaClassByOrigFullName​(java.lang.String fullName)
      • searchClassNodeByOrigFullName

        @Nullable
        public @Nullable ClassNode searchClassNodeByOrigFullName​(java.lang.String fullName)
      • searchJavaClassOrItsParentByOrigFullName

        @Nullable
        public @Nullable JavaClass searchJavaClassOrItsParentByOrigFullName​(java.lang.String fullName)
      • searchJavaClassByAliasFullName

        @Nullable
        public @Nullable JavaClass searchJavaClassByAliasFullName​(java.lang.String fullName)
      • getJavaNodeByCodeAnnotation

        @Nullable
        public @Nullable JavaNode getJavaNodeByCodeAnnotation​(@Nullable
                                                              @Nullable ICodeInfo codeInfo,
                                                              @Nullable
                                                              @Nullable ICodeAnnotation ann)
      • getJavaNodeAtPosition

        @Nullable
        public @Nullable JavaNode getJavaNodeAtPosition​(ICodeInfo codeInfo,
                                                        int pos)
      • getClosestJavaNode

        @Nullable
        public @Nullable JavaNode getClosestJavaNode​(ICodeInfo codeInfo,
                                                     int pos)
      • getEnclosingNode

        @Nullable
        public @Nullable JavaNode getEnclosingNode​(ICodeInfo codeInfo,
                                                   int pos)
      • reloadCodeData

        public void reloadCodeData()
      • setEventsImpl

        public void setEventsImpl​(IJadxEvents eventsImpl)
      • addCustomCodeLoader

        public void addCustomCodeLoader​(jadx.api.plugins.input.ICodeLoader customCodeLoader)
      • getCustomCodeLoaders

        public java.util.List<jadx.api.plugins.input.ICodeLoader> getCustomCodeLoaders()
      • addCustomPass

        public void addCustomPass​(JadxPass pass)
      • getZipReader

        public jadx.zip.ZipReader getZipReader()
      • addCloseable

        public void addCloseable​(java.io.Closeable closeable)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object