Resource filters are used when generating additional APK containing only
specific resources.
The previous UI allowed for any type of filters, but we are moving to a
simpler way with fixed filters.
The first one is the density. Selecting the filter will generate 4 APKs per
application: default (all resources), hdpi (only hdpi/nodpi and default
resources), mdpi, ldpi.
application-package to application.package
sdk-location to sdk.dir
android-jar to android.jar
android-aidl to android.aidl
in order to make their names compliant with the ant standards and rest
of the property names.
Properties names in alias rules deliberately ommited in this CL.
Some minor style changes introduced.
Renamed the getenv and added one for user sources.
Added a (naive) check to prevent duplicate URLs.
Also fixed the repositoy.xml download error message, it was not displaying the reason of failure correctly.
java.util.Properties#setProperty() doesn't like it when the value is null
which was the case when a package had no license.
Made sure it won't happen on other properties than the license as well.
Also improved error display when an unexpected Throwable is thrown during
install (Stack Call is now display if the Throwable has no message).
BUG:2037085
When the SDK installer unarchives the zip files, it is important to keep
the permissions for executable (Linux/MacOS) or the tools required to
build applications (aapt, aidl, ...) won't work.
Since java.util.zip does not provide support for permissions, we now
use the Apache Commons Compress component that allows us to read the
permission from the archive.
Platform, add-on and doc packages used to use Api Level to figure out
upgrade logic. This is replaced by AndroidVersion to properly handle
codename versions.
ro.build.version.codename is a new property indicating whether a platform
is in its release form (value = REL) or in development (value = dev branch
name such as Donut). When the codename indicates a development/preview version
then the API level must be ignored and this codename is used as a unique
identifier of the platform.
IAndroidTarget has been changed to return an instance of a new class
AndroidVersion instead of the api level directly. This class helps deals with
the logic of comparing version from targets or devices.
This change impacts all of the sdk manager to deal with targets identified by
codename instead of api level. This in turn impacts everything that relies
on the sdkmanager: ADT (build, launch, project creation), the AVD manager,
the SDK updater.