diff options
Diffstat (limited to 'examples/ex1_standalone_app/src/main')
3 files changed, 112 insertions, 0 deletions
diff --git a/examples/ex1_standalone_app/src/main/AndroidManifest.xml b/examples/ex1_standalone_app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..90ebdea --- /dev/null +++ b/examples/ex1_standalone_app/src/main/AndroidManifest.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest + xmlns:android="http://schemas.android.com/apk/res/android" + package="com.google.android.mobly.snippet.example1"> + + <application android:allowBackup="false"> + <!-- Required: list of all classes with @Rpc methods. --> + <meta-data + android:name="mobly-snippets" + android:value="com.google.android.mobly.snippet.example1.ExampleSnippet, + com.google.android.mobly.snippet.example1.ExampleSnippet2" /> + + <!-- Optional: tag which will be used for logs through the snippet lib's logger. + If specified, log lines will look like this: + MoblySnippetLibExample1.JsonRpcServer:84: Got shutdown signal + + If not specified, log lines will look like this + com.google.android.mobly.snippet.example1.JsonRpcServer:84: Got shutdown signal --> + <meta-data + android:name="mobly-log-tag" + android:value="MoblySnippetLibExample1" /> + </application> + + <instrumentation + android:name="com.google.android.mobly.snippet.SnippetRunner" + android:targetPackage="com.google.android.mobly.snippet.example1" /> +</manifest> diff --git a/examples/ex1_standalone_app/src/main/java/com/google/android/mobly/snippet/example1/ExampleSnippet.java b/examples/ex1_standalone_app/src/main/java/com/google/android/mobly/snippet/example1/ExampleSnippet.java new file mode 100644 index 0000000..46c55ba --- /dev/null +++ b/examples/ex1_standalone_app/src/main/java/com/google/android/mobly/snippet/example1/ExampleSnippet.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2016 Google Inc. + * + * 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. + */ + +package com.google.android.mobly.snippet.example1; + +import com.google.android.mobly.snippet.Snippet; +import com.google.android.mobly.snippet.rpc.Rpc; + +public class ExampleSnippet implements Snippet { + @Rpc(description = "Returns the given integer with the prefix \"foo\"") + public String getFoo(Integer input) { + return "foo " + input; + } + + @Override + public void shutdown() {} +} diff --git a/examples/ex1_standalone_app/src/main/java/com/google/android/mobly/snippet/example1/ExampleSnippet2.java b/examples/ex1_standalone_app/src/main/java/com/google/android/mobly/snippet/example1/ExampleSnippet2.java new file mode 100644 index 0000000..61c3e0a --- /dev/null +++ b/examples/ex1_standalone_app/src/main/java/com/google/android/mobly/snippet/example1/ExampleSnippet2.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2016 Google Inc. + * + * 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. + */ + +package com.google.android.mobly.snippet.example1; + +import com.google.android.mobly.snippet.Snippet; +import com.google.android.mobly.snippet.rpc.Rpc; + +import com.google.android.mobly.snippet.rpc.RunOnUiThread; + +import org.json.JSONArray; + +import java.io.IOException; + +public class ExampleSnippet2 implements Snippet { + @Rpc(description = "Returns the given string with the prefix \"bar\"") + public String getBar(String input) { + return "bar " + input; + } + + @Rpc(description = "Returns the given JSON array with the prefix \"bar\"") + public String getJSONArray(JSONArray input) { + return "bar " + input; + } + + @Rpc(description = "Throws an exception") + public String throwSomething() throws IOException { + throw new IOException("Example exception from throwSomething()"); + } + + @Rpc(description = "Throws an exception from the main thread") + // @RunOnUiThread makes this method execute on the main thread, but only has effect when + // invoked as an RPC. It does not affect how this method executes if invoked directly in Java. + // This annotation can also be applied to the constructor and the shutdown() method. + @RunOnUiThread + public String throwSomethingFromMainThread() throws IOException { + throw new IOException("Example exception from throwSomethingFromMainThread()"); + } + + @Override + public void shutdown() {} +} |