Template for subsurface android package

For modifications to the final source code of built android package
such as permission additions and inclusion of xml and java files, it
is necessary to maintain a template. The template is copied without
any modifications on top of qt android-template before building
subsurface libraries. Refer:
http://qt-project.org/doc/qt-5/deployment-android.html#qmake-variables

Files that are required to be directly copied to android package
would be included in directory android.
Icons for subsurface on android and string.xml are included.

Signed-off-by: Venkatesh Shukla <venkatesh.shukla.eee11@iitbhu.ac.in>
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Venkatesh Shukla 2014-06-23 17:18:17 +05:30 committed by Dirk Hohndel
parent 772727fc7f
commit 6e10615666
10 changed files with 125 additions and 0 deletions

1
.gitignore vendored
View file

@ -30,3 +30,4 @@ Makefile
subsurface.pro.user*
Subsurface.app
.DS_Store
!android/**/*.xml

108
android/AndroidManifest.xml Normal file
View file

@ -0,0 +1,108 @@
<?xml version='1.0' encoding='utf-8'?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.subsurface"
android:installLocation="auto"
android:versionCode="1"
android:versionName="1.0" >
<application
android:name="org.qtproject.qt5.android.bindings.QtApplication"
android:hardwareAccelerated="true"
android:label="@string/app_name"
android:icon="@drawable/subsurface_icon" >
<activity
android:name="org.qtproject.qt5.android.bindings.QtActivity"
android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|locale|fontScale|keyboard|keyboardHidden|navigation"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="unspecified" >
<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="-- %%INSERT_APP_LIB_NAME%% --" />
<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="-- %%BUNDLE_LOCAL_QT_LIBS%% --" />
<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="-- %%USE_LOCAL_QT_LIBS%% --" />
<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="-- %%INSERT_LOCAL_LIBS%% --" />
<meta-data
android:name="android.app.load_local_jars"
android:value="-- %%INSERT_LOCAL_JARS%% --" />
<meta-data
android:name="android.app.static_init_classes"
android:value="-- %%INSERT_INIT_CLASSES%% --" />
<!-- Messages maps -->
<meta-data
android:name="android.app.ministro_not_found_msg"
android:value="@string/ministro_not_found_msg" />
<meta-data
android:name="android.app.ministro_needed_msg"
android:value="@string/ministro_needed_msg" />
<meta-data
android:name="android.app.fatal_error_msg"
android:value="@string/fatal_error_msg" />
<!-- Messages maps -->
<!-- Splash screen -->
<!--
<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/>
-->
<!-- Splash screen -->
</application>
<uses-sdk android:minSdkVersion="12" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
<!--
The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
Remove the comment if you do not require these default permissions.
-->
<!-- %%INSERT_PERMISSIONS -->
<!--
The following comment will be replaced upon deployment with default features based on the dependencies of the application.
Remove the comment if you do not require these default features.
-->
<!-- %%INSERT_FEATURES -->
</manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

View file

@ -0,0 +1,8 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">Subsurface</string>
<string name="ministro_not_found_msg">Can\'t find Ministro service.\nThe application can\'t start.</string>
<string name="ministro_needed_msg">This application requires Ministro service. Would you like to install it?</string>
<string name="fatal_error_msg">Your application encountered a fatal error and cannot continue.</string>
</resources>

View file

@ -130,6 +130,8 @@ mac {
} else: android {
# Android install rules
QMAKE_BUNDLE_DATA += translation qttranslation
# Android template directory
ANDROID_PACKAGE_SOURCE_DIR = $$OUT_PWD/android
} else {
# Linux install rules
# On Linux, we can count on packagers doing the right thing

View file

@ -263,6 +263,12 @@ theme.commands += $(CHK_DIR_EXISTS) $$OUT_PWD/theme || $(COPY_DIR) $$PWD/theme $
all.depends += theme
QMAKE_EXTRA_TARGETS += theme
android {
android.commands += $(CHK_DIR_EXISTS) $$OUT_PWD/android || $(COPY_DIR) $$PWD/android $$OUT_PWD
all.depends += android
QMAKE_EXTRA_TARGETS += android
}
DESKTOP_FILE = subsurface.desktop
mac: ICON = packaging/macosx/Subsurface.icns
else: ICON = subsurface-icon.svg