diff --git a/Android.mk b/Android.mk index 4c90ecee68553..55748862bc26a 100644 --- a/Android.mk +++ b/Android.mk @@ -355,6 +355,8 @@ framework_docs_LOCAL_ADDITIONAL_JAVA_DIR:=$(call intermediates-dir-for,JAVA_LIBR sample_dir := development/samples +# the list here should match the list of samples included in the sdk samples package +# (see development/build/sdk.atree) web_docs_sample_code_flags := \ -hdf android.hasSamples 1 \ -samplecode $(sample_dir)/ApiDemos \ @@ -365,6 +367,8 @@ web_docs_sample_code_flags := \ resources/samples/BusinessCard "Business Card" \ -samplecode $(sample_dir)/ContactManager \ resources/samples/ContactManager "Contact Manager" \ + -samplecode $(sample_dir)/CubeLiveWallpaper \ + resources/samples/CubeLiveWallpaper "Live Wallpaper" \ -samplecode $(sample_dir)/Home \ resources/samples/Home "Home" \ -samplecode $(sample_dir)/JetBoy \ @@ -375,6 +379,8 @@ web_docs_sample_code_flags := \ resources/samples/MultiResolution "Multiple Resolutions" \ -samplecode $(sample_dir)/NotePad \ resources/samples/NotePad "Note Pad" \ + -samplecode $(sample_dir)/SampleSyncAdapter \ + resources/samples/SampleSyncAdapter "Sample Sync Adapter" \ -samplecode $(sample_dir)/SearchableDictionary \ resources/samples/SearchableDictionary "Searchable Dictionary" \ -samplecode $(sample_dir)/Snake \ diff --git a/docs/html/resources/articles/images/live_wallpapers_small.png b/docs/html/resources/articles/images/live_wallpapers_small.png new file mode 100644 index 0000000000000..3b49b2427005c Binary files /dev/null and b/docs/html/resources/articles/images/live_wallpapers_small.png differ diff --git a/docs/html/resources/articles/index.jd b/docs/html/resources/articles/index.jd index 4fda6d739b6a5..d2f09961419da 100644 --- a/docs/html/resources/articles/index.jd +++ b/docs/html/resources/articles/index.jd @@ -76,6 +76,11 @@ page.title=Technical Articles
Starting with Android 2.1 (API Level 7), users can now enjoy live +wallpapers — richer, animated, interactive backgrounds — on +their home screens. A live wallpaper is very similar to a normal Android +application and has access to all the facilities of the platform: SGL (2D +drawing), OpenGL (3D drawing), GPS, accelerometers, network access, etc. The +live wallpapers included on Nexus One demonstrate the use of some of these APIs +to create fun and interesting user experiences. For instance, the Grass +wallpaper uses the phone's location to compute sunrise and sunset times in order +to display the appropriate sky.
+ +
+
+Creating your own live wallpaper is easy, especially if you have had
+previous experience with SurfaceView or Canvas.
+To learn how to create a live wallpaper, you should check out the CubeLiveWallpaper sample code.
In terms of implementation, a live wallpaper is very similar to a regular
+Android service. The
+only difference is the addition of a new method, onCreateEngine(), whose goal is to create a
+WallpaperService.Engine. The engine is responsible for
+handling the lifecycle and drawing of a wallpaper. The system provides a surface
+on which you can draw, just like you would with a SurfaceView.
+Drawing a wallpaper can be very expensive so you should optimize your code
+as much as possible to avoid using too much CPU, not only for battery life
+but also to avoid slowing down the rest of the system. That is also why the
+most important part of the lifecycle of a wallpaper is when it becomes invisible.
+When invisible, such as when the user launches an application that covers
+the home screen, a wallpaper must stop all activity.
The engine can also implement several methods to interact with the user
+or the home application. For instance, if you want your wallpaper to scroll
+along when the user swipes from one home screen to another, you can use onOffsetsChanged().
+To react to touch events, simply implement onTouchEvent(MotionEvent).
+Finally, applications can send arbitrary commands to the live wallpaper.
+Currently, only the standard home application sends commands to the onCommand()
+method of the live wallpaper:
android.wallpaper.tap: When the user taps an empty space
+on the workspace. This command is interpreted by the Nexus and Water live
+wallpapers to make the wallpaper react to user interaction. For instance,
+if you tap an empty space on the Water live wallpaper, new ripples appear
+under your finger.android.home.drop: When the user drops an icon or a widget
+on the workspace. This command is also interpreted by the Nexus and Water
+live wallpapers.If you are developing a live wallpaper, remember that the feature is +supported only on Android 2.1 (API level 7) and higher versions of the platform. +To ensure that your application can only be installed on devices that support +live wallpapers, remember to add the following to the application's manifest +before publishing to Android Market:
+ +<uses-sdk android:minSdkVersion="7" />, which indicates
+to Android Market and the platform that your application requires Android 2.1 or
+higher. For more information, see the API
+Levels and the documentation for the
+<uses-sdk>
+element.<uses-feature android:name="android.software.live_wallpaper" />,
+which tells Android Market that your application includes a live wallpaper
+Android Market uses this feature as a filter, when presenting users lists of
+available applications. When you declaring this feature, Android Market
+displays your application only to users whose devices support live wallpapers,
+while hiding it from other devices on which it would not be able to run. For
+more information, see the documentation for the
+<uses-feature>
+element.Many great live wallpapers are already available on Android Market and +we can't wait to see more!
diff --git a/docs/html/resources/resources_toc.cs b/docs/html/resources/resources_toc.cs index e337e385b9a42..097202924d35f 100644 --- a/docs/html/resources/resources_toc.cs +++ b/docs/html/resources/resources_toc.cs @@ -83,6 +83,9 @@Some of the samples in this listing are not yet available in the - SDK. While we work to update the SDK, you can - download the latest samples as a ZIP - archive.
+Some of the samples in this listing may not yet be available in the + SDK. To ensure that you have the latest versions of the samples, you can + download the samples pack + as a .zip archive.