Add support for opening classes.dex file from zip, jar, apk
Adding new ZipArchive class and test
src/zip_archive.h
src/zip_archive.cc
src/zip_archive_test.cc
build/Android.common.mk
Change from host only use of build dex file for libcore to using host
and target core.jar containing classes.dex files. This requires
setting up an ANDROID_DATA directory to containing an art-cache file
for the extracted dex files, similar to the dalvik-cache for odex
files. A unique ANDROID_DATA and art-cache is created and cleaned up
for each test run (similar to vogar).
src/common_test.h
Add dependency for libcore jar files to test targets to support
RuntimeTest use of core.jar
Android.mk
Extract common includes to ART_C_INCLUDES when adding zlib dependency
build/Android.common.mk
build/Android.libart.mk
build/Android.test.mk
Adding TODO regarding unordered map for ClassLinker::classes_ table.
src/class_linker.h
Adding DexFile::OpenZip (also changed OpenFile to take
src/dex_file.cc
src/dex_file.h
Adding kPageSize of 4096, validated by Runtime::Init
src/globals.h
src/runtime.cc
Updated to use kPageSize where it seemed appropriate.
src/jni_compiler.cc
src/jni_compiler_test.cc
src/space.cc
src/thread.cc
src/thread_x86.cc
Changed thread_list_ and class_linker_ to be declared in Runtime::Init
initialization order.
src/runtime.h
Change-Id: Id626abe5b6c1990e4f93598256ee0fae000818f6
diff --git a/build/Android.common.mk b/build/Android.common.mk
index f92bc09..64f0de4 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -16,6 +16,8 @@
ART_CPP_EXTENSION := .cc
+ART_C_INCLUDES := external/gtest/include external/zlib
+
ART_CFLAGS := \
-O0 \
-ggdb3 \
@@ -52,7 +54,8 @@
src/space.cc \
src/stringpiece.cc \
src/stringprintf.cc \
- src/thread.cc
+ src/thread.cc \
+ src/zip_archive.cc
LIBART_TARGET_SRC_FILES := \
$(LIBART_COMMON_SRC_FILES) \
@@ -83,7 +86,8 @@
src/jni_compiler_test.cc.arm \
src/object_test.cc \
src/runtime_test.cc \
- src/space_test.cc
+ src/space_test.cc \
+ src/zip_archive_test.cc
TEST_TARGET_SRC_FILES := \
$(TEST_COMMON_SRC_FILES) \
diff --git a/build/Android.libart.mk b/build/Android.libart.mk
index de07b8c..e6169e9 100644
--- a/build/Android.libart.mk
+++ b/build/Android.libart.mk
@@ -37,7 +37,7 @@
ifeq ($(2),debug)
LOCAL_CFLAGS += -UNDEBUG
endif
- LOCAL_C_INCLUDES += src external/gtest/include
+ LOCAL_C_INCLUDES += src $(ART_C_INCLUDES)
LOCAL_SHARED_LIBRARIES := liblog
ifeq ($(1),target)
LOCAL_SHARED_LIBRARIES += libcutils libstlport libz
diff --git a/build/Android.test.mk b/build/Android.test.mk
index 5d2a225..325f076 100644
--- a/build/Android.test.mk
+++ b/build/Android.test.mk
@@ -29,12 +29,13 @@
LOCAL_MODULE_TAGS := tests
LOCAL_SRC_FILES := $(2)
LOCAL_CFLAGS := $(ART_CFLAGS)
- LOCAL_C_INCLUDES += external/gtest/include
+ LOCAL_C_INCLUDES += $(ART_C_INCLUDES)
LOCAL_SHARED_LIBRARIES := libarttest libartd
ifeq ($(1),target)
- LOCAL_SHARED_LIBRARIES += libstlport
+ LOCAL_SHARED_LIBRARIES += libstlport libz
LOCAL_STATIC_LIBRARIES := libgtest libgtest_main
else
+ LOCAL_SHARED_LIBRARIES += libz-host
LOCAL_WHOLE_STATIC_LIBRARIES := libgtest_host libgtest_main_host
endif
ifeq ($(1),target)