]> sigrok.org Git - pulseview.git/commitdiff
Added files for building Android APK
authorMarcus Comstedt <redacted>
Wed, 16 Jul 2014 14:56:43 +0000 (16:56 +0200)
committerUwe Hermann <redacted>
Tue, 26 Aug 2014 20:45:41 +0000 (22:45 +0200)
android/.gitignore [new file with mode: 0644]
android/AndroidManifest.xml [new file with mode: 0644]
android/bundled_libs.xml.in [new file with mode: 0644]
android/custom_rules.xml [new file with mode: 0644]
android/res/layout/splash.xml [new file with mode: 0644]
android/res/values/libs.xml [new file with mode: 0644]
android/res/values/strings-pv.xml [new file with mode: 0644]
android/src/org/sigrok/pulseview/PulseViewActivity.java [new file with mode: 0644]
android/src/org/sigrok/pulseview/PulseViewApplication.java [new file with mode: 0644]

diff --git a/android/.gitignore b/android/.gitignore
new file mode 100644 (file)
index 0000000..62a493f
--- /dev/null
@@ -0,0 +1,16 @@
+/libs/
+/assets/
+/res/drawable/
+/res/values/bundled_libs.xml
+/res/*/strings.xml
+/res/xml/device_filter.xml
+/build.xml
+/project.properties
+/local.properties
+/proguard-project.txt
+/bin/
+/gen/
+/ant/build/
+/ant/tasks.jar
+/src/org/qtproject/
+/src/org/kde/
diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml
new file mode 100644 (file)
index 0000000..3609c56
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='utf-8'?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+               package="org.sigrok.pulseview" 
+               android:versionName="0.2.0"
+               android:versionCode="20"
+               android:installLocation="auto">
+    <application android:hardwareAccelerated="true"
+                android:name="org.sigrok.pulseview.PulseViewApplication"
+                android:label="@string/pv_app_name"
+                android:icon="@drawable/logo">
+        <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|locale|fontScale|keyboard|keyboardHidden|navigation"
+                  android:name="org.sigrok.pulseview.PulseViewActivity"
+                  android:label="@string/pv_app_name"
+                  android:screenOrientation="unspecified"
+                  android:launchMode="singleTop">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+            <meta-data android:name="android.app.lib_name" android:value="pulseview"/>
+            <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
+            <meta-data android:name="android.app.repository" android:value="default"/>
+            <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
+            <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
+            <!-- Deploy Qt libs as part of package -->
+            <meta-data android:name="android.app.bundle_local_qt_libs" android:value="0"/>
+            <meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
+            <meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
+            <!-- Run with local libs -->
+            <meta-data android:name="android.app.use_local_qt_libs" android:value="0"/>
+            <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
+            <meta-data android:name="android.app.load_local_libs" android:value="plugins/platforms/android/libqtforandroid.so"/>
+            <meta-data android:name="android.app.load_local_jars" android:value="jar/QtAndroid.jar:jar/QtAndroidAccessibility.jar:jar/QtAndroid-bundled.jar:jar/QtAndroidAccessibility-bundled.jar"/>
+            <meta-data android:name="android.app.static_init_classes" android:value=""/>
+            <!--  Messages maps -->
+            <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
+            <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
+            <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
+            <!--  Messages maps -->
+            <!-- Splash screen -->
+            <!--
+            <meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/>
+            -->
+            <!-- Splash screen -->
+        </activity>
+    </application>
+    <uses-sdk android:minSdkVersion="12" android:targetSdkVersion="14"/>
+    <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+</manifest>
diff --git a/android/bundled_libs.xml.in b/android/bundled_libs.xml.in
new file mode 100644 (file)
index 0000000..7ddaddf
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding='utf-8'?>
+<resources>
+    <array name="bundled_libs">
+@bundled_libs@
+    </array>
+</resources>
diff --git a/android/custom_rules.xml b/android/custom_rules.xml
new file mode 100644 (file)
index 0000000..7331fe9
--- /dev/null
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    This file is part of the PulseView project.
+
+    Copyright (C) 2014 Marcus Comstedt <marcus@mc.pp.se>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+-->
+<project>
+
+  <property name="pulseview-source-path" value="${basedir}/.."/>
+  <property name="pulseview-build-path" value="${pulseview-source-path}"/>
+  <property name="cmake-cache" value="${pulseview-build-path}/CMakeCache.txt"/>
+
+  <target name="-get-prefix">
+    <loadproperties srcFile="${cmake-cache}" prefix="cmake">
+      <filterchain>
+       <replaceregex pattern=":[A-Z]*=" replace="=" />
+      </filterchain>
+    </loadproperties>
+    <property name="prefix" value="${cmake.CMAKE_INSTALL_PREFIX}"/>
+  </target>
+
+  <target name="-declare-anttasks" depends="-get-prefix">
+    <taskdef resource="anttasks.properties"
+       classpath="${prefix}/jar/sigrok-androidutils-anttasks.jar"/>
+  </target>
+
+  <target name="-pre-build" depends="-get-prefix, -declare-anttasks">
+    <copylibs todir="${native.libs.absolute.dir}" property="bundled_libs">
+      <fileset dir="${pulseview-build-path}/libs" />
+      <include name="libgnustl_shared.so"/>
+      <exclude name="lib*.so"/>
+    </copylibs>
+    <copy file="${prefix}/jar/sigrok-androidutils.jar"
+          tofile="${jar.libs.absolute.dir}/sigrok-androidutils.jar"/>
+    <copy file="${prefix}/share/sigrok-androidutils/device_filter.xml"
+          tofile="${resource.absolute.dir}/xml/device_filter.xml"/>
+    <copy file="bundled_libs.xml.in"
+          tofile="${resource.absolute.dir}/values/bundled_libs.xml">
+      <filterset>
+        <filter token="bundled_libs" value="${bundled_libs}"/>
+      </filterset>
+    </copy>
+    <copy file="${pulseview-source-path}/icons/sigrok-logo-notext.png"
+          tofile="${resource.absolute.dir}/drawable/logo.png" />
+    <copy todir="${source.absolute.dir}">
+      <fileset dir="${prefix}/src/android/java/src">
+       <include name="org/qtproject/qt5/android/bindings/**"/>
+       <include name="org/kde/necessitas/ministro/**"/>
+      </fileset>
+    </copy>
+    <copy todir="${resource.absolute.dir}">
+      <fileset dir="${prefix}/src/android/java/res">
+       <include name="**/strings.xml"/>
+      </fileset>
+    </copy>
+    <copy todir="${asset.absolute.dir}/libsigrokdecode">
+      <fileset dir="${prefix}/share/libsigrokdecode" />
+    </copy>
+    <copy todir="${asset.absolute.dir}/python3.3">
+      <fileset dir="${prefix}/lib/python3.3">
+       <include name="**/*.py"/>
+       <exclude name="**/test/**"/>
+      </fileset>
+    </copy>
+  </target>
+</project>
diff --git a/android/res/layout/splash.xml b/android/res/layout/splash.xml
new file mode 100644 (file)
index 0000000..6875521
--- /dev/null
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" />
diff --git a/android/res/values/libs.xml b/android/res/values/libs.xml
new file mode 100644 (file)
index 0000000..8aa5afa
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='utf-8'?>
+<resources>
+    <array name="qt_sources">
+        <item>https://download.qt-project.org/ministro/android/qt5/qt-5.3</item>
+    </array>
+
+     <array name="qt_libs">
+         <!-- %%INSERT_QT_LIBS%% -->
+         <item>Qt5Core</item>
+         <item>Qt5Gui</item>
+         <item>Qt5Widgets</item>
+         <item>Qt5Svg</item>
+     </array>
+
+    <array name="bundled_in_lib">
+        <!-- %%INSERT_BUNDLED_IN_LIB%% -->
+    </array>
+    <array name="bundled_in_assets">
+        <!-- %%INSERT_BUNDLED_IN_ASSETS%% -->
+    </array>
+
+</resources>
diff --git a/android/res/values/strings-pv.xml b/android/res/values/strings-pv.xml
new file mode 100644 (file)
index 0000000..991a086
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='utf-8'?>
+<resources>
+    <string name="pv_app_name">PulseView</string>
+</resources>
diff --git a/android/src/org/sigrok/pulseview/PulseViewActivity.java b/android/src/org/sigrok/pulseview/PulseViewActivity.java
new file mode 100644 (file)
index 0000000..32f6c79
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2014 Marcus Comstedt <marcus@mc.pp.se>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package org.sigrok.pulseview;
+
+import org.qtproject.qt5.android.bindings.QtActivity;
+import org.sigrok.androidutils.UsbSupplicant;
+
+import android.os.Bundle;
+
+public class PulseViewActivity extends QtActivity
+{
+    private UsbSupplicant supplicant;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState)
+    {
+       super.onCreate(savedInstanceState);
+       supplicant = new UsbSupplicant(getApplicationContext(), R.xml.device_filter);
+    }
+
+    @Override
+    protected void onStart()
+    {
+        super.onStart();
+       supplicant.start();
+    }
+
+    @Override
+    protected void onStop()
+    {
+       supplicant.stop();
+        super.onStop();
+    }
+}
diff --git a/android/src/org/sigrok/pulseview/PulseViewApplication.java b/android/src/org/sigrok/pulseview/PulseViewApplication.java
new file mode 100644 (file)
index 0000000..ba30b50
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the PulseView project.
+ *
+ * Copyright (C) 2014 Marcus Comstedt <marcus@mc.pp.se>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package org.sigrok.pulseview;
+
+import org.qtproject.qt5.android.bindings.QtApplication;
+import org.sigrok.androidutils.Environment;
+import org.sigrok.androidutils.UsbHelper;
+
+import java.io.File;
+import java.io.IOException;
+
+public class PulseViewApplication extends QtApplication
+{
+    @Override
+    public void onCreate()
+    {
+       Environment.initEnvironment(getApplicationInfo().sourceDir);
+       UsbHelper.setContext(getApplicationContext());
+       super.onCreate();
+    }
+}
+