blob: fa462bd6e7832d99106c71db2d20d2a1def17c12 [file] [log] [blame]
/*
* Copyright (C) 2008 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.sdklib;
/**
* A version of Android that application can target when building.
*/
public interface IAndroidTarget extends Comparable<IAndroidTarget> {
/** OS Path to the "android.jar" file. */
public static int ANDROID_JAR = 1;
/** OS Path to the "framework.aidl" file. */
public static int ANDROID_AIDL = 2;
/** OS Path to "images" folder which contains the emulator system images. */
public static int IMAGES = 3;
/** OS Path to the "samples" folder which contains sample projects. */
public static int SAMPLES = 4;
/** OS Path to the "skins" folder which contains the emulator skins. */
public static int SKINS = 5;
/** OS Path to the "templates" folder which contains the templates for new projects. */
public static int TEMPLATES = 6;
/** OS Path to the "data" folder which contains data & libraries for the SDK tools. */
public static int DATA = 7;
/** OS Path to the "attrs.xml" file. */
public static int ATTRIBUTES = 8;
/** OS Path to the "attrs_manifest.xml" file. */
public static int MANIFEST_ATTRIBUTES = 9;
/** OS Path to the "data/layoutlib.jar" library. */
public static int LAYOUT_LIB = 10;
/** OS Path to the "data/res" folder. */
public static int RESOURCES = 11;
/** OS Path to the "data/fonts" folder. */
public static int FONTS = 12;
/** OS Path to the "data/widgets.txt" file. */
public static int WIDGETS = 13;
/** OS Path to the "data/activity_actions.txt" file. */
public static int ACTIONS_ACTIVITY = 14;
/** OS Path to the "data/broadcast_actions.txt" file. */
public static int ACTIONS_BROADCAST = 15;
/** OS Path to the "data/service_actions.txt" file. */
public static int ACTIONS_SERVICE = 16;
/** OS Path to the "data/categories.txt" file. */
public static int CATEGORIES = 17;
/** OS Path to the "sources" folder. */
public static int SOURCES = 18;
/** OS Path to the target specific docs */
public static int DOCS = 19;
/** OS Path to the target's version of the aapt tool. */
public static int AAPT = 20;
/** OS Path to the target's version of the aidl tool. */
public static int AIDL = 21;
/** OS Path to the target's version of the dx too. */
public static int DX = 22;
/** OS Path to the target's version of the dx.jar file. */
public static int DX_JAR = 23;
public interface IOptionalLibrary {
String getName();
String getJarName();
String getJarPath();
String getDescription();
}
/**
* Returns the target location.
*/
String getLocation();
/**
* Returns the name of the vendor of the target.
*/
String getVendor();
/**
* Returns the name of the target.
*/
String getName();
/**
* Returns the full name of the target, possibly including vendor name.
*/
String getFullName();
/**
* Returns the description of the target.
*/
String getDescription();
/**
* Returns the api version as an integer.
*/
int getApiVersionNumber();
/**
* Returns the platform version as a readable string.
*/
String getApiVersionName();
/**
* Returns true if the target is a standard Android platform.
*/
boolean isPlatform();
/**
* Returns the parent target. This is likely to only be non <code>null</code> if
* {@link #isPlatform()} returns <code>false</code>
*/
IAndroidTarget getParent();
/**
* Returns the path of a platform component.
* @param pathId the id representing the path to return. Any of the constants defined in the
* {@link IAndroidTarget} interface can be used.
*/
String getPath(int pathId);
/**
* Returns the available skins for this target.
*/
String[] getSkins();
/**
* Returns the default skin for this target.
*/
String getDefaultSkin();
/**
* Returns the available optional libraries for this target.
* @return an array of optional libraries or <code>null</code> if there is none.
*/
IOptionalLibrary[] getOptionalLibraries();
/**
* Returns whether the given target is compatible with the receiver.
* <p/>A target is considered compatible if applications developed for the receiver can run on
* the given target.
*
* @param target the IAndroidTarget to test.
*/
boolean isCompatibleBaseFor(IAndroidTarget target);
/**
* Returns a string able to uniquely identify a target.
* Typically the target will encode information such as api level, whether it's a platform
* or add-on, and if it's an add-on vendor and add-on name.
*/
String hashString();
}