0.1.0 - 2020-08-27
Initial release
Note: The project was renamed from dex-member-list
to diffuse
at this point in the version
history. The versions below are for the dex-member-list
tool.
- Fix: Do not crash on inputs that have no code.
- New: Add support for desugaring language features and API levels based on a target minimum API
level. This requires supplying library jars such as
android.jar
orrt.jar
. - New: Expose declared and referenced methods separately. The former always impact the final APK whereas the latter are a shared cost that is de-duplicated across all libraries.
- New: Update D8 dex compiler to v1.5.x.
- Fix: Support dexing jar, aar, and class inputs which produce more than one dex file.
- New: Support for mapping files produced by R8 or ProGuard. Dump obfuscated APKs in unobfuscated
form by providing this file on the command line or in the API using
ApiMapping
. - New: Kotlin users can create a
DexParser
using extension functions on receiver types (likeFile
,Path
, etc.) instead of Java-like static factories. - New: Types are modeled using a new
TypeDescriptor
class. - New: Add
dexCount()
method toDexParser
. - Remove support for using
dx
as a dex compiler for class files. - Remove old
dex-field-list
anddex-method-list
binaries and types.
- New: Remove synthetic numbers from Kotlin lambda types and lambda functions.
- Fix: De-duplicate method and field instances when multiple inputs are supplied. This means that the output for APKs with multiple DEX files, for example, will output the total unique list of referenced methods. This number will be smaller than the sum of the referenced methods from the DEX files, but it more accurately reflects the count. If you want the old behavior, pass the DEX files separately and concatenate the lists yourself.
- Fix: Binary names are now correctly singular instead of plural.
- New:
DexParser.list()
method returns a list of all methods and fields asDexMethod
andDexField
now both extendDexMember
. - New:
dex-members-list
binary lists all members. Supply--methods
or--fields
to filter to members of one type. - New: Artifact ID has changed to
dex-member-list
.
- New: D8 compiler is now the default. Pass
--legacy-dx
to use DX compiler from the command line. - New:
DexParser
class and factory methods replaceDexMethods.list
/DexFields.list
(Java) anddexMethods
/dexFields
(Kotlin).
- New:
dex-fields-list
command for listing field references. - New: Added
DexFields
andDexField
types for listing field references. - Fix: Ignore
META-INF
contents.
Note: The dx and dex dependencies are no longer shadowed in the jar dependency.
- New: Show non-
void
return types. - New: API now returns a model object representing methods.
- The Dalvik and Dex dependencies are now shaded to prevent conflicts in some environments.
- New: Support for reading the
.jar
inside of.aar
files. - New: Add
--hide-synthetic-numbers
flag for removing the number suffix from synthetic methods.
- New: Support for
.class
and.jar
files!
Initial release.