README.android
changeset 4967 f74a3f94c408
parent 4965 91d0085b7560
child 4973 067b6ec8b751
equal deleted inserted replaced
4966:a130bc2f0a18 4967:f74a3f94c408
     8 http://developer.android.com/sdk/index.html
     8 http://developer.android.com/sdk/index.html
     9 
     9 
    10 Android NDK r4 or later
    10 Android NDK r4 or later
    11 http://developer.android.com/sdk/ndk/index.html
    11 http://developer.android.com/sdk/ndk/index.html
    12 
    12 
       
    13 
    13 ================================================================================
    14 ================================================================================
    14  How the port works
    15  How the port works
    15 ================================================================================
    16 ================================================================================
    16 
    17 
    17 - Android applications are Java-based, optionally with parts written in C
    18 - Android applications are Java-based, optionally with parts written in C
    18 - As SDL apps are C-based, we use a small Java shim that uses JNI to talk to 
    19 - As SDL apps are C-based, we use a small Java shim that uses JNI to talk to 
    19 the SDL library
    20 the SDL library
    20 - This means that your application C code must be placed inside an android 
    21 - This means that your application C code must be placed inside an android 
    21 Java project, along with some C support code that communicates with Java
    22 Java project, along with some C support code that communicates with Java
    22 - This eventually produces a standard Android .apk package
    23 - This eventually produces a standard Android .apk package
       
    24 
       
    25 The Android Java code implements an "activity" and can be found in:
       
    26 android-project/src/org/libsdl/app/SDLActivity.java
       
    27 
       
    28 The Java code loads your game code, the SDL shared library, and
       
    29 dispatches to native functions implemented in the SDL library:
       
    30 src/SDL_android.cpp
       
    31 
       
    32 Your project must include some glue code that starts your main() routine:
       
    33 src/main/android/SDL_android_main.cpp
    23 
    34 
    24 
    35 
    25 ================================================================================
    36 ================================================================================
    26  Building an app
    37  Building an app
    27 ================================================================================
    38 ================================================================================
    46 	AndroidManifest.xml	- package manifest, do not modify
    57 	AndroidManifest.xml	- package manifest, do not modify
    47 	build.properties	- empty
    58 	build.properties	- empty
    48 	build.xml		- build description file, used by ant
    59 	build.xml		- build description file, used by ant
    49 	default.properties	- holds the ABI for the application, currently android-4 which corresponds to the Android 1.6 system image
    60 	default.properties	- holds the ABI for the application, currently android-4 which corresponds to the Android 1.6 system image
    50 	local.properties	- holds the SDK path, you should change this to the path to your SDK
    61 	local.properties	- holds the SDK path, you should change this to the path to your SDK
    51 	jni/			- directory holding native code and Android.mk
    62 	jni/			- directory holding native code
    52 	jni/Android.mk		- Android makefile that includes all subdirectories
    63 	jni/Android.mk		- Android makefile that includes all subdirectories
    53 	jni/SDL/		- directory holding the SDL library files
    64 	jni/SDL/		- directory holding the SDL library files
    54 	jni/SDL/Android.mk	- Android makefile for creating the SDL shared library
    65 	jni/SDL/Android.mk	- Android makefile for creating the SDL shared library
    55 	jni/src/		- directory holding your application source
    66 	jni/src/		- directory holding your C/C++ source
    56 	jni/src/Android.mk	- Android makefile that you should customize to include your source code and any library references
    67 	jni/src/Android.mk	- Android makefile that you should customize to include your source code and any library references
    57 	res/			- directory holding resources for your application
    68 	res/			- directory holding resources for your application
    58 	res/drawable-*		- directories holding icons for different phone hardware
    69 	res/drawable-*		- directories holding icons for different phone hardware
    59 	res/layout/main.xml	- place holder for the main screen layout, overridden by the SDL video output
    70 	res/layout/main.xml	- place holder for the main screen layout, overridden by the SDL video output
    60 	res/values/strings.xml	- strings used in your application, including the application name shown on the phone.
    71 	res/values/strings.xml	- strings used in your application, including the application name shown on the phone.