public static List < String > getDexFilePaths ( Context context ) { ApplicationInfo appInfo = context . getApplicationInfo ( ) ; File sourceApk = new File ( appInfo . sourceDir ) ; List < String > sourcePaths = new ArrayList <> ( ) ; sourcePaths . add ( appInfo . sourceDir ) ; if ( ! isVMMultidexCapable ( ) ) { String extractedFilePrefix = sourceApk . getName ( ) + EXTRACTED_NAME_EXT ; int totalDexNumber = getMultiDexPreferences ( context ) . getInt ( KEY_DEX_NUMBER , 1 ) ; File dexDir = new File ( appInfo . dataDir , CODE_CACHE_SECONDARY_DIRECTORY ) ; for ( int secondaryNumber = 2 ; secondaryNumber <= totalDexNumber ; secondaryNumber ++ ) { String fileName = extractedFilePrefix + secondaryNumber + EXTRACTED_SUFFIX ; File extractedFile = new File ( dexDir , fileName ) ; if ( extractedFile . isFile ( ) ) { sourcePaths . add ( extractedFile . getAbsolutePath ( ) ) ; } } } if ( AndServer . isDebug ( ) ) { sourcePaths . addAll ( loadInstantRunDexFile ( appInfo ) ) ; } return sourcePaths ; }
Obtain all the dex path .