Implement SystemReader.isAndroid()

instead of catching a NoClassDefFoundError in GC.getPID().

This is done to get GC.getPID() to work on Android, where
ProcessHandle.pid() is not supported.

Change-Id: Ia70affff96a682eb275dde1e5d14dccabf8db593
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
index 6a78271..7885794 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
@@ -1995,6 +1995,9 @@ private String getProcDesc() {
 		}
 
 		private long getPID() {
+			if (SystemReader.getInstance().isAndroid()) {
+				return 0;
+			}
 			return ProcessHandle.current().pid();
 		}
 
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
index 0b7c620..763bf26 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
@@ -68,6 +68,8 @@ public abstract class SystemReader {
 
 	private static volatile Boolean isLinux;
 
+	private static volatile Boolean isAndroid;
+
 	private static final String GIT_TRACE_PERFORMANCE = "GIT_TRACE_PERFORMANCE"; //$NON-NLS-1$
 
 	private static final boolean performanceTrace = initPerformanceTrace();
@@ -762,6 +764,25 @@ public boolean isLinux() {
 	}
 
 	/**
+	 * Whether we are running on Android.
+	 *
+	 * @return true if we are running on Android.
+	 * @since 7.7
+	 */
+	public boolean isAndroid() {
+		if (isAndroid == null) {
+			String vendor = getProperty("java.vendor"); //$NON-NLS-1$
+			if (vendor == null) {
+				isAndroid = Boolean.FALSE;
+			} else {
+				isAndroid = Boolean
+						.valueOf(vendor.toLowerCase().contains("android")); //$NON-NLS-1$
+			}
+		}
+		return isAndroid.booleanValue();
+	}
+
+	/**
 	 * Whether performance trace is enabled
 	 *
 	 * @return whether performance trace is enabled