Merge "Revert "Added JNI interface for aapt2.""
diff --git a/tools/aapt2/Android.mk b/tools/aapt2/Android.mk
index cc43a18..6bfedf3 100644
--- a/tools/aapt2/Android.mk
+++ b/tools/aapt2/Android.mk
@@ -83,7 +83,7 @@
 
 sources += Format.proto
 
-sourcesJni := jni/aapt2_jni.cpp
+sourcesJni :=
 
 testSources := \
 	compile/IdAssigner_test.cpp \
@@ -194,14 +194,14 @@
 include $(CLEAR_VARS)
 LOCAL_MODULE := libaapt2_jni
 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_MODULE_HOST_OS := darwin linux
+LOCAL_MODULE_HOST_OS := darwin linux windows
 LOCAL_CFLAGS := $(cFlags)
 LOCAL_CFLAGS_darwin := $(cFlags_darwin)
 LOCAL_CFLAGS_windows := $(cFlags_windows)
 LOCAL_CPPFLAGS := $(cppFlags)
 LOCAL_C_INCLUDES := $(protoIncludes)
-LOCAL_SRC_FILES := $(toolSources) $(sourcesJni)
-LOCAL_STATIC_LIBRARIES := libaapt2 libnativehelper $(hostStaticLibs)
+LOCAL_SRC_FILES := $(sourcesJni)
+LOCAL_STATIC_LIBRARIES := libaapt2 $(hostStaticLibs)
 LOCAL_STATIC_LIBRARIES_windows := $(hostStaticLibs_windows)
 include $(BUILD_HOST_SHARED_LIBRARY)
 
diff --git a/tools/aapt2/jni/Aapt2.java b/tools/aapt2/jni/Aapt2.java
deleted file mode 100644
index aed23de..0000000
--- a/tools/aapt2/jni/Aapt2.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.android.tools.aapt2;
-
-import java.util.List;
-
-/**
- * {@code aapt2} JNI interface. To use the {@code aapt2} native interface, the
- * shared library must first be loaded and then a new instance of this class can
- * be used to access the library.
- */
-public class Aapt2 {
-
-  /**
-   * Invokes {@code aapt2} to perform resource compilation.
-   *
-   * @param arguments arguments for compilation (see {@code Compile.cpp})
-   */
-  public static void compile(List<String> arguments) {
-    nativeCompile(arguments);
-  }
-
-  /**
-   * Invokes {@code aapt2} to perform linking.
-   *
-   * @param arguments arguments for linking (see {@code Link.cpp})
-   */
-  public static void link(List<String> arguments) {
-    nativeLink(arguments);
-  }
-
-  /**
-   * JNI call.
-   *
-   * @param arguments arguments for compilation (see {@code Compile.cpp})
-   */
-  private static native void nativeCompile(List<String> arguments);
-
-  /**
-   * JNI call.
-   *
-   * @param arguments arguments for linking (see {@code Link.cpp})
-   */
-  private static native void nativeLink(List<String> arguments);
-}
-
diff --git a/tools/aapt2/jni/Makefile b/tools/aapt2/jni/Makefile
deleted file mode 100644
index a9e628f..0000000
--- a/tools/aapt2/jni/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# This Makefile will generate the JNI headers for the Aapt2 class.
-#
-
-AAPT2_PKG=com.android.tools.aapt2
-AAPT2_DIR=$(shell echo -n com/android/tools/aapt2 | tr . /)
-OUT=out
-OUT_CLASSES=$(OUT)/classes
-OUT_HEADERS=.
-
-AAPT2_JAVA=Aapt2.java
-AAPT2_CLASSES=$(OUT_CLASSES)/$(AAPT2_DIR)/Aapt2.class
-
-AAPT2_HEADERS=$(OUT_HEADERS)/Aapt2.h
-
-all: $(AAPT2_HEADERS)
-
-$(AAPT2_HEADERS): $(AAPT2_JAVA) $(AAPT2_CLASSES)
-	mkdir -p $(OUT_HEADERS)
-	$(JAVA_HOME)/bin/javah -d $(OUT_HEADERS) -cp $(OUT_CLASSES) $(AAPT2_PKG).Aapt2
-
-$(AAPT2_CLASSES): $(AAPT2_JAVA)
-	mkdir -p $(OUT_CLASSES)
-	javac -d $(OUT_CLASSES) $(AAPT2_JAVA)
-
diff --git a/tools/aapt2/jni/aapt2_jni.cpp b/tools/aapt2/jni/aapt2_jni.cpp
deleted file mode 100644
index dff77b9..0000000
--- a/tools/aapt2/jni/aapt2_jni.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <algorithm>
-#include <cassert>
-#include <memory>
-#include <utility>
-#include <vector>
-
-#include <ScopedUtfChars.h>
-
-#include "util/Util.h"
-
-#include "com_android_tools_aapt2_Aapt2.h"
-
-namespace aapt {
-    extern int compile(const std::vector<StringPiece>& args);
-    extern int link(const std::vector<StringPiece>& args);
-}
-
-/*
- * Converts a java List<String> into C++ vector<ScopedUtfChars>.
- */
-static std::vector<ScopedUtfChars> list_to_utfchars(JNIEnv *env, jobject obj) {
-    std::vector<ScopedUtfChars> converted;
-
-    // Call size() method on the list to know how many elements there are.
-    jclass list_cls = env->GetObjectClass(obj);
-    jmethodID size_method_id = env->GetMethodID(list_cls, "size", "()I");
-    assert(size_method_id != 0);
-    jint size = env->CallIntMethod(obj, size_method_id);
-    assert(size >= 0);
-
-    // Now, iterate all strings in the list
-    // (note: generic erasure means get() return an Object)
-    jmethodID get_method_id = env->GetMethodID(list_cls, "get", "()Ljava/lang/Object;");
-    for (jint i = 0; i < size; i++) {
-        // Call get(i) to get the string in the ith position.
-        jobject string_obj_uncast = env->CallObjectMethod(obj, get_method_id, i);
-        assert(string_obj_uncast != nullptr);
-        jstring string_obj = static_cast<jstring>(string_obj_uncast);
-        converted.push_back(ScopedUtfChars(env, string_obj));
-    }
-
-    return converted;
-}
-
-/*
- * Extracts all StringPiece from the ScopedUtfChars instances.
- * 
- * The returned pieces can only be used while the original ones have not been
- * destroyed.
- */
-static std::vector<aapt::StringPiece> extract_pieces(
-        const std::vector<ScopedUtfChars> &strings) {
-    std::vector<aapt::StringPiece> pieces;
-  
-    std::for_each(
-            strings.begin(),
-            strings.end(),
-            [&pieces](const ScopedUtfChars &p) {
-              pieces.push_back(p.c_str());
-            });
-  
-    return pieces;
-}
-
-JNIEXPORT void JNICALL Java_com_android_tools_aapt2_Aapt2_nativeCompile(
-        JNIEnv *env,
-        jclass aapt_obj,
-        jobject arguments_obj) {
-    std::vector<ScopedUtfChars> compile_args_jni = list_to_utfchars(env, arguments_obj);
-    std::vector<aapt::StringPiece> compile_args = extract_pieces(compile_args_jni);
-    aapt::compile(compile_args);
-}
-
-JNIEXPORT void JNICALL Java_com_android_tools_aapt2_Aapt2_nativeLink(
-        JNIEnv *env,
-        jclass aapt_obj,
-        jobject arguments_obj) {
-    std::vector<ScopedUtfChars> link_args_jni = list_to_utfchars(env, arguments_obj);
-    std::vector<aapt::StringPiece> link_args = extract_pieces(link_args_jni);
-    aapt::link(link_args);
-}
diff --git a/tools/aapt2/jni/com_android_tools_aapt2_Aapt2.h b/tools/aapt2/jni/com_android_tools_aapt2_Aapt2.h
deleted file mode 100644
index 443b98f..0000000
--- a/tools/aapt2/jni/com_android_tools_aapt2_Aapt2.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-/* Header for class com_android_tools_aapt2_Aapt2 */
-
-#ifndef _Included_com_android_tools_aapt2_Aapt2
-#define _Included_com_android_tools_aapt2_Aapt2
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*
- * Class:     com_android_tools_aapt2_Aapt2
- * Method:    nativeCompile
- * Signature: (Ljava/util/List;)V
- */
-JNIEXPORT void JNICALL Java_com_android_tools_aapt2_Aapt2_nativeCompile
-  (JNIEnv *, jclass, jobject);
-
-/*
- * Class:     com_android_tools_aapt2_Aapt2
- * Method:    nativeLink
- * Signature: (Ljava/util/List;)V
- */
-JNIEXPORT void JNICALL Java_com_android_tools_aapt2_Aapt2_nativeLink
-  (JNIEnv *, jclass, jobject);
-
-#ifdef __cplusplus
-}
-#endif
-#endif