diff options
Diffstat (limited to 'support/android/apk')
-rw-r--r-- | support/android/apk/AndroidManifest.xml | 27 | ||||
-rw-r--r-- | support/android/apk/build.xml | 92 | ||||
-rw-r--r-- | support/android/apk/jni/Android.mk | 22 | ||||
-rw-r--r-- | support/android/apk/jni/Application.mk | 2 | ||||
-rw-r--r-- | support/android/apk/jni/main.c | 58 | ||||
-rw-r--r-- | support/android/apk/project.properties | 1 | ||||
-rw-r--r-- | support/android/apk/res/mipmap/servo.png | bin | 0 -> 521100 bytes | |||
-rw-r--r-- | support/android/apk/src/com/mozilla/servo/MainActivity.java | 8 |
8 files changed, 210 insertions, 0 deletions
diff --git a/support/android/apk/AndroidManifest.xml b/support/android/apk/AndroidManifest.xml new file mode 100644 index 00000000000..5f3a9e1ea5e --- /dev/null +++ b/support/android/apk/AndroidManifest.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- BEGIN_INCLUDE(manifest) --> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.mozilla.servo" + android:versionCode="1" + android:versionName="1.0"> + + <uses-sdk android:minSdkVersion="18" /> + + <uses-feature android:glEsVersion="0x00020000" android:required="true"></uses-feature> + <uses-permission android:name="android.permission.INTERNET" /> + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> + + <application android:label="Servo" android:icon="@mipmap/servo"> + <activity android:name="com.mozilla.servo.MainActivity" + android:label="Servo" + android:configChanges="orientation|keyboardHidden"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> +<!-- END_INCLUDE(manifest) --> diff --git a/support/android/apk/build.xml b/support/android/apk/build.xml new file mode 100644 index 00000000000..3d1611517a8 --- /dev/null +++ b/support/android/apk/build.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="Servo" default="help"> + + <!-- The local.properties file is created and updated by the 'android' tool. + It contains the path to the SDK. It should *NOT* be checked into + Version Control Systems. --> + <property file="local.properties" /> + + <!-- The ant.properties file can be created by you. It is only edited by the + 'android' tool to add properties to it. + This is the place to change some Ant specific build properties. + Here are some properties you may want to change/update: + + source.dir + The name of the source directory. Default is 'src'. + out.dir + The name of the output directory. Default is 'bin'. + + For other overridable properties, look at the beginning of the rules + files in the SDK, at tools/ant/build.xml + + Properties related to the SDK location or the project target should + be updated using the 'android' tool with the 'update' action. + + This file is an integral part of the build system for your + application and should be checked into Version Control Systems. + + --> + <property file="ant.properties" /> + + <!-- if sdk.dir was not set from one of the property file, then + get it from the ANDROID_HOME env var. + This must be done before we load project.properties since + the proguard config can use sdk.dir --> + <property environment="env" /> + <condition property="sdk.dir" value="${env.ANDROID_HOME}"> + <isset property="env.ANDROID_HOME" /> + </condition> + + <!-- The project.properties file is created and updated by the 'android' + tool, as well as ADT. + + This contains project specific properties such as project target, and library + dependencies. Lower level build properties are stored in ant.properties + (or in .classpath for Eclipse projects). + + This file is an integral part of the build system for your + application and should be checked into Version Control Systems. --> + <loadproperties srcFile="project.properties" /> + + <!-- quick check on sdk.dir --> + <fail + message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable." + unless="sdk.dir" + /> + + <!-- + Import per project custom build rules if present at the root of the project. + This is the place to put custom intermediary targets such as: + -pre-build + -pre-compile + -post-compile (This is typically used for code obfuscation. + Compiled code location: ${out.classes.absolute.dir} + If this is not done in place, override ${out.dex.input.absolute.dir}) + -post-package + -post-build + -pre-clean + --> + <import file="custom_rules.xml" optional="true" /> + + <!-- Import the actual build file. + + To customize existing targets, there are two options: + - Customize only one target: + - copy/paste the target into this file, *before* the + <import> task. + - customize it to your needs. + - Customize the whole content of build.xml + - copy/paste the content of the rules files (minus the top node) + into this file, replacing the <import> task. + - customize to your needs. + + *********************** + ****** IMPORTANT ****** + *********************** + In all cases you must update the value of version-tag below to read 'custom' instead of an integer, + in order to avoid having your file be overridden by tools such as "android update project" + --> + <!-- version-tag: 1 --> + <import file="${sdk.dir}/tools/ant/build.xml" /> + +</project> diff --git a/support/android/apk/jni/Android.mk b/support/android/apk/jni/Android.mk new file mode 100644 index 00000000000..d922b052b4e --- /dev/null +++ b/support/android/apk/jni/Android.mk @@ -0,0 +1,22 @@ +# Copyright (C) 2010 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE := servo +LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libmain.so +include $(PREBUILT_SHARED_LIBRARY) + +# $(call import-module) diff --git a/support/android/apk/jni/Application.mk b/support/android/apk/jni/Application.mk new file mode 100644 index 00000000000..3784f3fc6c5 --- /dev/null +++ b/support/android/apk/jni/Application.mk @@ -0,0 +1,2 @@ +APP_ABI := armeabi +APP_PLATFORM := android-18 diff --git a/support/android/apk/jni/main.c b/support/android/apk/jni/main.c new file mode 100644 index 00000000000..beddf906059 --- /dev/null +++ b/support/android/apk/jni/main.c @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +//BEGIN_INCLUDE(all) +#include <jni.h> +#include <errno.h> +#include <dlfcn.h> +#include <stdlib.h> + +#include <android/log.h> +#include <android_native_app_glue.h> + +#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "servo-wrapper", __VA_ARGS__)) +#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "servo-wrapper", __VA_ARGS__)) + +/** + * This is the main entry point of a native application that is using + * android_native_app_glue. It runs in its own thread, with its own + * event loop for receiving input events and doing other things. + */ +void android_main(struct android_app* state) { + LOGI("in android_main"); + void* libservo = dlopen("libservo.so", RTLD_NOW); + if (libservo == NULL) { + LOGI("failed to load servo lib: %s", dlerror()); + return; + } + + LOGI("loaded libservo.so"); + void (*android_main)(struct android_app*); + *(void**)(&android_main) = dlsym(libservo, "android_main"); + if (android_main) { + LOGI("go into android_main()"); + (*android_main)(state); + return; + } +} +//END_INCLUDE(all) + +int main(int argc, char* argv[]) +{ + LOGI("WAT"); + return 0; +} diff --git a/support/android/apk/project.properties b/support/android/apk/project.properties new file mode 100644 index 00000000000..c0442c37105 --- /dev/null +++ b/support/android/apk/project.properties @@ -0,0 +1 @@ +target=android-18 diff --git a/support/android/apk/res/mipmap/servo.png b/support/android/apk/res/mipmap/servo.png Binary files differnew file mode 100644 index 00000000000..5d5ef43bbc2 --- /dev/null +++ b/support/android/apk/res/mipmap/servo.png diff --git a/support/android/apk/src/com/mozilla/servo/MainActivity.java b/support/android/apk/src/com/mozilla/servo/MainActivity.java new file mode 100644 index 00000000000..d99478ee3da --- /dev/null +++ b/support/android/apk/src/com/mozilla/servo/MainActivity.java @@ -0,0 +1,8 @@ +package com.mozilla.servo; +import android.util.Log; + +public class MainActivity extends android.app.NativeActivity { + static { + Log.i("servo_wrapper", "Loading the NativeActivity"); + } +} |