• Home
  • History
  • Annotate
  • only in /dalvik/dx/src/com/android/dx/command/
History log of /dalvik/dx/src/com/android/dx/command/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f870f2dce9300c8dec620613371f08e5c234245b 16-Oct-2012 jeffhao <jeffhao@google.com> Add dx option to always generate const-string/jumbo.do not merge.

This allows large dex files with many strings to be merged properly.

(cherry picked from commit 266f45ff7da18022faf5f77df76c69f8cdad313f)

Change-Id: I5fe4c55d84a91101a4f89f590117aa6dc0bfc0f2
ain.java
exer/Main.java
7aa5ce7e990dc3766eba97cd0932b62e4de21503 12-Jun-2012 Xavier Ducrohet <xav@android.com> Make dex merging stateless.

This is required to run dx in Eclipse which doesn't unload the dx
library after each run.

Change-Id: I84df49d424ea465f70613eb602d1a4890804296a
exer/Main.java
4cd7b39876bcec03bb1d0c2afa61cbdb7d119eba 09-Dec-2011 Jesse Wilson <jessewilson@google.com> Remove dx's copy of JUnit.

Instead, use JUnit the same way other code uses JUnit: by depending
on the copy in external. There is no longer a top-level option in
dx to run JUnit tests on itself.

There are two failing tests in dx/junit-tests. Both of these are in
the recently created DexGeneratorTest; I intend to fix these in another
change.

Bug: http://b/2286423
Change-Id: I3a173a0302c7ccc81be3b5a2a4d766000d1c242b
ain.java
36db01eeaa04e3af3401c5bd6a399d3fb7b040e3 23-Aug-2011 jeffhao <jeffhao@google.com> Removed parsing and output for unused --target-api switch in dx.

This is cherry-picked from dalvik-dev.

Change-Id: I74627e4c261e086e8c2c7cf38591cd3e9f5707e6
ain.java
exer/Main.java
9910d7e004c7452a6a1b934f19dc87bb4d61d8bc 14-Jul-2011 Raphael <raphael@google.com> resolved conflicts for merge of 72b7c617 to master

Change-Id: I8c3a32d9ee0dea08cca79031cda870141aacdb17
72b7c6179a6ab44b60735f9c4411faa5fce9649d 12-Jul-2011 Raphael <raphael@google.com> resolved conflicts for merge of c3ff6a0b to honeycomb-plus-aosp

Change-Id: I6b9cfdc27b2654bd832cfd06678a173449f992bc
1e4c4bebc1feb4b68155e9c2e7e6f2c056ef8e3b 12-Jul-2011 Raphael Moll <ralf@android.com> Dex for Windows: Support paths with spaces.

1- Change the format of the command line parsed by dx.jar.
Parameters with values are usually specified with one
single argument e.g.
--output=/some/path with spaces
That breaks for a variety of reasons on windows, so the first
step is to allow a new 2-parameter form:
--output "/some/path with spaces"

2- The next step is fixing the way the dx.bat wrapper
extracts the -J parameters to be able to cope with
arguments that contain spaces.

SDK bugs: 4567, 18388

Change-Id: Ia837e7307998c0bf41ae39abb36abebfc27da104
exer/Main.java
a7ab2182266fb9ea1e4e8d1347fc6d6da35760d4 16-Jun-2011 Elliott Hughes <enh@google.com> Fix unbundled apps on pre-ICS devices.

Change-Id: I4aa58b5395423ec2f05be3dcb1783d0e35eabb2c
ain.java
exer/Main.java
9fdbd91288a237eb58e18e4de9c729c3c268c318 25-May-2011 Dan Bornstein <danfuzz@android.com> Update dex file magic number.

Even though the dex format was technically resilient with respect to
the addition of new opcodes, consensus is that the errors one sees
when trying to use a new dex file on an old build were sufficiently
inscrutable that it was worth the effort to update the version number
embedded in the dex format magic.

This change updates dx to produce the new version number when extended
opcodes are enabled (which is the default, but may be overridden by
targeting an older API level).

This also updates the vm to recognize and accept both the new current
version number as well as the immediately previous one. Note: It won't
reject an old-version file if it happens to use the new opcodes; that
would just be a gratuitous and pointless failure.

Bug: 4364986
Change-Id: If8febbb0b91c1719df4247bf69c511251362d91f
exer/Main.java
1c7c32e2ff5d9f6a3c0319e9d0088261f2cccb2b 29-Apr-2011 Elliott Hughes <enh@google.com> Enhance FindUsages to treat its strings as regular expressions.

So we can look for, say, 'Ljava/nio/(Char|Short)Buffer;' 'allocate(Direct)?'.

Change-Id: Ia17daa67c3d6ca5e7831bd8448a21251861a834e
indusages/FindUsages.java
indusages/Main.java
333201833d506a3accdeac6ceb7caba8d4b95797 13-Apr-2011 Jesse Wilson <jessewilson@google.com> Combine CstUtf8 and CstString.

The only benefit we were seeing is that one wrapped its toHuman
in quotes, the other didn't.

It was far too easy to use the wrong one. We had code defending
against that in NameValuePair and CstArray.

Change-Id: Ib2e6a1596b97decced37952d46e1831b7bcd0d5d
exer/Main.java
56ff6fe7f312dab76c365e5b482a6c32e44caaf7 11-Apr-2011 jeffhao <jeffhao@google.com> Dx block dumper no longer fails on abstract and native methods.

Change-Id: I3bad07a1621c0ef4bc495816b2438cab9401a828
ump/BlockDumper.java
ump/SsaDumper.java
afe002d1474d7c2ef2ac80de32f21f1949af2a41 07-Apr-2011 Dan Bornstein <danfuzz@android.com> Update the interpretation of --target-api.

Change-Id: I4ab158384d09470d84097d944ae1ddadeb2ad045
exer/Main.java
f54258b98c9ab941881625e5509bb902088a99e6 24-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Use PrintWriter rather than PrintStream in dex analysis tools." into dalvik-dev
6bf7f30e6968d9917eb4d0ca2280df96a8096134 24-Mar-2011 Jesse Wilson <jessewilson@google.com> Use PrintWriter rather than PrintStream in dex analysis tools.

Writers make it easier to create strings, useful when these
tools are used as building blocks for other tools.

Change-Id: I8eac49719b130551df216f42eaafb942203da0d0
indusages/FindUsages.java
indusages/Main.java
rep/Grep.java
rep/Main.java
09dc1b7301e8b03fc6772b022d21afe9cb077d89 22-Mar-2011 Dan Bornstein <danfuzz@android.com> Make sure both options objects get created.

Previously, the new DexOptions object would only get created when
calling dx as a command directly, but not when it was used as a
library (via a call to Main.run()).

Change-Id: Ie4f37ff9140539a4f2c7af50228ac6eaf6bebe05
exer/Main.java
09d308b04b7c4fd3ed83a8f8f4c07be67a25478c 17-Mar-2011 Jesse Wilson <jessewilson@google.com> Add support for pre-dexed libraries to dx.

http://b/4090053

Change-Id: Ifb8b9230939cb2a72a767128f79cbfbd042e95a6
exer/Main.java
indusages/Main.java
rep/Main.java
d2b1c42f8834a2bd6120dca9502b97913372719d 17-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Don't emit multiple copies of annotations when merging dex files." into dalvik-dev
bd3dba4346223593ac6033a3d2a7d8ec6f20738b 16-Mar-2011 Jesse Wilson <jessewilson@google.com> Don't emit multiple copies of annotations when merging dex files.

This change requires all annotations to be loaded into memory
so they can be sorted. There does not appear to be a required
order to the annotations in .dex files. Loading annotations also
requires loading encoded values, which makes this into a large
refactoring.

Change-Id: Ib7e2656c595018be4e9936eb84a22f1c1de56750
http://b/4090053
indusages/FindUsages.java
3dfda9ad1964510e4a7948a240b30cd710e86341 17-Mar-2011 Dan Bornstein <danfuzz@android.com> Add --target-api=N option to dx.

This change adds the option and plumbs it into where it
needs to go, but doesn't add any code to take action on it.
That will come in a follow-up.

Bug: 4094709
Change-Id: I9c796e176e125b0bcee18af56d9e6da802dfa081
exer/Main.java
87508f44a0ace550ae397ab83fc2a0fe1967259f 08-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Permit dx to build resource-only dex files." into dalvik-dev
d2b3f499be6f5b1d4076b1244be3d1501d178315 08-Mar-2011 Jesse Wilson <jessewilson@google.com> Permit dx to build resource-only dex files.

Previously it would build a .jar file containing a classes.dex
that itself contained no classes.

Change-Id: I9c36a5dcdd17d2821be15f87656d72ef0048c113
exer/Main.java
ae38a1e705253b53abf1beff7dc3467d52c58f32 08-Mar-2011 Jesse Wilson <jessewilson@google.com> Add a tool to grep the strings in a dex file.

Change-Id: I21b8537518718350def2f847e9c76ae4154bd4d6
http://b/4026001
rep/Grep.java
rep/Main.java
dc520adfdcf0f0e9190cdb90605c42a7cc8fa98f 07-Feb-2011 Dan Bornstein <danfuzz@android.com> Fix dex processing when no output file is specified.

This case is mainly exercised in test code.

Change-Id: Ifbcbec3f001cae925090796ce8ed69f6a986384c
exer/Main.java
537939ca06a47668f719ee06159303bcd3175c69 04-Feb-2011 Dan Bornstein <danfuzz@android.com> Move the instruction representation code.

It now gets its own subpackage, reducing the clutter in the base .io
package. I was on the fence about CodeReader and ended up just leaving
it be, but maybe that one wants to move too.

Change-Id: I87c574ce2086025bcb9583627a545160084ba88e
indusages/FindUsages.java
a754fbb1555f9ac2d14de0ffd0046c780732da5a 02-Feb-2011 Dan Bornstein <danfuzz@android.com> Move opcode names into OpcodeInfo.

This also allowed me to remove the Instruction argument from the
CodeReader visitor methods. Per previous discussion, this also gets
rid of the redundant argument output in FindUsages. I can clean up
CodeReader some more in a follow-up.

Change-Id: I7a65e8d74498e201fd169cddde0d1f19d6f33f81
indusages/FindUsages.java
38b861bc63b91114d52ba01e74d31fbf316a5784 02-Feb-2011 Dan Bornstein <danfuzz@android.com> Hook up CodeReader.

This involved tweaking a lot of interfaces and a few bits of the
implementation, and it could use at least one cleanup pass, but I think
the basic structure is pretty reasonable.

Change-Id: Ic49410aca479d54ceb837ee7e04bedd2ca0bcda9
indusages/FindUsages.java
d0900d13fb7bb1706aff5205af7e2d6517335bee 21-Jan-2011 jeffhao <jeffhao@google.com> Made handling of sim exceptions nicer.

Change-Id: I089512c046d90ea37da4a33433edc4ec308a628d
exer/Main.java
dc86cd9edc8b80953c8b698a83cdaebf6825d798 18-Jan-2011 Jesse Wilson <jessewilson@google.com> Add an undocumented --incremental option to dx.

Change-Id: I48879b2f724e9b92c99c669803f9c8de01487327
nnotool/AnnotationLister.java
exer/Main.java
indusages/FindUsages.java
indusages/Main.java
e31a42442bbd2cdc69e959f5209b793cf0aa7217 17-Jan-2011 Jesse Wilson <jessewilson@google.com> Make DexMerger's dex reader general purpose.

Use this to implement FindUsages, which prints references to
fields and methods within a dex. This is the FindUsages output
for "Ljava/lang/Number;", "longValue" on libcore's dex file:

Method referenced by Ljava/io/EmulatedFields;#get invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/io/EmulatedFieldsForDumping;#write invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/io/ObjectOutputStream;#writeFieldValues invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method declared by Ljava/lang/Number;#longValue
Method declared by Ljava/lang/Byte;#longValue
Method declared by Ljava/lang/Double;#longValue
Method declared by Ljava/lang/Float;#longValue
Method declared by Ljava/lang/Integer;#longValue
Method declared by Ljava/lang/Long;#longValue
Method declared by Ljava/lang/Short;#longValue
Method referenced by Ljava/lang/reflect/Array;#set invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#divideBigIntegers invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#divideBigIntegers invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#divideBigIntegers invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#readObject invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#setUnscaledValue invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#valueExact invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/BigDecimal;#doubleValue invoke-virtual/range {vCCCC..vNNNN}, meth@BBBB
Method referenced by Ljava/math/BigDecimal;#doubleValue invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method declared by Ljava/math/BigDecimal;#longValue
Method referenced by Ljava/math/BigDecimal;#longValue invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method declared by Ljava/math/BigInteger;#longValue
Method referenced by Ljava/math/Conversion;#bigInteger2Double invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/math/Conversion;#bigInteger2Double invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/text/NumberFormat;#format invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/text/DateFormat;#format invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/text/DecimalFormat;#format invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/text/DecimalFormat;#parse invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/text/SimpleDateFormat;#formatToCharacterIterator invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transform invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transformFromDateTime invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transformFromInteger invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transformFromInteger invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transformFromInteger invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transformFromInteger invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transform_g invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transform_g invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transform_g invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Formatter;#transform_g invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Ljava/util/Scanner;#nextLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method declared by Ljava/util/concurrent/atomic/AtomicInteger;#longValue
Method declared by Ljava/util/concurrent/atomic/AtomicLong;#longValue
Method referenced by Llibcore/icu/NativeDecimalFormat;#formatToCharacterIterator invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xalan/xslt/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xml/dtm/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xml/dtm/ref/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xml/serializer/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xml/utils/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/apache/xpath/functions/SecuritySupport12;#getLastModified invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSON;#toLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSONArray;#getLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSONArray;#optLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSONObject;#numberToString invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSONObject;#getLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC
Method referenced by Lorg/json/JSONObject;#optLong invoke-virtual {vD, vE, vF, vG, vA}, meth@CCCC

Change-Id: Ia50f28f53ce5838799e2d5f03a7a2f1c551299de
ain.java
indusages/FindUsages.java
indusages/Main.java
9028bfd131e42a58255699d1471c914d58893c61 13-Dec-2010 jeffhao <jeffhao@google.com> Adding javax.sip to the dx blacklist.

Change-Id: I5be068821862ccf073cb758e60b686f46a3c97c1
exer/Main.java
d05e4fd966e8b3eaabd006dcdd76a42900110f12 09-Nov-2010 jeffhao <jeffhao@google.com> Added info for parallel dx switch "num-threads" to help message.

Change-Id: I7fa31ab7160956c135ab95f8411ad359f616403d
ain.java
ccf5cff3faefcf1d44d0ebc141a1f7e7dcee3c62 01-Nov-2010 Dan Bornstein <danfuzz@android.com> Always dump blocks in label order.

This removes some cases of spurious test failure. Also did some
minor whitespace and commenting cleanup while I was in the territory.

Change-Id: I6b8f6d0c340625c31bde78394e77abf429367af3
ump/BlockDumper.java
893ea594be06711902de7a484c0eecb910356f42 29-Oct-2010 Dan Bornstein <danfuzz@android.com> A bunch of minor cleanups.

I'm reacquainting myself with this code, and figured I might as well
do some of that nit-picky code convention tweakage while I was there.
The only non-whitespace non-comment changes I made were to change the
scope of a couple of methods to be more appropriate.

Change-Id: I550978ed0f5b9ccec938faef7c00d09532832ee4
ump/BlockDumper.java
590f78fc4b6e3268149c5eacb7c8b7dd33497f44 22-Oct-2010 jeffhao <jeffhao@google.com> Added multi-threaded support to processing of class files in dx.

Change-Id: Ideb54c414073a9651b21ce0697e6444fa80f146d
exer/Main.java
85dc40d2a0cb19792bf3ee6f6c57fed08eb91ea4 27-Sep-2010 Dan Bornstein <danfuzz@android.com> Take another tilt at the "--core-library" messaging windmill.

This time, I added a note about what appears to be the most common
inadvertent triggering, and I point people at JarJar as a possible
solution when the core class inclusion was intentional.

Change-Id: I2d576df0b8944882838cbb6e2b050d59434a238b
exer/Main.java
de75089fb7216d19e9c22cce4dc62a49513477d3 09-Jun-2010 Carl Shapiro <cshapiro@google.com> Remove trailing whitespace.

Change-Id: I95534bb2b88eaf48f2329282041118cd034c812b
ain.java
nnotool/AnnotationLister.java
nnotool/Main.java
exer/Main.java
ump/BaseDumper.java
ump/BlockDumper.java
ump/SsaDumper.java
4b4413ab3d8de5805276cfcde3d7f535d9f64e85 18-May-2009 Dan Bornstein <danfuzz@android.com> Fix up the last handful of FindBugs complaints.

And again, also do a bit of whitespace cleanup.
ump/BlockDumper.java
55423dcd081e30c4fc27b997f127db7b00f1b981 15-May-2009 Dan Bornstein <danfuzz@android.com> Fix a bunch of little problems noticed by FindBugs, and cleaned up some
spacing issues that I happened to notice along the way.
exer/Main.java
41aecd0a6bfea1e9a6713014b2b3d56fec8c552c 04-May-2009 Dan Bornstein <danfuzz@android.com> Tweaks, Mostly grep-based, to better conform to the coding guidelines.
nnotool/AnnotationLister.java
nnotool/Main.java
ump/SsaDumper.java
de1ab3724b284ab053322db7ff723f54d7826c96 31-Mar-2009 Dan Bornstein <> AI 143732: Tweaks, in response to public critique.

Automated import of CL 143732
exer/Main.java
291fe153ba3b64dfb0472f1f53cee59c53f5da04 30-Mar-2009 Dan Bornstein <> AI 143492: Another crank of the --core-library wheel.

Automated import of CL 143492
exer/Main.java
99409883d9c4c0ffb49b070ce307bb33a9dfe9f1 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import //branches/master/...@140412
xConsole.java
ain.java
nnotool/AnnotationLister.java
exer/Main.java
ump/BaseDumper.java
ump/BlockDumper.java
ump/ClassDumper.java
ump/DotDumper.java
ump/Main.java
ump/SsaDumper.java
f6c387128427e121477c1b32ad35cdcaa5101ba3 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
xConsole.java
ain.java
sageException.java
nnotool/AnnotationLister.java
nnotool/Main.java
exer/Main.java
ump/Args.java
ump/BaseDumper.java
ump/BlockDumper.java
ump/ClassDumper.java
ump/DotDumper.java
ump/Main.java
ump/SsaDumper.java
f72d5de56a522ac3be03873bdde26f23a5eeeb3c 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
xConsole.java
ain.java
sageException.java
nnotool/AnnotationLister.java
nnotool/Main.java
exer/Main.java
ump/Args.java
ump/BaseDumper.java
ump/BlockDumper.java
ump/ClassDumper.java
ump/DotDumper.java
ump/Main.java
ump/SsaDumper.java
2ad60cfc28e14ee8f0bb038720836a4696c478ad 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
xConsole.java
ain.java
sageException.java
nnotool/AnnotationLister.java
nnotool/Main.java
exer/Main.java
ump/Args.java
ump/BaseDumper.java
ump/BlockDumper.java
ump/ClassDumper.java
ump/DotDumper.java
ump/Main.java
ump/SsaDumper.java