# SDK Add-on Manifest
# File encoding is UTF-8

# Name and vendor of the add-on.
# Add-ons are uniquely identified by a string composed of name, vendor and api.
# 2 add-ons with the same identifier cannot be installed in the same SDK
# and only the add-on with the highest rev number will be installed.
# Name and vendor are used to create folder names, so they shouldn't contain
# any special characters. Also, the character ':' is forbidden.
# Mandatory character set: a-z A-Z 0-9 _.-
name=Sample Add-On
vendor=Android Open Source Project
description=sample add-on

# version of the Android platform on which this add-on is built.
api=3

# revision of the add-on. This must be a strict integer.
revision=1

# list of libraries, separated by a semi-colon.
# This must be the name of the libraries, as required by the
# <uses-library> node in the AndroidManifest.xml file.
libraries=com.example.android.platform_library

# details for each library. format is:
# <library.name>=<name>.jar;<desc>
# where
# <library.name>: the name of the library defined in the property "libraries" above.
# <name>.jar: the jar file containing the library API. This is to be located in
#             the add-on folder in libs/
com.example.android.platform_library=platform_library.jar;Sample optional plaform library

# default skin name. Optional. Only useful if the add-on has its own skin, or
# if it wishes to override the default skin of the base platform.
# This should be the name of the skin in the skins/ folder of the add-on.
skin=WVGAMedDpi

# USB Vendor ID
# This 16-bit integer allows adb to detect new devices, by extending the list
# of USB Vendor IDs it knows. After installing an add-on the command
# 'android update' adb' must be run to update a file that adb reads during
# start-up.
#usb-vendor=0x0000
