debian/0000755000000000000000000000000012216427401007165 5ustar debian/hierarchyviewer.pod0000644000000000000000000001212212177130266013075 0ustar =head1 NAME hierarchyviewer - a tool to debug and optimize Android user interface =head1 SYNOPSIS hierarchyviewer =head1 DESCRIPTION The Hierarchy Viewer application allows you to debug and optimize your user interface. It provides a visual representation of the layout's View hierarchy (the Layout View) and a magnified inspector of the display (the Pixel Perfect View). To get the Hierarchy Viewer started: =over 3 =item 1. Connect your device or launch an emulator. =item 2. Launch Hierarchy Viewer from the shell or your desktop environment's menu. =item 3. In the window that opens, you'll see a list of Devices. When a device is selected, a list of currently active Windows is displayed on the right. The is the window currently in the foreground, and also the default window loaded if you do not select another. =item 4. Select the window that you'd like to inspect and click Load View Hierarchy. The Layout View will be loaded. You can then load the Pixel Perfect View by clicking the second icon at the bottom-left of the window. =back If you've navigated to a different window on the device, press Refresh Windows to refresh the list of available windows on the right. =head2 Layout View The Layout View offers a look at the View layout and properties. It has three views: Tree View: a hierarchy diagram of the Views, on the left. Properties View: a list of the selected View's properties, on the top-right. Wire-frame View: a wire-frame drawing of the layout, on the bottom-right. Select a node in the Tree View to display the properties of that element in the Properties View. When a node is selected, the Wire-frame View also indicates the bounds of the element with a red rectangle. Double click a node in the tree (or select it, and click Display View) to open a new window with a rendering of that element. The Layout View includes a couple other helpful features for debugging your layout: Invalidate and Request Layout. These buttons execute the respective View calls, invalidate() and requestLayout(), on the View element currently selected in the tree. Calling these methods on any View can be very useful when simultaneously running a debugger on your application. The Tree View can be resized by adjusting the zoom slider, below the diagram. The number of View elements in the window is also given here. You should look for ways to minimize the number of Views. The fewer View elements there are in a window, the faster it will perform. If you interact with the device and change the focused View, the diagram will not automatically refresh. You must reload the Layout View by clicking Load View Hierarchy. =head2 Pixel Perfect View The Pixel Perfect View provides a magnified look at the current device window. It has three views: Explorer View: shows the View hierarchy as a list, on the left. Normal View: a normal view of the device window, in the middle. Loupe View: a magnified, pixel-grid view of the device window, on the right. Click on an element in the Explorer View and a "layout box" will be drawn in the Normal View to indicate the layout position of that element. The layout box uses multiple rectangles, to indicate the normal bounds, the padding and the margin (as needed). The purple or green rectangle indicates the normal bounds of the element (the height and width). The inner white or black rectangle indicates the content bounds, when padding is present. A black or white rectangle outside the normal purple/green rectangle indicates any present margins. (There are two colors for each rectangle, in order to provide the best contrast based on the colors currently in the background.) A very handy feature for designing your UI is the ability to overlay an image in the Normal and Loupe Views. For example, you might have a mock-up image of how you'd like to layout your interface. By selecting Load... from the controls in the Normal View, you can choose the image from your computer and it will be placed atop the preview. Your chosen image will anchor at the bottom left corner of the screen. You can then adjust the opacity of the overlay and begin fine-tuning your layout to match the mock-up. The Normal View and Loupe View refresh at regular intervals (5 seconds by default), but the Explorer View does not. If you navigate away and focus on a different View, then you should refresh the Explorer's hierarchy by clicking Load View Hierarchy. This is even true when you're working in a window that holds multiple Views that are not always visible. If you do not, although the previews will refresh, clicking a View in the Explorer will not provide the proper layout box in the Normal View, because the hierarchy believes you are still focused on the prior View. Optional controls include: Overlay: Load an overlay image onto the view and adjust its opacity. Refresh Rate: Adjust how often the Normal and Loupe View refresh their display. Zoom: Adjust the zoom level of the Loupe View. =head1 COPYRIGHT This manual page is licensed under the Apache License, Version 2.0. Copyright (C) 2013 www.linuxtopia.org Copyright (C) 2013 Jakub Adam debian/androidsdk-ddms.install0000644000000000000000000000015012177130266013626 0ustar androidsdk-ddms.jar usr/share/java ddms/app/etc/ddms usr/bin debian/ddms.desktop usr/share/applications debian/source/0000755000000000000000000000000012177130266010473 5ustar debian/source/format0000644000000000000000000000001412177130266011701 0ustar 3.0 (quilt) debian/libandroidsdk-common-java.install0000644000000000000000000000004612177130266015601 0ustar androidsdk-common.jar usr/share/java/ debian/control0000644000000000000000000001320312216427373010577 0ustar Source: androidsdk-tools Section: devel Priority: extra Maintainer: Debian Java Maintainers Uploaders: Stefan Handschuh , Jakub Adam Build-Depends: debhelper (>=9), cdbs, javahelper Build-Depends-Indep: default-jdk, bnd, libswt-gtk-3-java, libjfreechart-swt-java, eclipse-rcp (>= 3.8.1), libguava-java (>= 13.0.1), libkxml2-java, perl Standards-Version: 3.9.4 Homepage: http://developer.android.com/tools/help/index.html Vcs-Git: git://anonscm.debian.org/pkg-java/androidsdk-tools.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-java/androidsdk-tools.git;a=summary Package: libandroidsdk-common-java Section: java Architecture: all Depends: ${java:Depends}, ${misc:Depends} Description: Android sdk tools common library Common library used by other android sdk tools. Package: libandroidsdk-sdklib-java Section: java Architecture: all Depends: libandroidsdk-common-java (= ${binary:Version}), ${java:Depends}, ${misc:Depends} Description: Android SDKlib The Android SDKlib contains the resource assembler that compiles the static resource files of an Android project. . This version of the SDKlib library lacks the support for the SDK manager. Package: libandroidsdk-sdkstats-java Section: java Architecture: all Depends: libandroidsdk-common-java (= ${binary:Version}), ${java:Depends}, ${misc:Depends} Description: Sends Android SDK usage statistics to Google This library sends reports about usage of the Android SDK to the Google servers. Information can be used to help improving the software. . User has to grant permission in order to participate in the data collection. Package: libandroidsdk-swtmenubar-java Section: java Architecture: all Depends: ${java:Depends}, ${misc:Depends} Description: Android SDK OS menubar hook library This project provides a platform-specific way to hook into the default OS menu bar. . Typically, an SWT Menu named "Tools" should be provided into which the library will add "About" and "Options" menu items. Package: libandroidsdk-ddmlib-java Section: java Architecture: all Depends: android-tools-adb, ${java:Depends}, ${misc:Depends} Description: Library for communicaton with connected Android devices Dalvik Debug Monitor Server provides a way to communicate via adb with Android devices connected through USB or running in emulator. Package: libandroidsdk-ddmuilib-java Section: java Architecture: all Depends: libandroidsdk-ddmlib-java (= ${binary:Version}), ${java:Depends}, ${misc:Depends} Description: User interface library for ddmlib Dalvik Debug Monitor Server provides a way to communicate via adb with Android devices connected through USB or running in emulator. . This library provies UI components for use with ddmlib. Package: androidsdk-ddms Section: java Architecture: all Depends: libandroidsdk-swtmenubar-java (= ${binary:Version}), libandroidsdk-ddmlib-java (= ${binary:Version}), libandroidsdk-ddmuilib-java (= ${binary:Version}), libandroidsdk-sdkstats-java (= ${binary:Version}), ${java:Depends}, ${misc:Depends} Description: Graphical debugging tool for Android Dalvik Debug Monitor is a tool for debugging Android applications. Among others, it provides these capabilities: . * Port-forwarding services * Screen capture on the device * Thread and heap information on the device * Logcat, process, and radio state information * Incoming call and SMS spoofing * Location data spoofing . This package is required only when you want to run DDMS as a stand-alone application. For usage from within Eclipse IDE, install eclipse-adt. Package: libandroidsdk-hierarchyviewerlib-java Section: java Architecture: all Depends: libandroidsdk-ddmuilib-java (= ${binary:Version}), ${java:Depends}, ${misc:Depends} Description: Android Hierarchy Viewer library Hierarchy Viewer allows you to debug and optimize your user interface. It provides a visual representation of the layout's view hierarchy (the Layout View) and a magnified inspector of the display (the Pixel Perfect View). Package: androidsdk-hierarchyviewer Section: java Architecture: all Depends: libandroidsdk-hierarchyviewerlib-java (= ${binary:Version}), libandroidsdk-common-java (= ${binary:Version}), libandroidsdk-swtmenubar-java (= ${binary:Version}), ${java:Depends}, ${misc:Depends} Description: Tool to debug and optimize Android user interface Hierarchy Viewer allows you to debug and optimize your user interface. It provides a visual representation of the layout's View hierarchy (the Layout View) and a magnified inspector of the display (the Pixel Perfect View). . This package is required only when you want to run DDMS as a stand-alone application. For usage from within Eclipse IDE, install eclipse-adt. Package: androidsdk-traceview Section: java Architecture: all Depends: ${java:Depends}, ${misc:Depends} Description: Tool to profile performance of Android applications Traceview is a graphical viewer for execution logs saved by your application. It can help you debug your application and profile its performance. Package: androidsdk-uiautomatorviewer Section: java Architecture: all Depends: libandroidsdk-common-java (= ${binary:Version}), libandroidsdk-ddmlib-java (= ${binary:Version}), ${java:Depends}, ${misc:Depends} Description: Tool to scan and analyze the UI components of an Android application The uiautomatorviewer tool provides a convenient visual interface to inspect the layout hierarchy and view the properties of the individual UI components that are displayed on the test device. Using this information, you can later create uiautomator tests with selector objects that target specific UI components to test. debian/androidsdk-traceview.install0000644000000000000000000000011012177130266014664 0ustar androidsdk-traceview.jar usr/share/java traceview/etc/traceview usr/bin debian/androidsdk-uiautomatorviewer.links0000644000000000000000000000012512177130266016146 0ustar usr/share/java/androidsdk-uiautomatorviewer.jar usr/share/java/uiautomatorviewer.jar debian/androidsdk-uiautomatorviewer.bnd0000644000000000000000000000023012177130266015566 0ustar Bundle-Name: Android UI Automator Viewer Bundle-SymbolicName: com.android.uiautomator Bundle-Version: 1.0.0 Bundle-Vendor: Debian.org Import-Package: * debian/ddms.desktop0000644000000000000000000000017712177130266011522 0ustar [Desktop Entry] Type=Application Name=Dalvik Debug Monitor Icon=ddms Exec=ddms Terminal=false Categories=Development;Debugger; debian/compat0000644000000000000000000000000212216424616010370 0ustar 9 debian/hierarchyviewer.desktop0000644000000000000000000000023112177130266013762 0ustar [Desktop Entry] Type=Application Name=Android Hierarchy Viewer Icon=hierarchyviewer Exec=hierarchyviewer Terminal=false Categories=Development;Debugger; debian/classpath0000644000000000000000000000147012177130266011102 0ustar androidsdk-common.jar . androidsdk-sdklib.jar androidsdk-common.jar guava.jar androidsdk-sdkstats.jar androidsdk-common.jar swt.jar org.eclipse.jface.jar androidsdk-swtmenubar.jar swt.jar androidsdk-ddmlib.jar kxml2.jar androidsdk-ddmuilib.jar androidsdk-ddmlib.jar jfreechart.jar jfreechart-swt.jar androidsdk-ddms.jar androidsdk-ddmlib.jar androidsdk-ddmuilib.jar androidsdk-sdkstats.jar androidsdk-swtmenubar.jar org.eclipse.jface.jar androidsdk-hierarchyviewerlib.jar androidsdk-ddmlib.jar androidsdk-ddmuilib.jar org.eclipse.jface.jar swt.jar androidsdk-hierarchyviewer.jar androidsdk-hierarchyviewerlib.jar androidsdk-swtmenubar.jar androidsdk-common.jar androidsdk-traceview.jar org.eclipse.jface.jar swt.jar androidsdk-uiautomatorviewer.jar org.eclipse.jface.jar swt.jar androidsdk-common.jar androidsdk-ddmlib.jar debian/androidsdk-sdklib.bnd0000644000000000000000000000032212177130266013245 0ustar Bundle-Name: Android sdklib library Bundle-SymbolicName: com.android.sdklib Bundle-Version: 1.0.0 Bundle-Vendor: Debian.org Import-Package: sun.misc;resolution:=optional, sun.security.*;resolution:=optional, * debian/androidsdk-traceview.manpages0000644000000000000000000000001412177130266015014 0ustar traceview.1 debian/uiautomatorviewer.pod0000644000000000000000000000415512212643307013472 0ustar =head1 NAME uiautomatorviewer - a GUI tool to scan and analyze the UI components of an Android application. =head1 SYNOPSIS uiautomatorviewer =head1 DESCRIPTION You can use the uiautomatorviewer tool to take a snapshot of the foreground UI screen on any Android device that is connected to your development machine. The uiautomatorviewer tool provides a convenient visual interface to inspect the layout hierarchy and view the properties of the individual UI components that are displayed on the test device. Using this information, you can later create uiautomator tests with selector objects that target specific UI components to test. To analyze the UI components of the application that you want to test: =over 3 =item 1. Connect your Android device to your development machine. =item 2. Run the uiautomatorviewer tool. =item 3. To capture a screen for analysis, click the Device Screenshot button in the GUI of the uiautomatorviewer tool. B If you have more than one device connected, specify the device for screen capture by setting the ANDROID_SERIAL environment variable: =over 4 Find the serial numbers for your connected devices by running this command: $ adb devices Set the ANDROID_SERIAL environment variable to select the device to test: $ export ANDROID_SERIAL= If you are connected to only a single device, you do not need to set the ANDROID_SERIAL environment variable. =back =item 4. View the UI properties for your application: =over 4 Hover over the snapshot in the left-hand panel to see the UI components identified by the uiautomatorviewer tool. You can view the component's properties listed in the lower right-hand panel, and the layout hierarchy in the upper right-hand panel. Optionally, click on the Toggle NAF Nodes button to see UI components that are not accessible to the uiautomator testing framework. Only limited information may be available for these components. =back =back =head1 COPYRIGHT This manual page is licensed under the Apache License, Version 2.0. Copyright (C) 2013 Android Open Source Project Copyright (C) 2013 Jakub Adam debian/traceview.pod0000644000000000000000000002230212212643234011661 0ustar =head1 NAME traceview - a graphical viewer for execution logs saved by Android application. =head1 SYNOPSIS traceview [-r] trace =head1 DESCRIPTION Traceview is a graphical viewer for execution logs that you create by using the Debug class to log tracing information in your code. Traceview can help you debug your application and profile its performance. =head1 OPTIONS =over 4 =item B<-r> regression only =back =head1 TRACEVIEW LAYOUT When you have a trace log file (generated by adding tracing code to your application or by DDMS), you can have Traceview load the log files and display their data in a window visualizes your application in two panels: =over 4 A timeline panel - describes when each thread and method started and stopped. A profile panel - provides a summary of what happened inside a method. =back The sections below provide addition information about the traceview output panes. =head2 Timeline Panel Each thread's execution is shown in its own row, with time increasing to the right. Each method is shown in another color (colors are reused in a round-robin fashion starting with the methods that have the most inclusive time). The thin lines underneath the first row show the extent (entry to exit) of all the calls to the selected method. The method in this case is LoadListener.nativeFinished() and it was selected in the profile view. =head2 Profile Panel This view shows a summary of all the time spent in a method. The table shows both the inclusive and exclusive times (as well as the percentage of the total time). Exclusive time is the time spent in the method. Inclusive time is the time spent in the method plus the time spent in any called functions. We refer to calling methods as "parents" and called methods as "children." When a method is selected (by clicking on it), it expands to show the parents and children. Parents are shown with a purple background and children with a yellow background. The last column in the table shows the number of calls to this method plus the number of recursive calls. The last column shows the number of calls out of the total number of calls made to that method. In this view, we can see that there were 14 calls to LoadListener.nativeFinished(); looking at the timeline panel shows that one of those calls took an unusually long time. =head1 TRACEVIEW FILE FORMAT Tracing creates two distinct pieces of output: a data file, which holds the trace data, and a key file, which provides a mapping from binary identifiers to thread and method names. The files are concatenated when tracing completes, into a single .trace file. B The previous version of Traceview did not concatenate these files for you. If you have old key and data files that you'd still like to trace, you can concatenate them yourself with cat mytrace.key mytrace.data > mytrace.trace. =head2 Data File Format The data file is binary, structured as follows (all values are stored in little endian order): * File format: * header * record 0 * record 1 * ... * * Header format: * u4 magic 0x574f4c53 ('SLOW') * u2 version * u2 offset to data * u8 start date/time in usec * * Record format: * u1 thread ID * u4 method ID | method action * u4 time delta since start, in usec The application is expected to parse all of the header fields, then seek to "offset to data" from the start of the file. From there it just reads 9-byte records until EOF is reached. u8 start date/time in usec is the output from gettimeofday(). It's mainly there so that you can tell if the output was generated yesterday or three months ago. method action sits in the two least-significant bits of the method word. The currently defined meanings are: 0 - method entry 1 - method exit 2 - method "exited" when unrolled by exception handling 3 - (reserved) An unsigned 32-bit integer can hold about 70 minutes of time in microseconds. =head2 Key File Format The key file is a plain text file divided into three sections. Each section starts with a keyword that begins with '*'. If you see a '*' at the start of a line, you have found the start of a new section. An example file might look like this: *version 1 clock=global *threads 1 main 6 JDWP Handler 5 Async GC 4 Reference Handler 3 Finalizer 2 Signal Handler *methods 0x080f23f8 java/io/PrintStream write ([BII)V 0x080f25d4 java/io/PrintStream print (Ljava/lang/String;)V 0x080f27f4 java/io/PrintStream println (Ljava/lang/String;)V 0x080da620 java/lang/RuntimeException ()V [...] 0x080f630c android/os/Debug startMethodTracing ()V 0x080f6350 android/os/Debug startMethodTracing (Ljava/lang/String;Ljava/lang/String;I)V *end The following list describes the major sections of a key file: =over 4 =item version section The first line is the file version number, currently 1. The second line, clock=global, indicates that we use a common clock across all threads. A future version may use per-thread CPU time counters that are independent for every thread. =item threads section One line per thread. Each line consists of two parts: the thread ID, followed by a tab, followed by the thread name. There are few restrictions on what a valid thread name is, so include everything to the end of the line. =item methods section One line per method entry or exit. A line consists of four pieces, separated by tab marks: method-ID [TAB] class-name [TAB] method-name [TAB] signature. Only the methods that were actually entered or exited are included in the list. Note that all three identifiers are required to uniquely identify a method. =back Neither the threads nor methods sections are sorted. =head1 CREATING TRACE FILES To use Traceview, you need to generate log files containing the trace information you want to analyze. There are two ways to generate trace logs: =over 4 Include the Debug class in your code and call its methods to start and stop logging of trace information to disk. This method is very precise because you can specify in your code exactly where to start and stop logging trace data. Use the method profiling feature of DDMS to generate trace logs. This method is less precise since you do not modify code, but rather specify when to start and stop logging with a DDMS. Although you have less control on exactly where the data is logged, this method is useful if you don't have access to the application's code, or if you do not need the precision of the first method. =back Before you start generating trace logs, be aware of the following restrictions: =over 4 If you are using the Debug class, your device or emulator must have an SD card and your application must have permission to write to the SD card. If you are using DDMS, Android 1.5 devices are not supported. If you are using DDMS, Android 2.1 and earlier devices must have an SD card present and your application must have permission to write to the SD card. If you are using DDMS, Android 2.2 and later devices do not need an SD card. The trace log files are streamed directly to your development machine. =back To create the trace files, include the Debug class and call one of the startMethodTracing() methods. In the call, you specify a base name for the trace files that the system generates. To stop tracing, call stopMethodTracing(). These methods start and stop method tracing across the entire virtual machine. For example, you could call startMethodTracing() in your activity's onCreate() method, and call stopMethodTracing() in that activity's onDestroy() method. // start tracing to "/sdcard/calc.trace" Debug.startMethodTracing("calc"); // ... // stop tracing Debug.stopMethodTracing(); When your application calls startMethodTracing(), the system creates a file called .trace. This contains the binary method trace data and a mapping table with thread and method names. The system then begins buffering the generated trace data, until your application calls stopMethodTracing(), at which time it writes the buffered data to the output file. If the system reaches the maximum buffer size before stopMethodTracing() is called, the system stops tracing and sends a notification to the console. Interpreted code will run more slowly when profiling is enabled. Don't try to generate absolute timings from the profiler results (i.e. "function X takes 2.5 seconds to run"). The times are only useful in relation to other profile output, so you can see if changes have made the code faster or slower. When using the Android emulator, you must specify an SD card when you create your AVD because the trace files are written to the SD card. Your application must have permission to write to the SD card as well. =head1 COPYING TRACE FILES TO A HOST MACHINE After your application has run and the system has created your trace files .trace on a device or emulator, you must copy those files to your development computer. You can use adb pull to copy the files. Here's an example that shows how to copy an example file, calc.trace, from the default location on the emulator to the /tmp directory on the emulator host machine: adb pull /sdcard/calc.trace /tmp =head1 COPYRIGHT This manual page is licensed under the Apache License, Version 2.0. Copyright (C) 2013 Android Open Source Project Copyright (C) 2013 Jakub Adam debian/orig-tar.sh0000755000000000000000000000521512212637623011260 0ustar #!/bin/bash ####################################################### # This script fetches the latest commit of the branch # # with the specified revision. # ####################################################### if [ -d androidsdk-tools -o -f androidsdk-tools ] then echo "The file/directory 'androidsdk-tools' exists .. aborting." exit fi REVISION=22.2 git clone -b tools_r$REVISION https://android.googlesource.com/platform/tools/swt androidsdk-tools git clone -b tools_r$REVISION https://android.googlesource.com/platform/tools/base androidsdk-base # Merge sources into a single directory mv androidsdk-base/common androidsdk-base/sdklib androidsdk-base/ddmlib androidsdk-tools rm -fr androidsdk-base VERSION=`git --git-dir=androidsdk-tools/.git log -1 --format=%cd~%h --date=short | sed s/-//g` echo "Version "$VERSION echo "Deleting not needed files ..." rm -fr `find androidsdk-tools -maxdepth 1 -type d ! -name androidsdk-tools ! -name common ! -name sdklib ! -name sdkmanager ! -name sdkstats ! -name swtmenubar ! -name ddms ! -name ddmlib ! -name hierarchyviewer2 ! -name traceview ! -name uiautomatorviewer` rm -fr androidsdk-tools/common/src/test rm -fr androidsdk-tools/sdklib/src/test rm -fr androidsdk-tools/sdkstats/src/test rm -fr androidsdk-tools/ddms/src/test rm -fr androidsdk-tools/ddmlib/src/test rm -fr androidsdk-tools/sdkmanager/app rm -fr androidsdk-tools/sdkmanager/libs/sdkuilib rm -fr androidsdk-tools/ddms/ddmuilib/src/test rm -fr `find androidsdk-tools/sdklib/src/main/java/com/android/sdklib -maxdepth 1 ! -name sdklib ! -name build ! -name util ! -name internal` rm -fr `find androidsdk-tools/sdklib/src/main/java/com/android/sdklib/internal -type d ! -name internal ! -name build` rm -fr androidsdk-tools/sdklib/src/main/java/com/android/sdklib/build rm -fr androidsdk-tools/sdklib/src/main/java/com/android/sdklib/internal/build # rm -fr `find androidsdk-tools -name ".*"` # this might be too strict in some later versions rm -fr androidsdk-tools/sdkmanager/.gitignore rm -fr androidsdk-tools/sdkmanager/libs/sdklib/.settings rm -fr androidsdk-tools/sdkmanager/libs/sdklib/.classpath rm -fr androidsdk-tools/sdkmanager/libs/sdklib/.project rm -fr androidsdk-tools/common/.classpath rm -fr androidsdk-tools/common/.project rm -fr androidsdk-tools/common/.settings rm -fr androidsdk-tools/common/.gitignore rm -fr androidsdk-tools/.gitignore find androidsdk-tools -type f -name *gradle* -delete echo "Packaging archive into ../android-sdk-tools_$REVISION+git$VERSION.orig.tar.xz ..." tar -cJf ../androidsdk-tools_$REVISION+git$VERSION.orig.tar.xz androidsdk-tools echo "Deleting folder 'androidsdk-tools'" rm -Ir androidsdk-tools debian/androidsdk-sdkstats.bnd0000644000000000000000000000022212177130266013634 0ustar Bundle-Name: Android sdkstats library Bundle-SymbolicName: com.android.sdkstats Bundle-Version: 1.0.0 Bundle-Vendor: Debian.org Import-Package: * debian/libandroidsdk-hierarchyviewerlib-java.install0000644000000000000000000000006112177130266020175 0ustar androidsdk-hierarchyviewerlib.jar usr/share/java debian/libandroidsdk-sdklib-java.install0000644000000000000000000000004612177130266015561 0ustar androidsdk-sdklib.jar usr/share/java/ debian/androidsdk-common.bnd0000644000000000000000000000022112177130266013263 0ustar Bundle-Name: Android SDK tools common library Bundle-SymbolicName: com.android Bundle-Version: 1.0.0 Bundle-Vendor: Debian.org Import-Package: * debian/libandroidsdk-swtmenubar-java.install0000644000000000000000000000005212177130266016475 0ustar androidsdk-swtmenubar.jar usr/share/java/ debian/androidsdk-ddms.manpages0000644000000000000000000000000712177130266013754 0ustar ddms.1 debian/androidsdk-hierarchyviewerlib.bnd0000644000000000000000000000024412177130266015667 0ustar Bundle-Name: Android Hierarchy Viewer library Bundle-SymbolicName: com.android.hierarchyviewerlib Bundle-Version: 1.0.0 Bundle-Vendor: Debian.org Import-Package: * debian/libandroidsdk-ddmlib-java.install0000644000000000000000000000004612177130266015544 0ustar androidsdk-ddmlib.jar usr/share/java/ debian/androidsdk-ddms.links0000644000000000000000000000007312177130266013304 0ustar usr/share/java/androidsdk-ddms.jar usr/share/java/ddms.jar debian/javabuild0000644000000000000000000000073512177130266011064 0ustar androidsdk-common.jar common/src androidsdk-sdklib.jar sdklib/src androidsdk-sdkstats.jar sdkstats/src androidsdk-swtmenubar.jar swtmenubar/src androidsdk-ddmlib.jar ddmlib/src androidsdk-ddmuilib.jar ddms/ddmuilib/src androidsdk-ddms.jar ddms/app/src androidsdk-hierarchyviewerlib.jar hierarchyviewer2/hierarchyviewer2lib/src androidsdk-hierarchyviewer.jar hierarchyviewer2/app/src androidsdk-traceview.jar traceview/src androidsdk-uiautomatorviewer.jar uiautomatorviewer/src debian/androidsdk-hierarchyviewer.manpages0000644000000000000000000000002212177130266016222 0ustar hierarchyviewer.1 debian/rules0000755000000000000000000000464712177130266010266 0ustar #!/usr/bin/make -f include /usr/share/cdbs/1/class/javahelper.mk export CLASSPATH := androidsdk-common.jar:androidsdk-ddmlib.jar:androidsdk-ddmuilib.jar:androidsdk-sdkstats.jar:androidsdk-swtmenubar.jar:androidsdk-hierarchyviewerlib.jar:/usr/share/java/swt.jar:/usr/share/java/jfreechart.jar:/usr/share/java/jfreechart-swt.jar:/usr/share/java/org.eclipse.jface.jar:/usr/share/java/org.eclipse.core.commands.jar:/usr/share/java/org.eclipse.equinox.common.jar:/usr/share/java/guava.jar:/usr/share/java/kxml2.jar POD2MAN := pod2man --center "Android SDK Tools" -r "Debian" common-post-build-indep:: for BNDFILE in debian/*.bnd; do \ JARNAME=`basename $$BNDFILE .bnd`.jar; \ bnd wrap -properties $$BNDFILE -output $$JARNAME $$JARNAME; \ done jar uf androidsdk-ddmuilib.jar -C ddms/ddmuilib/src/main/java images jar uf androidsdk-ddms.jar -C ddms/app/src/main/resources images jh_manifest -m com.android.ddms.Main androidsdk-ddms.jar jar uf androidsdk-hierarchyviewerlib.jar -C hierarchyviewer2/hierarchyviewer2lib/src/main/java images jh_manifest -m com.android.hierarchyviewer.HierarchyViewerApplication androidsdk-hierarchyviewer.jar jar uf androidsdk-traceview.jar -C traceview/src/main/resources icons jh_manifest -m com.android.traceview.MainWindow androidsdk-traceview.jar jar uf androidsdk-uiautomatorviewer.jar -C uiautomatorviewer/src/main/java images jh_manifest -m com.android.uiautomator.UiAutomatorViewer androidsdk-uiautomatorviewer.jar for man in debian/*.pod; do \ $(POD2MAN) -s 1 $$man $$(basename $$man .pod).1; \ done install/androidsdk-ddms:: mkdir -p debian/androidsdk-ddms/usr/share/icons/hicolor/128x128/apps cp ddms/app/src/main/resources/images/ddms-128.png \ debian/androidsdk-ddms/usr/share/icons/hicolor/128x128/apps/ddms.png install/androidsdk-hierarchyviewer:: mkdir -p debian/androidsdk-hierarchyviewer/usr/share/icons/hicolor/128x128/apps cp hierarchyviewer2/hierarchyviewer2lib/src/main/java/images/sdk-hierarchyviewer-128.png \ debian/androidsdk-hierarchyviewer/usr/share/icons/hicolor/128x128/apps/hierarchyviewer.png mkdir -p debian/androidsdk-hierarchyviewer/usr/share/icons/hicolor/16x16/apps cp hierarchyviewer2/hierarchyviewer2lib/src/main/java/images/sdk-hierarchyviewer-16.png \ debian/androidsdk-hierarchyviewer/usr/share/icons/hicolor/16x16/apps/hierarchyviewer.png chmod 644 debian/androidsdk-hierarchyviewer/usr/share/icons/hicolor/16x16/apps/hierarchyviewer.png clean:: rm -f *.1 debian/patches/0000755000000000000000000000000012177130266010622 5ustar debian/patches/fix-uiautomatorviewer-script-paths.patch0000644000000000000000000000361412177130266020645 0ustar From d44f46d96c291a106823c73164719c710ea3ab07 Mon Sep 17 00:00:00 2001 From: Jakub Adam Date: Mon, 31 Dec 2012 19:35:47 +0100 Subject: [PATCH] fix-uiautomatorviewer-script-paths.patch --- uiautomatorviewer/etc/uiautomatorviewer | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/uiautomatorviewer/etc/uiautomatorviewer b/uiautomatorviewer/etc/uiautomatorviewer index 79faf5a..43198a8 100755 --- a/uiautomatorviewer/etc/uiautomatorviewer +++ b/uiautomatorviewer/etc/uiautomatorviewer @@ -36,7 +36,7 @@ prog="${progdir}"/"${progname}" cd "${oldwd}" jarfile=uiautomatorviewer.jar -frameworkdir="$progdir" +frameworkdir="/usr/share/java" libdir="$progdir" if [ ! -r "$frameworkdir/$jarfile" ] then @@ -75,30 +75,4 @@ done jarpath="$frameworkdir/$jarfile" -# 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=`${javaCmd} -jar "${frameworkdir}"/archquery.jar` - if [ -n "$ANDROID_BUILD_TOP" ]; then - osname=`uname -s | tr A-Z a-z` - swtpath="${ANDROID_BUILD_TOP}/prebuilts/tools/${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 - exec "${javaCmd}" $javaOpts -Djava.ext.dirs="$frameworkdir" -Dcom.android.uiautomator.bindir="$progdir" -jar "$jarpath" "$@" -- 1.7.10.4 debian/patches/fix-traceview-script-paths.patch0000644000000000000000000000352012177130266017037 0ustar From a34f30a3a3eff137c0cc2d6ef16798dfbb4510ff Mon Sep 17 00:00:00 2001 From: Jakub Adam Date: Fri, 15 Mar 2013 12:29:29 +0100 Subject: [PATCH] fix-traceview-script-paths --- traceview/etc/traceview | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/traceview/etc/traceview b/traceview/etc/traceview index cd4a25f..5c73534 100755 --- a/traceview/etc/traceview +++ b/traceview/etc/traceview @@ -36,7 +36,7 @@ prog="${progdir}"/"${progname}" cd "${oldwd}" jarfile=traceview.jar -frameworkdir="$progdir" +frameworkdir="/usr/share/java" libdir="$progdir" if [ ! -r "$frameworkdir/$jarfile" ] then @@ -75,32 +75,6 @@ done jarpath="$frameworkdir/$jarfile" -# 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=`${javaCmd} -jar "${frameworkdir}"/archquery.jar` - if [ -n "$ANDROID_BUILD_TOP" ]; then - osname=`uname -s | tr A-Z a-z` - swtpath="${ANDROID_BUILD_TOP}/prebuilts/tools/${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 - if [ -x $progdir/monitor ]; then echo "The standalone version of traceview is deprecated." echo "Please use Android Device Monitor (tools/monitor) instead." -- 1.7.10.4 debian/patches/series0000644000000000000000000000021512177130266012035 0ustar fix-ddms-script-paths.patch fix-hierarchyviewer-script-paths.patch fix-traceview-script-paths.patch fix-uiautomatorviewer-script-paths.patch debian/patches/fix-hierarchyviewer-script-paths.patch0000644000000000000000000000420612177130266020250 0ustar From 465d2f18b59f855983b3c9259447c379d47d2a03 Mon Sep 17 00:00:00 2001 From: Jakub Adam Date: Fri, 15 Mar 2013 12:22:11 +0100 Subject: [PATCH] fix-hierarchyviewer-script-paths --- hierarchyviewer2/app/etc/hierarchyviewer | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/hierarchyviewer2/app/etc/hierarchyviewer b/hierarchyviewer2/app/etc/hierarchyviewer index a0cc5f9..76ff55f 100755 --- a/hierarchyviewer2/app/etc/hierarchyviewer +++ b/hierarchyviewer2/app/etc/hierarchyviewer @@ -35,7 +35,7 @@ prog="${progdir}"/`basename "${prog}"` cd "${oldwd}" jarfile=hierarchyviewer2.jar -frameworkdir="$progdir" +frameworkdir="/usr/share/java" libdir="$progdir" if [ ! -r "$frameworkdir/$jarfile" ] then @@ -78,29 +78,6 @@ fi jarpath="$frameworkdir/$jarfile:$frameworkdir/swtmenubar.jar" -# 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=`${javaCmd} -jar "${frameworkdir}"/archquery.jar` - if [ -n "$ANDROID_BUILD_TOP" ]; then - osname=`uname -s | tr A-Z a-z` - swtpath="${ANDROID_BUILD_TOP}/prebuilts/tools/${osname}-${vmarch}/swt" - else - swtpath="${frameworkdir}/${vmarch}" - fi -fi - -if [ ! -d "$swtpath" ]; then - 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 - if [ -x $progdir/monitor ]; then echo "The standalone version of hieararchyviewer is deprecated." echo "Please use Android Device Monitor (tools/monitor) instead." @@ -110,5 +87,5 @@ fi exec "$javaCmd" \ -Xmx512M $os_opts $java_debug \ -Dcom.android.hierarchyviewer.bindir="$progdir" \ - -classpath "$jarpath:$swtpath/swt.jar" \ + -classpath "$jarpath" \ com.android.hierarchyviewer.HierarchyViewerApplication "$@" -- 1.7.10.4 debian/patches/fix-ddms-script-paths.patch0000644000000000000000000000370412177130266016001 0ustar From 58bd8bf92acdb6538e5565cfdb14d9a3bf5d6ae4 Mon Sep 17 00:00:00 2001 From: Jakub Adam Date: Fri, 15 Mar 2013 12:11:29 +0100 Subject: [PATCH] fix-ddms-script-paths --- ddms/app/etc/ddms | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/ddms/app/etc/ddms b/ddms/app/etc/ddms index 79b93f9..b27b8d9 100755 --- a/ddms/app/etc/ddms +++ b/ddms/app/etc/ddms @@ -34,7 +34,7 @@ prog="${progdir}"/`basename "${prog}"` cd "${oldwd}" jarfile=ddms.jar -frameworkdir="$progdir" +frameworkdir="/usr/share/java" libdir="$progdir" if [ ! -r "$frameworkdir/$jarfile" ] then @@ -77,29 +77,6 @@ fi jarpath="$frameworkdir/$jarfile:$frameworkdir/swtmenubar.jar" -# 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=`${javaCmd} -jar "${frameworkdir}"/archquery.jar` - if [ -n "$ANDROID_BUILD_TOP" ]; then - osname=`uname -s | tr A-Z a-z` - swtpath="${ANDROID_BUILD_TOP}/prebuilts/tools/${osname}-${vmarch}/swt" - else - swtpath="${frameworkdir}/${vmarch}" - fi -fi - -if [ ! -d "$swtpath" ]; then - 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 - if [ -x $progdir/monitor ]; then echo "The standalone version of DDMS is deprecated." echo "Please use Android Device Monitor (tools/monitor) instead." @@ -107,5 +84,5 @@ fi exec "$javaCmd" \ -Xmx256M $os_opts $java_debug \ -Dcom.android.ddms.bindir="$progdir" \ - -classpath "$jarpath:$swtpath/swt.jar" \ + -classpath "$jarpath" \ com.android.ddms.Main "$@" -- 1.7.10.4 debian/androidsdk-ddmlib.bnd0000644000000000000000000000022312177130266013230 0ustar Bundle-Name: Dalvik Debug Monitor Server Bundle-SymbolicName: com.android.ddmlib Bundle-Version: 1.0.0 Bundle-Vendor: Debian.org Import-Package: * debian/androidsdk-ddmuilib.bnd0000644000000000000000000000024012177130266013565 0ustar Bundle-Name: Dalvik Debug Monitor Server UI library Bundle-SymbolicName: com.android.ddmuilib Bundle-Version: 1.0.0 Bundle-Vendor: Debian.org Import-Package: * debian/copyright0000644000000000000000000003277212216426762011144 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Development tools for the Android SDK Source: https://android.googlesource.com/platform/sdk Files: * Copyright: 2005-2013, The Android Open Source Project License: Apache-2.0 Files: swtmenubar/* Copyright: 2011-2012, The Android Open Source Project License: EPL-1.0 Files: debian/* Copyright: 2012, Stefan Handschuh 2012-2013, Jakub Adam License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA . On Debian systems, the full text of the GNU General Public License version 2 can be found in the file `/usr/share/common-licenses/GPL-2'. Files: debian/ddms.pod debian/hierarchyviewer.pod Copyright: 2013, www.linuxtopia.org 2013, Jakub Adam License: Apache-2.0 Files: debian/traceview.pod debian/uiautomatorviewer.pod Copyright: 2013, www.linuxtopia.org 2013, Jakub Adam License: Apache-2.0 License: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. . 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. . On Debian systems, the full text of the Apache License, Version 2.0 can be found in the file `/usr/share/common-licenses/Apache-2.0'. License: EPL-1.0 Eclipse Public License - v 1.0 . THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. . 1. DEFINITIONS . "Contribution" means: . a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and b) in the case of each subsequent Contributor: . i) changes to the Program, and . ii) additions to the Program; . where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. . "Contributor" means any person or entity that distributes the Program. . "Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. . "Program" means the Contributions distributed in accordance with this Agreement. . "Recipient" means anyone who receives the Program under this Agreement, including all Contributors. . 2. GRANT OF RIGHTS . a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. . b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. . c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. . d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. . 3. REQUIREMENTS . A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: . a) it complies with the terms and conditions of this Agreement; and . b) its license agreement: . i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; . ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; . iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and . iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. . When the Program is made available in source code form: . a) it must be made available under this Agreement; and . b) a copy of this Agreement must be included with each copy of the Program. . Contributors may not remove or alter any copyright notices contained within the Program. . Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. . 4. COMMERCIAL DISTRIBUTION . Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. . For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. . 5. NO WARRANTY . EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED 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. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. . 6. DISCLAIMER OF LIABILITY . EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. . 7. GENERAL . If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. . If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. . All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. . Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. . This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. debian/gbp.conf0000644000000000000000000000003112177130266010604 0ustar [DEFAULT] compression=xz debian/androidsdk-traceview.links0000644000000000000000000000010512177130266014342 0ustar usr/share/java/androidsdk-traceview.jar usr/share/java/traceview.jar debian/androidsdk-uiautomatorviewer.install0000644000000000000000000000014012177130266016471 0ustar androidsdk-uiautomatorviewer.jar usr/share/java uiautomatorviewer/etc/uiautomatorviewer usr/bin debian/ddms.pod0000644000000000000000000002653312177130266010637 0ustar =head1 NAME ddms - a graphical debugging tool for Android =head1 SYNOPSIS ddms =head1 DESCRIPTION Dalvik Debug Monitor Service (DDMS) provides port-forwarding services, screen capture on the device, thread and heap information on the device, logcat, process, and radio state information, incoming call and SMS spoofing, location data spoofing, and more. This page provides a modest discussion of DDMS features; it is not an exhaustive exploration of all the features and capabilities. DDMS will work with both the emulator and a connected device. If both are connected and running simultaneously, DDMS defaults to the emulator. =head2 How DDMS works DDMS acts as a middleman to connect the IDE to the applications running on the device. On Android, every application runs in its own process, each of which hosts its own virtual machine (VM). And each process listens for a debugger on a different port. When it starts, DDMS connects to adb and starts a device monitoring service between the two, which will notify DDMS when a device is connected or disconnected. When a device is connected, a VM monitoring service is created between adb and DDMS, which will notify DDMS when a VM on the device is started or terminated. Once a VM is running, DDMS retrieves the the VM's process ID (pid), via adb, and opens a connection to the VM's debugger, through the adb daemon (adbd) on the device. DDMS can now talk to the VM using a custom wire protocol. For each VM on the device, DDMS opens a port upon which it will listen for a debugger. For the first VM, DDMS listens for a debugger on port 8600, the next on 8601, and so on. When a debugger connects to one of these ports, all traffic is forwarded between the debugger and the associated VM. Debugging can then process like any remote debugging session. DDMS also opens another local port, the DDMS "base port" (8700, by default), upon which it also listens for a debugger. When a debugger connects to this base port, all traffic is forwarded to the VM currently selected in DDMS, so this is typically where you debugger should connect. Tip: You can set a number of DDMS preferences in File > Preferences. Preferences are saved to "$HOME/.ddmsrc". =head3 Known debugging issues with Dalvik Debugging an application in the Dalvik VM should work the same as it does in other VMs. However, when single-stepping out of synchronized code, the "current line" cursor may jump to the last line in the method for one step. =head2 Left Pane The left side of the Debug Monitor shows each emulator/device currently found, with a list of all the VMs currently running within each. VMs are identified by the package name of the application it hosts. Use this list to find and attach to the VM running the activity(ies) that you want to debug. Next to each VM in the list is a "debugger pass-through" port (in the right-most column). If you connect your debugger to one of the the ports listed, you will be connected to the corresponding VM on the device. However, when using DDMS, you need only connect to port 8700, as DDMS forwards all traffic here to the currently selected VM. (Notice, as you select a VM in the list, the listed port includes 8700.) This way, there's no need to reconfigure the debugger's port each time you switch between VMs. When an application running on the device calls waitForDebugger() (or you select this option in the developer options), a red icon will be shown next to the client name, while it waits for the debugger to attach to the VM. When a debugger is connected, the icon will turn green. If you see a crossed-out bug icon, this means that the DDMS was unable to complete a connection between the debugger and the VM because it was unable to open the VM's local port. If you see this for all VMs on the device, it is likely because you have another instance of DDMS running (this includes the Eclipse plugin). If you see a question mark in place of an application package, this means that, once DDMS received the application pid from adb, it somehow failed to make a successful handshake with the VM process. Try restarting DDMS. =head2 Right pane On the right side, the Debug Monitor provides tabs that display useful information and some useful tools. =head2 Info This view shows some general information about the selected VM, including the process ID, package name, and VM version. =head2 Threads The threads view has a list of threads running in the process of the target VM. To reduce the amount of data sent over the wire, the thread updates are only sent when explicitly enabled by toggling the "threads" button in the toolbar. This toggle is maintained per VM. This tab includes the following information: B a VM-assigned unique thread ID. In Dalvik, these are odd numbers starting from 3. B the Linux thread ID. For the main thread in a process, this will match the process ID. B the VM thread status. Daemon threads are shown with an asterisk (*). This will be one of the following: running - executing application code sleeping - called Thread.sleep() monitor - waiting to acquire a monitor lock wait - in Object.wait() native - executing native code vmwait - waiting on a VM resource zombie - thread is in the process of dying init - thread is initializing (you shouldn't see this) starting - thread is about to start (you shouldn't see this either) B cumulative time spent executing user code, in "jiffies" (usually 10ms). Only available under Linux. B cumulative time spent executing system code, in "jiffies" (usually 10ms). B the name of the thread "ID" and "Name" are set when the thread is started. The remaining fields are updated periodically (default is every 4 seconds). =head2 VM Heap Displays some heap stats, updated during garbage collection. If, when a VM is selected, the VM Heap view says that heap updates are not enabled, click the "Show heap updates" button, located in the top-left toolbar. Back in the VM Heap view, click Cause GC to perform garbage collection and update the heap stats. =head2 Allocation Tracker In this view, you can track the memory allocation of each virtual machine. With a VM selected in the left pane, click Start Tracking, then Get Allocations to view all allocations since tracking started. The table below will be filled with all the relevant data. Click it again to refresh the list. =head2 Emulator Control With these controls, you can simulate special device states and activities. Features include: B change the state of the phone's Voice and Data plans (home, roaming, searching, etc.), and simulate different kinds of network Speed and Latency (GPRS, EDGE, UTMS, etc.). B perform simulated phone calls and SMS messages to the emulator. B send mock location data to the emulator so that you can perform location-aware operations like GPS mapping. To use the Location Controls, launch your application in the Android emulator and open DDMS. Click the Emulator Controls tab and scroll down to Location Controls. From here, you can: =over 3 =item - Manually send individual longitude/latitude coordinates to the device. Click Manual, select the coordinate format, fill in the fields and click Send. =item - Use a GPX file describing a route for playback to the device. Click GPX and load the file. Once loaded, click the play button to playback the route for your location-aware application. When performing playback from GPX, you can adjust the speed of playback from the DDMS panel and control playback with the pause and skip buttons. DDMS will parse both the waypoints (, in the first table), and the tracks (, in the second table, with support for multiple segments, , although they are simply concatenated). Only the tracks can be played. Clicking a waypoint in the first list simply sends its coordinate to the device, while selecting a track lets you play it. =item - Use a KML file describing individual placemarks for sequenced playback to the device. Click KML and load the file. Once loaded, click the play button to send the coordinates to your location-aware application. When using a KML file, it is parsed for a element. The value of which should be a single set of longitude, latitude and altitude figures. For example: -122.084143,37.421972,4 In your file, you may include multiple elements, each containing a element. When you do so, the collection of placemarks will be added as tracks. DDMS will send one placemark per second to the device. B DDMS does not support routes created with the lat1, long1, lat2, long2, ... methods. There is also currently no support for the node inside the . Future releases may support timed placement and routes within a single coordinate element. =back =head2 File Explorer With the File Explorer, you can view the device file system and perform basic management, like pushing and pulling files. This circumvents using the adb push and pull commands, with a GUI experience. With DDMS open, select Device > File Explorer... to open the File Explorer window. You can drag-and-drop into the device directories, but cannot drag out of them. To copy files from the device, select the file and click the Pull File from Device button in the toolbar. To delete files, use the Delete button in the toolbar. If you're interested in using an SD card image on the emulator, you're still required to use the mksdcard command to create an image, and then mount it during emulator bootup. For example, from the /tools directory, execute: $ mksdcard 1024M ./img $ emulator -sdcard ./img Now, when the emulator is running, the DDMS File Explorer will be able to read and write to the sdcard directory. However, your files may not appear automatically. For example, if you add an MP3 file to the sdcard, the media player won't see them until you restart the emulator. (When restarting the emulator from command line, be sure to mount the sdcard again.) =head2 Screen Capture You can capture screen images on the device or emulator by selecting Device > Screen capture... in the menu bar, or press CTRL-S. =head2 Exploring Processes You can see the output of ps -x for a specific VM by selecting Device > Show process status... in the menu bar. =head2 Cause a GC to Occur Cause garbage collection to occury by pressing the trash can button on the toolbar. =head2 Running Dumpsys and Dumpstate on the Device (logcat) To run dumpsys (logcat) from Dalvik, select Device > Run logcat... in the menu bar. To run dumpstate from Dalvik, select Device > Dump device state... in the menu bar. =head2 Examine Radio State By default, radio state is not output during a standard logcat (it is a lot of information). To see radio information, either click Device > Dump radio state... or run logcat as described in Logging Radio Information. =head2 Stop a Virtual Machine You can stop a virtual machine by selecting Actions > Halt VM. Pressing this button causes the VM to call System.exit(1). =head1 KNOWN ISSUES If you connect and disconnect a debugger, ddms drops and reconnects the client so the VM realizes that the debugger has gone away. This will be fixed eventually. =head1 COPYRIGHT This manual page is licensed under the Apache License, Version 2.0. Copyright (C) 2013 www.linuxtopia.org Copyright (C) 2013 Jakub Adam debian/androidsdk-hierarchyviewer.install0000644000000000000000000000022512177130266016102 0ustar androidsdk-hierarchyviewer.jar usr/share/java hierarchyviewer2/app/etc/hierarchyviewer usr/bin debian/hierarchyviewer.desktop usr/share/applications debian/changelog0000644000000000000000000000065112216123205011034 0ustar androidsdk-tools (22.2+git20130830~92d25d6-1) unstable; urgency=low * New upstream release. * Remove non-ASCII characters from d/*.pod - fixes FTBFS with perl 5.18. -- Jakub Adam Sat, 07 Sep 2013 16:54:19 +0200 androidsdk-tools (22+git20130416~f55ffbb-1) unstable; urgency=low * Initial release (Closes: #687057). -- Jakub Adam Fri, 15 Mar 2013 08:08:59 +0100 debian/libandroidsdk-ddmuilib-java.install0000644000000000000000000000005012177130266016075 0ustar androidsdk-ddmuilib.jar usr/share/java/ debian/libandroidsdk-sdkstats-java.install0000644000000000000000000000005012177130266016144 0ustar androidsdk-sdkstats.jar usr/share/java/ debian/README.source0000644000000000000000000000175712177130266011364 0ustar The source code has been excerpted from the git repository https://android.googlesource.com/platform/sdk where the following files and directories have been deleted: - all directories except: - common - sdkmanager/libs/sdklib - sdkstats - swtmenubar - ddms - hierarchyviewer2 - traceview - uiautomatorviewer - common/src/test - sdkmanager/libs/sdklib/src/test - ddms/libs/ddmlib/src/test - ddms/libs/ddmuilib/tests - all directories/ files in sdkmanager/libs/sdklib/src/main/java/com/android/sdklib/ except - build - internal/build - util - SdkConstants.java - ISdkLog.java (we don't want to update the sdk through the android package system) - sdkmanager/libs/sdklib/src/main/java/com/android/sdklib/internal/build/MakeIdentity.java (this file contains a reference to a file for which I cannot find the sources) - all directories starting with '.' (except '.' itself) The script 'orig-tar.sh' can be used to generate the source archive. debian/androidsdk-hierarchyviewer.links0000644000000000000000000000012212177130266015550 0ustar usr/share/java/androidsdk-hierarchyviewer.jar usr/share/java/hierarchyviewer2.jar debian/androidsdk-uiautomatorviewer.manpages0000644000000000000000000000002412177130266016617 0ustar uiautomatorviewer.1