forked from Skycoder42/QtService
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b8f3862
commit 2dbaba5
Showing
17 changed files
with
253 additions
and
244 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
TEMPLATE = app | ||
|
||
QT += quick service androidextras | ||
QT += quick service core-private | ||
CONFIG += c++14 | ||
|
||
HEADERS += \ | ||
|
182 changes: 84 additions & 98 deletions
182
examples/service/AndroidServiceTest/android/AndroidManifest.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,105 +1,91 @@ | ||
<?xml version="1.0"?> | ||
<manifest package="de.skycoder42.qtservice.test" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0.0" android:versionCode="1" android:installLocation="auto"> | ||
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --"> | ||
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="-- %%INSERT_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> | ||
<application android:extractNativeLibs="true" android:hardwareAccelerated="true" android:name="org.qtproject.qt.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --"> | ||
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt.android.bindings.QtActivity" android:label="-- %%INSERT_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> | ||
<!-- Application arguments --> | ||
<!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ --> | ||
<!-- Application arguments --> | ||
<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%% --"/> | ||
<!-- Used to specify custom system library path to run with local system libs --> | ||
<!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> --> | ||
<!-- Messages maps --> | ||
<!-- Messages maps --> | ||
<!-- Splash screen --> | ||
<!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ --> | ||
<!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ --> | ||
<!-- Splash screen --> | ||
<!-- Background running --> | ||
<!-- Warning: changing this value to true may cause unexpected crashes if the | ||
application still try to draw after | ||
"applicationStateChanged(Qt::ApplicationSuspended)" | ||
signal is sent! --> | ||
<meta-data android:name="android.app.background_running" android:value="false"/> | ||
<!-- Background running --> | ||
<!-- auto screen scale factor --> | ||
<meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/> | ||
<!-- auto screen scale factor --> | ||
<!-- extract android style --> | ||
<!-- available android:values : | ||
* full - useful QWidget & Quick Controls 1 apps | ||
* minimal - useful for Quick Controls 2 apps, it is much faster than "full" | ||
* none - useful for apps that don't use any of the above Qt modules | ||
--> | ||
<meta-data android:name="android.app.extract_android_style" android:value="full"/> | ||
<!-- extract android style --> | ||
</activity> | ||
<service android:name="de.skycoder42.qtservice.AndroidService" android:process=":test_service"> | ||
<!-- Application to launch --> | ||
<!-- Ministro --> | ||
<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 --> | ||
<!-- Background running --> | ||
<meta-data android:name="android.app.background_running" android:value="true"/> | ||
<meta-data android:name="android.app.arguments" android:value="--backend android"/> | ||
<meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> | ||
</service> | ||
</application> | ||
|
||
<!-- Application arguments --> | ||
<!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ --> | ||
<!-- Application arguments --> | ||
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28"/> | ||
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/> | ||
|
||
<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%% --"/> | ||
<!-- Used to specify custom system library path to run with local system libs --> | ||
<!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> --> | ||
<!-- 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 --> | ||
<!-- 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 --> | ||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> | ||
|
||
<!-- Splash screen --> | ||
<!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ --> | ||
<!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ --> | ||
<!-- Splash screen --> | ||
|
||
<!-- Background running --> | ||
<!-- Warning: changing this value to true may cause unexpected crashes if the | ||
application still try to draw after | ||
"applicationStateChanged(Qt::ApplicationSuspended)" | ||
signal is sent! --> | ||
<meta-data android:name="android.app.background_running" android:value="false"/> | ||
<!-- Background running --> | ||
|
||
<!-- auto screen scale factor --> | ||
<meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/> | ||
<!-- auto screen scale factor --> | ||
|
||
<!-- extract android style --> | ||
<!-- available android:values : | ||
* full - useful QWidget & Quick Controls 1 apps | ||
* minimal - useful for Quick Controls 2 apps, it is much faster than "full" | ||
* none - useful for apps that don't use any of the above Qt modules | ||
--> | ||
<meta-data android:name="android.app.extract_android_style" android:value="full"/> | ||
<!-- extract android style --> | ||
</activity> | ||
|
||
<service android:process=":test_service" android:name="de.skycoder42.qtservice.AndroidService"> | ||
<!-- Application to launch --> | ||
<meta-data android:name="android.app.arguments" android:value="--backend android"/> | ||
<meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> | ||
<!-- Ministro --> | ||
<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: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"/> | ||
<!-- Background running --> | ||
<meta-data android:name="android.app.background_running" android:value="true"/> | ||
</service> | ||
|
||
</application> | ||
|
||
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28"/> | ||
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="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 --> | ||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> | ||
|
||
<!-- 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 --> | ||
<!-- 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> |
109 changes: 65 additions & 44 deletions
109
examples/service/AndroidServiceTest/android/build.gradle
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,57 +1,78 @@ | ||
buildscript { | ||
repositories { | ||
google() | ||
jcenter() | ||
} | ||
|
||
dependencies { | ||
classpath 'com.android.tools.build:gradle:3.2.0' | ||
} | ||
repositories { | ||
google() | ||
mavenCentral() | ||
} | ||
|
||
dependencies { | ||
classpath 'com.android.tools.build:gradle:7.0.2' | ||
} | ||
} | ||
|
||
repositories { | ||
google() | ||
jcenter() | ||
google() | ||
mavenCentral() | ||
} | ||
|
||
apply plugin: 'com.android.application' | ||
|
||
dependencies { | ||
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) | ||
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) | ||
} | ||
|
||
android { | ||
/******************************************************* | ||
* The following variables: | ||
* - androidBuildToolsVersion, | ||
* - androidCompileSdkVersion | ||
* - qt5AndroidDir - holds the path to qt android files | ||
* needed to build any Qt application | ||
* on Android. | ||
* | ||
* are defined in gradle.properties file. This file is | ||
* updated by QtCreator and androiddeployqt tools. | ||
* Changing them manually might break the compilation! | ||
*******************************************************/ | ||
|
||
compileSdkVersion androidCompileSdkVersion.toInteger() | ||
|
||
buildToolsVersion androidBuildToolsVersion | ||
|
||
sourceSets { | ||
main { | ||
manifest.srcFile 'AndroidManifest.xml' | ||
java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java'] | ||
aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl'] | ||
res.srcDirs = [qt5AndroidDir + '/res', 'res'] | ||
resources.srcDirs = ['src'] | ||
renderscript.srcDirs = ['src'] | ||
assets.srcDirs = ['assets'] | ||
jniLibs.srcDirs = ['libs'] | ||
} | ||
} | ||
|
||
lintOptions { | ||
abortOnError false | ||
} | ||
/******************************************************* | ||
* The following variables: | ||
* - androidBuildToolsVersion, | ||
* - androidCompileSdkVersion | ||
* - qtAndroidDir - holds the path to qt android files | ||
* needed to build any Qt application | ||
* on Android. | ||
* | ||
* are defined in gradle.properties file. This file is | ||
* updated by QtCreator and androiddeployqt tools. | ||
* Changing them manually might break the compilation! | ||
*******************************************************/ | ||
|
||
compileSdkVersion androidCompileSdkVersion.toInteger() | ||
buildToolsVersion androidBuildToolsVersion | ||
ndkVersion androidNdkVersion | ||
|
||
sourceSets { | ||
main { | ||
manifest.srcFile 'AndroidManifest.xml' | ||
java.srcDirs = [qtAndroidDir + '/src', 'src', 'java'] | ||
aidl.srcDirs = [qtAndroidDir + '/src', 'src', 'aidl'] | ||
res.srcDirs = [qtAndroidDir + '/res', 'res'] | ||
resources.srcDirs = ['resources'] | ||
renderscript.srcDirs = ['src'] | ||
assets.srcDirs = ['assets'] | ||
jniLibs.srcDirs = ['libs'] | ||
} | ||
} | ||
|
||
tasks.withType(JavaCompile) { | ||
options.incremental = true | ||
} | ||
|
||
compileOptions { | ||
sourceCompatibility JavaVersion.VERSION_1_8 | ||
targetCompatibility JavaVersion.VERSION_1_8 | ||
} | ||
|
||
lintOptions { | ||
abortOnError false | ||
} | ||
|
||
// Do not compress Qt binary resources file | ||
aaptOptions { | ||
noCompress 'rcc' | ||
} | ||
|
||
defaultConfig { | ||
resConfig "en" | ||
minSdkVersion qtMinSdkVersion | ||
targetSdkVersion qtTargetSdkVersion | ||
ndk.abiFilters = qtTargetAbiList.split(",") | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.