diff options
author | Pierre Zurek <pierrezurek@gmail.com> | 2010-12-20 02:31:37 +0100 |
---|---|---|
committer | Pierre Zurek <pierrezurek@gmail.com> | 2011-01-30 23:27:58 +0100 |
commit | 81f0988e1eaf42fbb574385be1084acedb1736db (patch) | |
tree | 7727d7b4bb8527715cc26425847a8d6c5ac6279d | |
parent | 0ab5c4f98cdc5bd66cc08441558b357e2af535c6 (diff) | |
download | sdk-81f0988e1eaf42fbb574385be1084acedb1736db.zip sdk-81f0988e1eaf42fbb574385be1084acedb1736db.tar.gz sdk-81f0988e1eaf42fbb574385be1084acedb1736db.tar.bz2 |
Traceview integration into Eclipse.
New plugin which adds a Traceview view to Eclipse.
Change-Id: I3001dfde6ed28db3de8a75715a0ba0743f5c29b0
19 files changed, 578 insertions, 3 deletions
diff --git a/eclipse/buildConfig/allElements.xml b/eclipse/buildConfig/allElements.xml index ce17a0a..6195440 100644 --- a/eclipse/buildConfig/allElements.xml +++ b/eclipse/buildConfig/allElements.xml @@ -29,6 +29,11 @@ <property name="id" value="com.android.ide.eclipse.adt" /> </ant> + <ant antfile="${genericTargets}" target="${target}"> + <property name="type" value="feature" /> + <property name="id" value="com.android.ide.eclipse.traceview" /> + </ant> + <antcall target="buildInternalFeatures"/> </target> @@ -75,4 +80,8 @@ <target name="assemble.com.android.ide.eclipse.pdt"> <ant antfile="${assembleScriptName}" dir="${buildDirectory}"/> </target> + + <target name="assemble.com.android.ide.eclipse.traceview"> + <ant antfile="${assembleScriptName}" dir="${buildDirectory}"/> + </target> </project> diff --git a/eclipse/features/com.android.ide.eclipse.traceview/.project b/eclipse/features/com.android.ide.eclipse.traceview/.project new file mode 100644 index 0000000..12c788b --- /dev/null +++ b/eclipse/features/com.android.ide.eclipse.traceview/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>traceview-feature</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.pde.FeatureBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.FeatureNature</nature> + </natures> +</projectDescription> diff --git a/eclipse/features/com.android.ide.eclipse.traceview/build.properties b/eclipse/features/com.android.ide.eclipse.traceview/build.properties new file mode 100644 index 0000000..64f93a9 --- /dev/null +++ b/eclipse/features/com.android.ide.eclipse.traceview/build.properties @@ -0,0 +1 @@ +bin.includes = feature.xml diff --git a/eclipse/features/com.android.ide.eclipse.traceview/feature.xml b/eclipse/features/com.android.ide.eclipse.traceview/feature.xml new file mode 100644 index 0000000..3fa9dc6 --- /dev/null +++ b/eclipse/features/com.android.ide.eclipse.traceview/feature.xml @@ -0,0 +1,242 @@ +<?xml version="1.0" encoding="UTF-8"?> +<feature + id="com.android.ide.eclipse.traceview" + label="Android Traceview" + version="10.0.0.qualifier" + provider-name="The Android Open Source Project" + plugin="com.android.ide.eclipse.traceview"> + + <description> + Android Traceview + </description> + + <copyright> + Copyright (C) 2011 The Android Open Source Project + </copyright> + + <license url="http://www.apache.org/licenses/LICENSE-2.0"> + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. + </license> + + <url> + <update label="Android Update Site" url="https://dl-ssl.google.com/android/eclipse/"/> + </url> + + <requires> + <import plugin="org.eclipse.ui"/> + <import plugin="org.eclipse.core.runtime"/> + <import plugin="org.eclipse.ui.console"/> + <import plugin="org.eclipse.core.resources"/> + <import plugin="org.eclipse.ui.ide"/> + <import plugin="org.eclipse.core.filesystem"/> + <import plugin="org.eclipse.jdt.core"/> + </requires> + + <plugin + id="com.android.ide.eclipse.traceview" + download-size="0" + install-size="0" + version="0.0.0" + unpack="false"/> + +</feature> diff --git a/eclipse/plugins/com.android.ide.eclipse.traceview/.classpath b/eclipse/plugins/com.android.ide.eclipse.traceview/.classpath new file mode 100644 index 0000000..1df80d6 --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.traceview/.classpath @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="lib" path="libs/traceview.jar"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/eclipse/plugins/com.android.ide.eclipse.traceview/.project b/eclipse/plugins/com.android.ide.eclipse.traceview/.project new file mode 100644 index 0000000..f4a3b50 --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.traceview/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>traceview-plugin</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/eclipse/plugins/com.android.ide.eclipse.traceview/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.traceview/META-INF/MANIFEST.MF new file mode 100644 index 0000000..014a8ff --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.traceview/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Traceview +Bundle-SymbolicName: com.android.ide.eclipse.traceview;singleton:=true +Bundle-Version: 10.0.0.qualifier +Bundle-Activator: com.android.ide.eclipse.traceview.TraceviewPlugin +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime +Bundle-ActivationPolicy: lazy +Bundle-ClassPath: ., + libs/traceview.jar +Bundle-Vendor: The Android Open Source Project diff --git a/eclipse/plugins/com.android.ide.eclipse.traceview/build.properties b/eclipse/plugins/com.android.ide.eclipse.traceview/build.properties new file mode 100644 index 0000000..049e0d1 --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.traceview/build.properties @@ -0,0 +1,7 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + libs/traceview.jar,\ + icons/ diff --git a/eclipse/plugins/com.android.ide.eclipse.traceview/icons/android.png b/eclipse/plugins/com.android.ide.eclipse.traceview/icons/android.png Binary files differnew file mode 100644 index 0000000..a8dc35e --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.traceview/icons/android.png diff --git a/eclipse/plugins/com.android.ide.eclipse.traceview/libs/.gitignore b/eclipse/plugins/com.android.ide.eclipse.traceview/libs/.gitignore new file mode 100644 index 0000000..d392f0e --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.traceview/libs/.gitignore @@ -0,0 +1 @@ +*.jar diff --git a/eclipse/plugins/com.android.ide.eclipse.traceview/plugin.xml b/eclipse/plugins/com.android.ide.eclipse.traceview/plugin.xml new file mode 100644 index 0000000..e595b5d --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.traceview/plugin.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<plugin> + <extension + point="org.eclipse.ui.views"> + <view + category="com.android.ide.eclipse.ddms.views.category" + class="com.android.ide.eclipse.traceview.views.TraceviewView" + icon="icons/android.png" + id="com.android.ide.eclipse.traceview.views.TraceviewView" + name="Traceview"> + </view> + </extension> + +</plugin> diff --git a/eclipse/plugins/com.android.ide.eclipse.traceview/src/com/android/ide/eclipse/traceview/TraceviewPlugin.java b/eclipse/plugins/com.android.ide.eclipse.traceview/src/com/android/ide/eclipse/traceview/TraceviewPlugin.java new file mode 100644 index 0000000..e11f7c9 --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.traceview/src/com/android/ide/eclipse/traceview/TraceviewPlugin.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2011 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.ide.eclipse.traceview; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class TraceviewPlugin extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "com.android.ide.eclipse.traceview"; // $NON-NLS-1$ + + // The shared instance + private static TraceviewPlugin sPlugin; + + /** + * The constructor + */ + public TraceviewPlugin() { + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + @Override + public void start(BundleContext context) throws Exception { + super.start(context); + sPlugin = this; + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + @Override + public void stop(BundleContext context) throws Exception { + sPlugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static TraceviewPlugin getDefault() { + return sPlugin; + } + +} diff --git a/eclipse/plugins/com.android.ide.eclipse.traceview/src/com/android/ide/eclipse/traceview/views/TraceviewView.java b/eclipse/plugins/com.android.ide.eclipse.traceview/src/com/android/ide/eclipse/traceview/views/TraceviewView.java new file mode 100644 index 0000000..bf804e1 --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.traceview/src/com/android/ide/eclipse/traceview/views/TraceviewView.java @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2011 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.ide.eclipse.traceview.views; + +import com.android.traceview.ColorController; +import com.android.traceview.DmTraceReader; +import com.android.traceview.ProfileView; +import com.android.traceview.SelectionController; +import com.android.traceview.TimeLineView; +import com.android.traceview.TraceReader; +import com.android.traceview.TraceUnits; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.SashForm; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.part.ViewPart; + +public class TraceviewView extends ViewPart { + + private Action mOpenTraceFileAction; + private Composite mParent; + private String mFilename; + private Composite mContents; + + @Override + public void createPartControl(Composite parent) { + mParent = parent; + mContents = null; + + mOpenTraceFileAction = new Action("Open trace file") { + @Override + public void run() { + FileDialog fd = new FileDialog(mParent.getShell(), SWT.OPEN); + mFilename = fd.open(); + if (mFilename != null) { + display(); + } + } + }; + + IActionBars actionBars = getViewSite().getActionBars(); + + // toolbar + IToolBarManager toolBarManager = actionBars.getToolBarManager(); + toolBarManager.add(mOpenTraceFileAction); + } + + public void display() { + TraceReader reader = new DmTraceReader(mFilename, false); + reader.getTraceUnits().setTimeScale(TraceUnits.TimeScale.MilliSeconds); + + if (mContents != null) { + mContents.dispose(); + } + mContents = new Composite(mParent, SWT.NONE); + + Display display = mContents.getDisplay(); + ColorController.assignMethodColors(display, reader.getMethods()); + SelectionController selectionController = new SelectionController(); + + GridLayout gridLayout = new GridLayout(1, false); + gridLayout.marginWidth = 0; + gridLayout.marginHeight = 0; + gridLayout.horizontalSpacing = 0; + gridLayout.verticalSpacing = 0; + mContents.setLayout(gridLayout); + + Color darkGray = display.getSystemColor(SWT.COLOR_DARK_GRAY); + + // Create a sash form to separate the timeline view (on top) + // and the profile view (on bottom) + SashForm sashForm1 = new SashForm(mContents, SWT.VERTICAL); + sashForm1.setBackground(darkGray); + sashForm1.SASH_WIDTH = 3; + GridData data = new GridData(GridData.FILL_BOTH); + sashForm1.setLayoutData(data); + + // Create the timeline view + new TimeLineView(sashForm1, reader, selectionController); + + // Create the profile view + new ProfileView(sashForm1, reader, selectionController); + + mParent.layout(); + } + + @Override + public void setFocus() { + mParent.setFocus(); + } + +} diff --git a/eclipse/scripts/build_server.sh b/eclipse/scripts/build_server.sh index 3deaca8..bff14bd 100755 --- a/eclipse/scripts/build_server.sh +++ b/eclipse/scripts/build_server.sh @@ -61,8 +61,8 @@ function check_params() { function build_libs() { MAKE_OPT="-j8" - echo "*** Building: make $MAKE_OPT dx ping ddms androidprefs layoutlib layoutlib_api ide_common ninepatch sdklib sdkuilib" - make $MAKE_OPT dx ping ddms androidprefs layoutlib layoutlib_api ide_common ninepatch sdklib sdkuilib + echo "*** Building: make $MAKE_OPT dx ping ddms androidprefs layoutlib layoutlib_api ide_common ninepatch sdklib sdkuilib traceview" + make $MAKE_OPT dx ping ddms androidprefs layoutlib layoutlib_api ide_common ninepatch sdklib sdkuilib traceview } function build_plugin { diff --git a/eclipse/scripts/create_all_symlinks.sh b/eclipse/scripts/create_all_symlinks.sh index 99b81df..dec4df7 100755 --- a/eclipse/scripts/create_all_symlinks.sh +++ b/eclipse/scripts/create_all_symlinks.sh @@ -25,5 +25,7 @@ echo ; echo "### BRIDGE ###" ; echo $DEST/create_bridge_symlinks.sh "$*" echo ; echo "### HIERARCHYVIEWER ###" ; echo $DEST/create_hierarchyviewer_symlinks.sh "$*" +echo ; echo "### TRACEVIEW ###" ; echo +$DEST/create_traceview_symlinks.sh "$*" echo "### $0 done" diff --git a/eclipse/scripts/create_traceview_symlinks.sh b/eclipse/scripts/create_traceview_symlinks.sh new file mode 100755 index 0000000..5a002c3 --- /dev/null +++ b/eclipse/scripts/create_traceview_symlinks.sh @@ -0,0 +1,47 @@ +#!/bin/bash +function die() { + echo "Error: $*" + exit 1 +} + +set -e # fail early + +# CD to the top android directory +D=`dirname "$0"` +cd "$D/../../../" + +DEST="sdk/eclipse/plugins/com.android.ide.eclipse.traceview/libs" +# computes "../.." from DEST to here (in /android) +BACK=`echo $DEST | sed 's@[^/]*@..@g'` + +mkdir -p $DEST + +LIBS="traceview" + +echo "make java libs ..." +make -j3 showcommands $LIBS || die "TRACEVIEW: Fail to build one of $LIBS." + +echo "Copying java libs to $DEST" + + +HOST=`uname` +if [ "$HOST" == "Linux" ]; then + for LIB in $LIBS; do + ln -svf $BACK/out/host/linux-x86/framework/$LIB.jar "$DEST/" + done + +elif [ "$HOST" == "Darwin" ]; then + for LIB in $LIBS; do + ln -svf $BACK/out/host/darwin-x86/framework/$LIB.jar "$DEST/" + done + +elif [ "${HOST:0:6}" == "CYGWIN" ]; then + for LIB in $LIBS; do + cp -vf out/host/windows-x86/framework/$LIB.jar "$DEST/" + done + + chmod -v a+rx "$DEST"/*.jar +else + echo "Unsupported platform ($HOST). Nothing done." +fi + diff --git a/eclipse/sites/external/site.xml b/eclipse/sites/external/site.xml index 0d57679..f4810c8 100644 --- a/eclipse/sites/external/site.xml +++ b/eclipse/sites/external/site.xml @@ -12,6 +12,9 @@ <feature url="features/com.android.ide.eclipse.hierarchyviewer_10.0.0.qualifier.jar" id="com.android.ide.eclipse.hierarchyviewer" version="10.0.0.qualifier"> <category name="developer"/> </feature> + <feature url="features/com.android.ide.eclipse.traceview_10.0.0.qualifier.jar" id="com.android.ide.eclipse.traceview" version="10.0.0.qualifier"> + <category name="developer"/> + </feature> <category-def name="developer" label="Developer Tools"> <description> Features that add Android support to Eclipse for application developers. diff --git a/eclipse/sites/internal/site.xml b/eclipse/sites/internal/site.xml index 207ccc8..afdccb2 100644 --- a/eclipse/sites/internal/site.xml +++ b/eclipse/sites/internal/site.xml @@ -20,6 +20,9 @@ <feature url="features/com.android.ide.eclipse.pdt_10.0.0.qualifier.jar" id="com.android.ide.eclipse.pdt" version="10.0.0.qualifier"> <category name="platform"/> </feature> + <feature url="features/com.android.ide.eclipse.traceview_10.0.0.qualifier.jar" id="com.android.ide.eclipse.traceview" version="10.0.0.qualifier"> + <category name="platform"/> + </feature> <category-def name="developer" label="Application Developer Tools"> <description> Features that add Android support to Eclipse for application developers. diff --git a/traceview/src/com/android/traceview/DmTraceReader.java b/traceview/src/com/android/traceview/DmTraceReader.java index fb881e2..260a865 100644 --- a/traceview/src/com/android/traceview/DmTraceReader.java +++ b/traceview/src/com/android/traceview/DmTraceReader.java @@ -57,7 +57,7 @@ public class DmTraceReader extends TraceReader { // A regex for matching the thread "id name" lines in the .key file private static final Pattern mIdNamePattern = Pattern.compile("(\\d+)\t(.*)"); //$NON-NLS-1$ - DmTraceReader(String traceFileName, boolean regression) { + public DmTraceReader(String traceFileName, boolean regression) { mTraceFileName = traceFileName; mRegression = regression; mMethodMap = new HashMap<Integer, MethodData>(); |