cmsdk: Ensure CMHW feature constants aren't optimized out

 * The preferences constraints system uses reflection to look up
   fields via strings, we need to ensure they are not optimized
   out by Proguard. Alternatively we can manually enumerate them,
   but it's yet another list of constants to maintain. We should
   have used a proper enumeration to begin with, but so it goes.
 * The @VisibleForTesting annotation is honored by the platform for
   ensuring that Proguard doesn't stomp fields. The support library
   has an @Keep annotation, but it's only supported by Gradle. If
   it becomes supported by the platform in the future, switch to
   it instead.
 * Also add tests for all of this.

Change-Id: I9f324e003e2a9de5604085b978d5f95bdd098d32
2 files changed
tree: 4342298cd62cd015dfb34f2a40e0244029284259
  1. api/
  2. cm/
  3. host/
  4. packages/
  5. samples/
  6. sdk/
  7. tests/
  8. .gitignore
  9. Android.mk
  10. CleanSpec.mk
  11. org.cyanogenmod.platform.xml
  12. README.md
README.md

CyanogenMod Platform SDK

The Platform SDK provides a set of APIs that give you easy access to a variety of different features within CyanogenMod. The SDK exposes APIs and system level framework access in the Android framework that aren't available in any other distribution.

Setup

You can either download from prebuilts hosted on github or pull directly via Gradle.

Building against release artifacts

Our stable releases are mirrored in Maven Central, and you can fetch the current release by setting your build.gradle dependencies to

dependencies {
    compile 'org.cyanogenmod:platform.sdk:5.+'
}

Building against development snapshots

Within build.gradle make sure your repositories list sonatype OSS repos for snapshots

repositories {
    maven {
        url "https://oss.sonatype.org/content/repositories/snapshots/"
    }
}

You can target the future or development branch by setting your dependencies for 6.0-SNAPSHOT

dependencies {
    compile 'org.cyanogenmod:platform.sdk:6.0-SNAPSHOT'
}

WIKI

For further inquiries regarding this project, please reference the wiki.