Skip to content

Instantly share code, notes, and snippets.

@flyfire
Created December 5, 2018 07:11
Show Gist options
  • Select an option

  • Save flyfire/4bf652ab61682dc0eeb319613c3399ae to your computer and use it in GitHub Desktop.

Select an option

Save flyfire/4bf652ab61682dc0eeb319613c3399ae to your computer and use it in GitHub Desktop.
[得到同一包名下的所有Class] #DexFile
private fun getClassesNameListInPackage(packageName: String, context: Context): List<String> {
val realPackageName = "${context.packageName}.$packageName"
val df = DexFile(context.packageCodePath)
val enumration = df.entries()
val list = mutableListOf<String>()
while (enumration.hasMoreElements()) {
val className = enumration.nextElement()
if (className.contains(realPackageName)) {
list.add(className)
}
}
return list
}
fun getClassesInPackage(packageName: String, context: Context)
= getClassesNameListInPackage(packageName, context).mapNotNull { Class.forName(it) }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment