xref: /aosp_15_r20/external/dexmaker/README.version (revision 2ffc472c461b441c3ddd38c52c72da5a6be8f680)
1*2ffc472cSXin LiURL: https://github.com/linkedin/dexmaker/
2*2ffc472cSXin LiVersion: main (65749b3da4b058c0b322b2adbf3e8f70488f8d8b)
3*2ffc472cSXin LiLicense: Apache 2.0
4*2ffc472cSXin LiDescription:
5*2ffc472cSXin LiDexmaker is a Java-language API for doing compile time or runtime code generation targeting the Dalvik VM. Unlike cglib or ASM, this library creates Dalvik .dex files instead of Java .class files.
6*2ffc472cSXin Li
7*2ffc472cSXin LiIt has a small, close-to-the-metal API. This API mirrors the Dalvik bytecode specification giving you tight control over the bytecode emitted. Code is generated instruction-by-instruction; you bring your own abstract syntax tree if you need one. And since it uses Dalvik's dx tool as a backend, you get efficient register allocation and regular/wide instruction selection for free.
8*2ffc472cSXin Li
9*2ffc472cSXin LiIt includes a stock code generator for class proxies. If you just want to do AOP or class mocking, you don't need to mess around with bytecodes.
10*2ffc472cSXin Li
11*2ffc472cSXin LiLocal Modifications:
12*2ffc472cSXin Li        Add ability to run dexmaker tests from within the source tree (I1b146841099b54f64d4a7dfe743b88717793619a)
13*2ffc472cSXin Li        Allow to share classloader via dexmaker.share_classloader system property (I324cddd644610eef811c620a1fccf6a24b2b9406)
14*2ffc472cSXin Li        Do not read Build.VERSION to allow non-standard Android distributions (Ia8c4ba4c82cd6f193c565f1bfe48faffc4aac08f)
15*2ffc472cSXin Li        Temporarily ignore failing test (Ibf7b6c2eb05c5ff83f0817f9224369e20c0b775d)
16*2ffc472cSXin Li        Exclude Stress#mockALot from presubmit (Ic9a2927ffa07924bd759429e31c56dc1b71a826c)
17*2ffc472cSXin Li        Extend timeout of Stress#mockALot() for CTS. (Iad30a8cb07b38054b490b7006d11908fc752a024)
18*2ffc472cSXin Li        Minor change: Remove empty statement in DexMaker (Ide74cc51907912883e658db7f049bcce3675fc01)
19