Working dex2oat and oatexec
adb shell dex2oatd --dex-file=/system/framework/core.jar --image=/system/framework/boot.oat --base=0x50000000 "'--method=Ljava/lang/System;logI(Ljava/lang/String;)V'" "'--method=Ljava/lang/System;log(CLjava/lang/String;Ljava/lang/Throwable;)V'"
adb shell dex2oatd --boot-dex-file=/system/framework/core.jar --boot=/system/framework/boot.oat --dex-file=/system/framework/art-test-dex-HelloWorld.jar --image=/system/framework/art-test-dex-HelloWorld.oat
adb shell oatexecd -Xbootclasspath:/system/framework/core.jar -Xbootimage:/system/framework/boot.oat -classpath /system/framework/art-test-dex-HelloWorld.jar -Ximage:/system/framework/art-test-dex-HelloWorld.oat HelloWorld
09-05 17:58:18.912 2385 2385 I System : Hello, world!
Change-Id: I53e534068584f0c3a837313e4d517a0e4a7154fc
diff --git a/src/class_linker.h b/src/class_linker.h
index f63ab3c..4f4ffc7 100644
--- a/src/class_linker.h
+++ b/src/class_linker.h
@@ -26,7 +26,8 @@
public:
// Initializes the class linker using DexFile and an optional boot Space.
static ClassLinker* Create(const std::vector<const DexFile*>& boot_class_path,
- InternTable* intern_table, Space* boot_space);
+ const std::vector<const DexFile*>& class_path,
+ InternTable* intern_table, Space* boot_space);
~ClassLinker();
@@ -149,10 +150,13 @@
ClassLinker(InternTable*);
// Initialize class linker from DexFile instances.
- void Init(const std::vector<const DexFile*>& boot_class_path_);
+ void Init(const std::vector<const DexFile*>& boot_class_path_,
+ const std::vector<const DexFile*>& class_path_);
// Initialize class linker from pre-initialized space.
- void Init(const std::vector<const DexFile*>& boot_class_path_, Space* space);
+ void Init(const std::vector<const DexFile*>& boot_class_path_,
+ const std::vector<const DexFile*>& class_path_,
+ Space* space);
static void InitCallback(Object* obj, void *arg);
struct InitCallbackState;