From http://www.jwz.org/xscreensaver/xscreensaver-5.33.tar.gz
[xscreensaver] / android / README
1
2 This directory contains the Android-specific code for building xscreensaver.
3
4 It is preliminary, and very much a work in progress.
5
6 If you're messing with this, please let us know!
7
8         dennis@panaceasupplies.com
9         jwz@jwz.org
10
11
12 To build:
13
14     Install JDK 7 (http://www.oracle.com/technetwork/java/javase/downloads/)
15     Install Android Studio (http://developer.android.com/sdk/)
16     Install Android NDK (http://developer.android.com/ndk/downloads)
17       Rename or link the "android-ndk-*" directory to "ndk" inside your
18       $ANDROID_HOME (the "sdk/" directory that is the parent of
19       "build-tools/", etc.)  That is, it should be "sdk/ndk/".
20
21     set $ANDROID_HOME to where your SDK is installed, or
22     set "sdk.dir" in project/local.properties.
23     On MacOS, the value you want is probably ~/Library/Android/sdk/
24     Also set "ndk.dir" in project/local.properties.
25
26     cd android
27     make
28
29     If it fails, try a "make clean" and then try make again.
30     Make sure you have the needed Android SDK platform versions installed.
31
32     Hopefully an "xscreensaver-debug.apk" file will appear in
33     android/project/xscreensaver/build/outputs/apk/.
34
35     Load that onto your device and go to:
36       Settings / Display / Wallpaper / Live Wallpapers.
37
38     To launch the emulator:
39       $ANDROID_HOME/sdk/tools/emulator -avd Nexus_5_API_21_x86
40
41     To load it into the currently-running emulator:
42       $ANDROID_HOME/platform-tools/adb install -r \
43         project/xscreensaver/build/outputs/apk/xscreensaver-debug.apk
44
45
46 The files in these subdirectories are source code, more or less:
47
48         project/xscreensaver/*.xml
49         project/xscreensaver/src/org/jwz/xscreensaver/
50         project/GLWallpaperService/ (a third-party library, unchanged)
51
52 These directories are boilerplate for Android apps:
53
54         project/xscreensaver/res/layout/
55         project/xscreensaver/res/values/
56         project/xscreensaver/res/xml/
57         project/xscreensaver/res/drawable-ldpi/
58         project/xscreensaver/res/drawable-mdpi/
59         project/xscreensaver/res/drawable-hdpi/
60         project/xscreensaver/res/drawable/thumbnail.png
61
62 These are files that we generate:
63
64         project/xscreensaver/src/org/jwz/xscreensaver/gen/
65
66 These too (intermediate build files):
67
68         .gradle/
69         gen/
70         project/GLWallpaperService/build/
71         project/build/
72         project/xscreensaver/build/
73         project/xscreensaver/libs/
74         project/xscreensaver/obj/
75         project/xscreensaver/res/xml/
76
77 These are files that we *will* generate but don't yet:
78
79         project/xscreensaver/res/drawable/*.png
80         XScreenSaverView.c
81
82 When adding a new hack, edit:
83
84         project/xscreensaver/jni/Android.mk
85         project/xscreensaver/build.gradle
86         generate_files.pl