The Android SDK ships with a tool called the SDK Manager, which can be used to install both first- and third- party add-ons and "extras". By integrating into this mechanism, it becomes easy for developers to check for updates. This guide shows how to install the Cydia Substrate SDK using this system.
First, open the SDK manager. You can either do this directly from Eclipse (Window » Android SDK Manager), or you can run the
android tool directly from the command line.
Tools » Manage Add-on Sites...
User Defined Sites
Extras » Cydia Substrate API »
Install 1 package...
The primary benefit of the SDK Manager is that it allows developers working with many SDKs to find out about and download any available upgrades from a single interface.
However, the SDK Manager is buggy, or might not support your platform; you might even simply hate it: that's OK (I do, too).
The Substrate SDK will be installed to extras/saurikit/cydia_substrate in your Android SDK folder. It contains these files:
substrate.h: This header file contains prototypes for the native Substrate API.
lib/*/libsubstrate*.so: Native libraries you would link against to use Substrate API.
substrate-api.jar: Include this jar with your project (yes: throw it right in and let it get included as part of your distributed APK).
substrate-bless.jar: AspectJ hack to javac that makes it easier to work with private members. See also: Java Access Control.
aspectjweaver.jar: AspectJ itself. This is sadly most of the size of the SDK (doh! ;P).
Sometimes, the Android SDK Manager refuses to see new packages or updates. This seems to be due to faulty caching logic. Sadly, even setting the most restrictive possible "do not cache this" headers does not keep the SDK Manager from using old files. Thankfully, there is a high-level feature for clearing the cache.
Android SDK Manager » Preferences...
Subsequent requests for package manifest files should go through to the server, and you should get the latest version.