am 79508571: Merge change 3195 into donut

Merge commit '79508571c00bfdfb7e46f99d3df1c4ecd5f9a282'

* commit '79508571c00bfdfb7e46f99d3df1c4ecd5f9a282':
  Change the SDK, DDMS and Traceview to work with the new SWT libraries.
This commit is contained in:
Android (Google) Code Review
2009-06-04 23:48:05 -07:00
committed by The Android Open Source Project
20 changed files with 245 additions and 58 deletions

View File

@@ -2,12 +2,8 @@
#
# swt
lib/libswt-carbon-3236.jnilib tools/lib/libswt-carbon-3236.jnilib
lib/libswt-pi-carbon-3236.jnilib tools/lib/libswt-pi-carbon-3236.jnilib
framework/swt.jar tools/lib/swt.jar
framework/org.eclipse.core.commands_3.2.0.I20060605-1400.jar tools/lib/org.eclipse.core.commands_3.2.0.I20060605-1400.jar
framework/org.eclipse.equinox.common_3.2.0.v20060603.jar tools/lib/org.eclipse.equinox.common_3.2.0.v20060603.jar
framework/org.eclipse.jface_3.2.0.I20060605-1400.jar tools/lib/org.eclipse.jface_3.2.0.I20060605-1400.jar
prebuilt/darwin-x86/swt/swt.jar tools/lib/x86/swt.jar
# JetCreator (only available on mac/windows)
external/sonivox/jet_tools/JetCreator tools/Jet/JetCreator

View File

@@ -2,11 +2,5 @@
#
# swt
lib/libswt-atk-gtk-3236.so tools/lib/libswt-atk-gtk-3236.so
lib/libswt-gtk-3236.so tools/lib/libswt-gtk-3236.so
lib/libswt-pi-gtk-3236.so tools/lib/libswt-pi-gtk-3236.so
lib/libswt-cairo-gtk-3236.so tools/lib/libswt-cairo-gtk-3236.so
framework/swt.jar tools/lib/swt.jar
framework/org.eclipse.core.commands_3.2.0.I20060605-1400.jar tools/lib/org.eclipse.core.commands_3.2.0.I20060605-1400.jar
framework/org.eclipse.equinox.common_3.2.0.v20060603.jar tools/lib/org.eclipse.equinox.common_3.2.0.v20060603.jar
framework/org.eclipse.jface_3.2.0.I20060605-1400.jar tools/lib/org.eclipse.jface_3.2.0.I20060605-1400.jar
prebuilt/linux-x86/swt/swt.jar tools/lib/x86/swt.jar
prebuilt/linux-x86_64/swt/swt.jar tools/lib/x86_64/swt.jar

View File

@@ -30,6 +30,12 @@ bin/mksdcard tools/mksdcard
# the uper-jar file that apps link against
out/target/common/obj/PACKAGING/android_jar_intermediates/android.jar platforms/${PLATFORM_NAME}/android.jar
# eclipse files for SWT
framework/org.eclipse.core.commands_3.4.0.I20080509-2000.jar tools/lib/org.eclipse.core.commands_3.4.0.I20080509-2000.jar
framework/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar tools/lib/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
framework/org.eclipse.jface_3.4.2.M20090107-0800.jar tools/lib/org.eclipse.jface_3.4.2.M20090107-0800.jar
sdk/sdk-build.prop platforms/${PLATFORM_NAME}/build.prop
development/tools/scripts/plugin.prop tools/lib/plugin.prop
@@ -90,6 +96,9 @@ framework/jcommon-1.0.12.jar tools/lib/jcommon-1.0.12.jar
framework/jfreechart-1.0.9.jar tools/lib/jfreechart-1.0.9.jar
framework/jfreechart-1.0.9-swt.jar tools/lib/jfreechart-1.0.9-swt.jar
# archquery to test VM architecture
framework/archquery.jar tools/lib/archquery.jar
# ddms
bin/ddms tools/ddms
framework/ddms.jar tools/lib/ddms.jar

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>

1
tools/archquery/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
bin

17
tools/archquery/.project Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>archquery</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@@ -0,0 +1,17 @@
#
# Copyright (C) 2009 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.
#
ARCHQUERY_LOCAL_DIR := $(call my-dir)
include $(ARCHQUERY_LOCAL_DIR)/src/Android.mk

View File

@@ -0,0 +1 @@
Main-Class: com.android.archquery.Main

View File

@@ -0,0 +1,25 @@
#
# Copyright (C) 2009 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.
#
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_JAR_MANIFEST := ../etc/manifest.txt
LOCAL_JAVA_LIBRARIES := \
LOCAL_MODULE := archquery
include $(BUILD_HOST_JAVA_LIBRARY)

View File

@@ -0,0 +1,65 @@
/*
* Copyright (C) 2009 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.
*/
package com.android.archquery;
/**
* Java command line tool to return the CPU architecture of the host java VM.
*
* The goal is to be able to launch SWT based applications (DDMS, Traceview, Android) on any
* type of OS.
*
* Because a 64 bit OS can run a 32 bit Virtual Machine, we need to query the VM itself to know
* whether it's 32 or 64 bit to detect which swt.jar it should use (it contains native libraries).
* Simply querying the OS is not enough.
*
* The other problem is that once a VM is launched it is impossible to change its classpath to
* point the VM to the correct version of swt.jar.
*
* The solution is this small command line tool, running in the VM, and returning the value of
* the 'os.arch' property. Based on the returned value, the script launching the SWT based
* applications will configure the Java VM with the path to the correct swt.jar
*
* Because different VMs return different values for 32 and 64 bit version of x86 CPUs, the program
* handles all the possible values and normalize the returned value.
*
* At this time, the normalized values are:
* x86: 32 bit x86
* x86_64: 64 bit x86
* ppc: PowerPC (WARNING: the SDK doesn't actually support this architecture).
*
*
*/
public final class Main {
public static void main(String[] args) {
// Values listed from http://lopica.sourceforge.net/os.html
String arch = System.getProperty("os.arch");
if (arch.equalsIgnoreCase("x86_64") || arch.equalsIgnoreCase("amd64")) {
System.out.print("x86_64");
} else if (arch.equalsIgnoreCase("x86")
|| arch.equalsIgnoreCase("i386")
|| arch.equalsIgnoreCase("i686")) {
System.out.print("x86");
} else if (arch.equalsIgnoreCase("ppc") || arch.equalsIgnoreCase("PowerPC")) {
System.out.print("ppc");
} else {
System.out.print(arch);
}
}
}

View File

@@ -67,29 +67,6 @@ if [ `uname` = "Darwin" ]; then
os_opts="-XstartOnFirstThread"
#because Java 1.6 is 64 bits only and SWT doesn't support this, we force the usage of java 1.5
java_cmd="/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Commands/java"
elif [[ `uname -s` = 'Linux' ]]; then
# We need a 32-bit Java on Linux, because our JNI libraries are 32-bit.
java_cmd=`which java`
if [ -x "$java_cmd" ]; then
if [[ ! `file -L "$java_cmd"` =~ "ELF 32-bit LSB executable" ]]; then
java_cmd=""
fi
fi
if [ ! -x "$java_cmd" ]; then
# The default JVM is not suitable.
# See if we can find a particular known-good JVM
java_cmd="/usr/lib/jvm/ia32-java-6-sun/jre/bin/java"
if [ ! -x "$java_cmd" ]; then
PREFIX=`basename "$prog"`
echo "$PREFIX: The default Java VM is not an ELF 32-bit LSB executable."
echo "$PREFIX: Please do one of the following:"
echo "$PREFIX: 1) Arrange for the default Java VM to be an ELF 32-bit LSB executable."
echo "$PREFIX: 2) Install the ia32-sun-java6-bin package."
exit 1
fi
fi
else
os_opts=
java_cmd="java"
@@ -102,6 +79,32 @@ else
jarpath="$frameworkdir/$jarfile"
fi
# Figure out the path to the swt.jar for the current architecture.
# if ANDROID_SWT is defined, then just use this.
# else, if running in the Android source tree, then look for the correct swt folder in prebuilt
# else, look for the correct swt folder in the SDK under tools/lib/
swtpath=""
if [ -n "$ANDROID_SWT" ]; then
swtpath="$ANDROID_SWT"
else
vmarch=`java -jar "${frameworkdir}"/archquery.jar`
if [ -n "$ANDROID_BUILD_TOP" ]; then
osname=`uname -s | tr A-Z a-z`
swtpath="${ANDROID_BUILD_TOP}/prebuilt/${osname}-${vmarch}/swt"
else
swtpath="${frameworkdir}/${vmarch}"
fi
fi
# Combine the swtpath and the framework dir path.
if [ -d "$swtpath" ]; then
frameworkdir="${swtpath}:${frameworkdir}"
else
echo "SWT folder '${swtpath}' does not exist."
echo "Please export ANDROID_SWT to point to the folder containing swt.jar for your platform."
exit 1
fi
# need to use "java.ext.dirs" because "-jar" causes classpath to be ignored
# might need more memory, e.g. -Xmx128M
exec "$java_cmd" -Xmx256M $os_opts $java_debug -Djava.ext.dirs="$frameworkdir" -Djava.library.path="$libdir" -Dcom.android.ddms.bindir="$progdir" -jar "$jarpath" "$@"
exec "$java_cmd" -Xmx256M $os_opts $java_debug -Djava.ext.dirs="$frameworkdir" -Dcom.android.ddms.bindir="$progdir" -jar "$jarpath" "$@"

View File

@@ -13,9 +13,9 @@ LOCAL_JAVA_LIBRARIES := \
ddmlib \
ddmuilib \
swt \
org.eclipse.jface_3.2.0.I20060605-1400 \
org.eclipse.equinox.common_3.2.0.v20060603 \
org.eclipse.core.commands_3.2.0.I20060605-1400
org.eclipse.jface_3.4.2.M20090107-0800 \
org.eclipse.equinox.common_3.4.0.v20080421-2006 \
org.eclipse.core.commands_3.4.0.I20080509-2000
LOCAL_MODULE := ddms
include $(BUILD_HOST_JAVA_LIBRARY)

View File

@@ -9,9 +9,9 @@ LOCAL_JAVA_RESOURCE_DIRS := resources
LOCAL_JAVA_LIBRARIES := \
ddmlib \
swt \
org.eclipse.jface_3.2.0.I20060605-1400 \
org.eclipse.equinox.common_3.2.0.v20060603 \
org.eclipse.core.commands_3.2.0.I20060605-1400 \
org.eclipse.jface_3.4.2.M20090107-0800 \
org.eclipse.equinox.common_3.4.0.v20080421-2006 \
org.eclipse.core.commands_3.4.0.I20080509-2000 \
jcommon-1.0.12 \
jfreechart-1.0.9 \
jfreechart-1.0.9-swt

1
tools/screenshot/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
bin

View File

@@ -79,6 +79,32 @@ else
jarpath="$frameworkdir/$jarfile"
fi
# Figure out the path to the swt.jar for the current architecture.
# if ANDROID_SWT is defined, then just use this.
# else, if running in the Android source tree, then look for the correct swt folder in prebuilt
# else, look for the correct swt folder in the SDK under tools/lib/
swtpath=""
if [ -n "$ANDROID_SWT" ]; then
swtpath="$ANDROID_SWT"
else
vmarch=`java -jar "${frameworkdir}"/archquery.jar`
if [ -n "$ANDROID_BUILD_TOP" ]; then
osname=`uname -s | tr A-Z a-z`
swtpath="${ANDROID_BUILD_TOP}/prebuilt/${osname}-${vmarch}/swt"
else
swtpath="${frameworkdir}/${vmarch}"
fi
fi
# Combine the swtpath and the framework dir path.
if [ -d "$swtpath" ]; then
frameworkdir="${swtpath}:${frameworkdir}"
else
echo "SWT folder '${swtpath}' does not exist."
echo "Please export ANDROID_SWT to point to the folder containing swt.jar for your platform."
exit 1
fi
# need to use "java.ext.dirs" because "-jar" causes classpath to be ignored
# might need more memory, e.g. -Xmx128M
exec "$java_cmd" -Xmx256M $os_opts $java_debug -Djava.ext.dirs="$frameworkdir" -Djava.library.path="$libdir" -Dcom.android.sdkmanager.toolsdir="$progdir" -jar "$jarpath" "$@"
exec "$java_cmd" -Xmx256M $os_opts $java_debug -Djava.ext.dirs="$frameworkdir" -Dcom.android.sdkmanager.toolsdir="$progdir" -jar "$jarpath" "$@"

View File

@@ -11,9 +11,10 @@ LOCAL_JAVA_LIBRARIES := \
sdklib \
sdkuilib \
swt \
org.eclipse.jface_3.2.0.I20060605-1400 \
org.eclipse.equinox.common_3.2.0.v20060603 \
org.eclipse.core.commands_3.2.0.I20060605-1400
org.eclipse.jface_3.4.2.M20090107-0800 \
org.eclipse.equinox.common_3.4.0.v20080421-2006 \
org.eclipse.core.commands_3.4.0.I20080509-2000
LOCAL_MODULE := sdkmanager
include $(BUILD_HOST_JAVA_LIBRARY)

View File

@@ -11,9 +11,9 @@ LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_JAVA_LIBRARIES := \
sdklib \
swt \
org.eclipse.jface_3.2.0.I20060605-1400 \
org.eclipse.equinox.common_3.2.0.v20060603 \
org.eclipse.core.commands_3.2.0.I20060605-1400
org.eclipse.jface_3.4.2.M20090107-0800 \
org.eclipse.equinox.common_3.4.0.v20080421-2006 \
org.eclipse.core.commands_3.4.0.I20080509-2000
LOCAL_MODULE := sdkuilib

View File

@@ -7,9 +7,9 @@ LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_JAVA_LIBRARIES := \
androidprefs \
swt \
org.eclipse.jface_3.2.0.I20060605-1400 \
org.eclipse.equinox.common_3.2.0.v20060603 \
org.eclipse.core.commands_3.2.0.I20060605-1400
org.eclipse.jface_3.4.2.M20090107-0800 \
org.eclipse.equinox.common_3.4.0.v20080421-2006 \
org.eclipse.core.commands_3.4.0.I20080509-2000
LOCAL_MODULE := sdkstats
include $(BUILD_HOST_JAVA_LIBRARY)

View File

@@ -97,5 +97,30 @@ else
jarpath="$frameworkdir/$jarfile"
fi
# Figure out the path to the swt.jar for the current architecture.
# if ANDROID_SWT is defined, then just use this.
# else, if running in the Android source tree, then look for the correct swt folder in prebuilt
# else, look for the correct swt folder in the SDK under tools/lib/
swtpath=""
if [ -n "$ANDROID_SWT" ]; then
swtpath="$ANDROID_SWT"
else
vmarch=`java -jar "${frameworkdir}"/archquery.jar`
if [ -n "$ANDROID_BUILD_TOP" ]; then
osname=`uname -s | tr A-Z a-z`
swtpath="${ANDROID_BUILD_TOP}/prebuilt/${osname}-${vmarch}/swt"
else
swtpath="${frameworkdir}/${vmarch}"
fi
fi
exec "$javaCmd" $javaOpts -Djava.ext.dirs="$frameworkdir" -Djava.library.path="$libdir" -jar "$jarpath" "$@"
# Combine the swtpath and the framework dir path.
if [ -d "$swtpath" ]; then
frameworkdir="${swtpath}:${frameworkdir}"
else
echo "SWT folder '${swtpath}' does not exist."
echo "Please export ANDROID_SWT to point to the folder containing swt.jar for your platform."
exit 1
fi
exec "$javaCmd" $javaOpts -Djava.ext.dirs="$frameworkdir" -jar "$jarpath" "$@"

View File

@@ -11,9 +11,9 @@ LOCAL_JAVA_LIBRARIES := \
androidprefs \
sdkstats \
swt \
org.eclipse.jface_3.2.0.I20060605-1400 \
org.eclipse.equinox.common_3.2.0.v20060603 \
org.eclipse.core.commands_3.2.0.I20060605-1400
org.eclipse.jface_3.4.2.M20090107-0800 \
org.eclipse.equinox.common_3.4.0.v20080421-2006 \
org.eclipse.core.commands_3.4.0.I20080509-2000
LOCAL_MODULE := traceview
include $(BUILD_HOST_JAVA_LIBRARY)