From ebfb10cb75adb704418d08197681c1e742e63bd5 Mon Sep 17 00:00:00 2001 From: Igor Cota Date: Fri, 28 Aug 2020 11:09:58 +0200 Subject: Qt: add Android packaging support Introduce an android directory under qt and allow one to package bitcoin-qt for Android by running make apk. Add bitcoin-qt Android build instructions. --- src/qt/android/AndroidManifest.xml | 38 +++++++++++++++ src/qt/android/build.gradle | 52 +++++++++++++++++++++ src/qt/android/gradle.properties | 4 ++ src/qt/android/res/drawable-hdpi/bitcoin.png | Bin 0 -> 4536 bytes src/qt/android/res/drawable-ldpi/bitcoin.png | Bin 0 -> 1697 bytes src/qt/android/res/drawable-mdpi/bitcoin.png | Bin 0 -> 2558 bytes src/qt/android/res/drawable-xhdpi/bitcoin.png | Bin 0 -> 6832 bytes src/qt/android/res/drawable-xxhdpi/bitcoin.png | Bin 0 -> 11479 bytes src/qt/android/res/drawable-xxxhdpi/bitcoin.png | Bin 0 -> 17034 bytes .../src/org/bitcoincore/qt/BitcoinQtActivity.java | 29 ++++++++++++ 10 files changed, 123 insertions(+) create mode 100644 src/qt/android/AndroidManifest.xml create mode 100644 src/qt/android/build.gradle create mode 100644 src/qt/android/gradle.properties create mode 100644 src/qt/android/res/drawable-hdpi/bitcoin.png create mode 100644 src/qt/android/res/drawable-ldpi/bitcoin.png create mode 100644 src/qt/android/res/drawable-mdpi/bitcoin.png create mode 100644 src/qt/android/res/drawable-xhdpi/bitcoin.png create mode 100644 src/qt/android/res/drawable-xxhdpi/bitcoin.png create mode 100644 src/qt/android/res/drawable-xxxhdpi/bitcoin.png create mode 100644 src/qt/android/src/org/bitcoincore/qt/BitcoinQtActivity.java (limited to 'src/qt/android') diff --git a/src/qt/android/AndroidManifest.xml b/src/qt/android/AndroidManifest.xml new file mode 100644 index 0000000000..abb88fe89d --- /dev/null +++ b/src/qt/android/AndroidManifest.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/qt/android/build.gradle b/src/qt/android/build.gradle new file mode 100644 index 0000000000..4c36e79db8 --- /dev/null +++ b/src/qt/android/build.gradle @@ -0,0 +1,52 @@ +buildscript { + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.1.0' + } +} + +repositories { + google() + jcenter() +} + +apply plugin: 'com.android.application' + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) +} + +android { + 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 + } + + dexOptions { + javaMaxHeapSize '4g' + } + + defaultConfig { + minSdkVersion 24 + } +} diff --git a/src/qt/android/gradle.properties b/src/qt/android/gradle.properties new file mode 100644 index 0000000000..838870f62d --- /dev/null +++ b/src/qt/android/gradle.properties @@ -0,0 +1,4 @@ +androidBuildToolsVersion=28.0.3 +androidCompileSdkVersion=28 +qt5AndroidDir=new File(".").absolutePath +org.gradle.jvmargs=-Xmx4608M diff --git a/src/qt/android/res/drawable-hdpi/bitcoin.png b/src/qt/android/res/drawable-hdpi/bitcoin.png new file mode 100644 index 0000000000..31a556a35f Binary files /dev/null and b/src/qt/android/res/drawable-hdpi/bitcoin.png differ diff --git a/src/qt/android/res/drawable-ldpi/bitcoin.png b/src/qt/android/res/drawable-ldpi/bitcoin.png new file mode 100644 index 0000000000..76d80d4196 Binary files /dev/null and b/src/qt/android/res/drawable-ldpi/bitcoin.png differ diff --git a/src/qt/android/res/drawable-mdpi/bitcoin.png b/src/qt/android/res/drawable-mdpi/bitcoin.png new file mode 100644 index 0000000000..c2aeab851a Binary files /dev/null and b/src/qt/android/res/drawable-mdpi/bitcoin.png differ diff --git a/src/qt/android/res/drawable-xhdpi/bitcoin.png b/src/qt/android/res/drawable-xhdpi/bitcoin.png new file mode 100644 index 0000000000..2bd5e3defc Binary files /dev/null and b/src/qt/android/res/drawable-xhdpi/bitcoin.png differ diff --git a/src/qt/android/res/drawable-xxhdpi/bitcoin.png b/src/qt/android/res/drawable-xxhdpi/bitcoin.png new file mode 100644 index 0000000000..d236cf2132 Binary files /dev/null and b/src/qt/android/res/drawable-xxhdpi/bitcoin.png differ diff --git a/src/qt/android/res/drawable-xxxhdpi/bitcoin.png b/src/qt/android/res/drawable-xxxhdpi/bitcoin.png new file mode 100644 index 0000000000..bb1dbc3554 Binary files /dev/null and b/src/qt/android/res/drawable-xxxhdpi/bitcoin.png differ diff --git a/src/qt/android/src/org/bitcoincore/qt/BitcoinQtActivity.java b/src/qt/android/src/org/bitcoincore/qt/BitcoinQtActivity.java new file mode 100644 index 0000000000..cf3b4f6668 --- /dev/null +++ b/src/qt/android/src/org/bitcoincore/qt/BitcoinQtActivity.java @@ -0,0 +1,29 @@ +package org.bitcoincore.qt; + +import android.os.Bundle; +import android.system.ErrnoException; +import android.system.Os; + +import org.qtproject.qt5.android.bindings.QtActivity; + +import java.io.File; + +public class BitcoinQtActivity extends QtActivity +{ + @Override + public void onCreate(Bundle savedInstanceState) + { + final File bitcoinDir = new File(getFilesDir().getAbsolutePath() + "/.bitcoin"); + if (!bitcoinDir.exists()) { + bitcoinDir.mkdir(); + } + + try { + Os.setenv("QT_QPA_PLATFORM", "android", true); + } catch (ErrnoException e) { + e.printStackTrace(); + } + + super.onCreate(savedInstanceState); + } +} -- cgit v1.2.3