Commit Graph

100 Commits

Author SHA1 Message Date
Ruslan Mustakov 5ccdeccb6e Make GDNative work on Android
The changes include work done to ensure that GDNative apps and Nim
integration specifically can run on Android. The changes have been
tested on our WIP game, which uses godot-nim and depends on several
third-party .so libs, and Platformer demo to ensure nothing got broken.

 - .so libraries are exported to lib/ folder in .apk, instead of assets/,
   because that's where Android expects them to be and it resolves the
   library name into "lib/<ABI>/<name>", where <ABI> is the ABI matching
   the current device. So we establish the convention that Android .so
   files in the project must be located in the folder corresponding to
   the ABI they were compiled for.

 - Godot callbacks (event handlers) are now called from the same thread
   from which Main::iteration is called. It is also what Godot now
   considers to be the main thread, because Main::setup is also called
   from there. This makes threading on Android more consistent with
   other platforms, making the code that depends on Thread::get_main_id
   more portable (GDNative has such code).

 - Sizes of GDNative API types have been fixed to work on 32-bit
   platforms.
2017-08-30 18:14:19 +07:00
Rémi Verschelde bd282ff43f Use HTTPS URL for Godot's website in the headers 2017-08-27 14:16:55 +02:00
Henrik Andersson 16de3835fa fix UnsatisfiedLinkError when quitting 2017-08-23 03:14:51 +02:00
Rémi Verschelde 93f1fb1c2f Fixes for new two-dash long command line arguments
- Fixes some single-dash leftovers that were missed in the previous commit
- Reorder the help output for clarity, and document missing options
- Drop obsolete options: --noop, --pack, --editor-scene, --level, --import, --import-script, --no-quit
- Improve error message on malformed arguments and do not display help on error
- Always use long form of arguments when starting a new Godot process from C++, for clarity and easy grepping
- Cleanup obsolete code here and there
2017-08-21 08:09:22 +02:00
Juan Linietsky b9dcebb37c Revert "Second take at making command-line arguments more UNIX-like + main.cpp and help cleanup" 2017-08-19 17:47:27 -03:00
Rémi Verschelde 70b0857f6c Fixes for new two-dash long command line arguments
- Fixes some single-dash leftovers that were missed in the previous commit
- Reorder the help output for clarity, and document missing options
- Drop obsolete options: --noop, --pack, --editor-scene, --level, --import, --import-script, --no-quit
- Improve error message on malformed arguments and do not display help on error
- Cleanup obsolete code here and there
2017-08-19 16:48:11 +02:00
ISylvox 0d8556a7f0 update gradle-android buildtool for master 2017-07-30 11:30:20 +07:00
Juan Linietsky bbada82f80 -Reorganized all properties of project settings (Sorry, Again).
(Lot's of bloat accumulated, so it was time for clean up.)
-Made EditorSettings and ProjectSettings search more useful (search in sections too)
2017-07-17 22:18:58 -03:00
Rémi Verschelde e80d2b8dfb Merge pull request #8824 from volzhs/android-payment-master
Fix android payment logical error
2017-05-20 09:49:18 +02:00
volzhs 209f61b6d4 Fix android payment logical error
getting sku detail runs only if mod != 0 which means querying 20*n will not get sku details.
referenced from https://github.com/googlesamples/android-play-billing/blob/master/TrivialDrive/app/src/main/java/com/example/android/trivialdrivesample/util/IabHelper.java#L1029-L1062
2017-05-19 12:20:51 +09:00
Rémi Verschelde 519df0d34d Use new Godot icon consistently everywhere 2017-05-17 19:53:59 +02:00
Rémi Verschelde 413e68fced Merge pull request #8723 from volzhs/fix-android-master
Fix possible memory leak for Android and update gradle
2017-05-12 08:24:22 +02:00
volzhs 8be9b98b8e Update to latest gradle 2017-05-12 14:44:47 +09:00
volzhs 9d33f51066 Fix possible memory leak for Android
/godot_dev/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloaderService.java:575: Error: The WIFI_SERVICE must be looked up on the Application context or memory will leak on devices < Android N. Try changing  to .getApplicationContext()  [WifiManagerLeak]
            mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   Explanation for issues of type "WifiManagerLeak":
   On versions prior to Android N (24), initializing the WifiManager via
   Context#getSystemService can cause a memory leak if the context is not the
   application context. Change context.getSystemService(...) to
   context.getApplicationContext().getSystemService(...).

1 errors, 0 warnings
2017-05-12 14:44:37 +09:00
Rémi Verschelde c8aea60324 Improve documentation of thirdparty code snippets 2017-05-07 11:42:37 +02:00
volzhs 889ce29fc2 Fix error or download again if use obb for Android 2017-04-26 04:06:45 +09:00
Rémi Verschelde df61dc4b2b Add "Godot Engine contributors" copyright line 2017-04-08 00:11:42 +02:00
Rémi Verschelde debeee56f7 Fix typos in source code using codespell
From https://github.com/lucasdemarchi/codespell
2017-03-24 21:45:31 +01:00
Juan Linietsky efaeebab4d Several fixes to Android exporter and port.
Android seems to be working again!
2017-03-23 20:14:12 -03:00
volzhs 4866ea828a Fix handling input for Android 2017-03-04 00:15:26 +09:00
Rémi Verschelde 93ab45b6b5 Style: Fix whole-line commented code
They do not play well with clang-format which aligns the `//` part
with the rest of the code block, thus producing badly indented commented code.
2017-01-14 14:52:23 +01:00
Juan Linietsky b7d69c2444 Added a BACK notification besides QUIT, so they go in separate channels. 2017-01-11 16:42:31 -03:00
Rémi Verschelde c7bc44d5ad Welcome in 2017, dear changelog reader!
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer
with state-of-the-art rendering techniques tuned to work as low as middle
end handheld devices - without compromising with the possibilities given
for higher end desktop games of course. Great times ahead for the Godot
community and the gamers that will play our games!
2017-01-01 22:03:33 +01:00
volzhs 9a20068ab7 Add alert window on Android 2016-11-28 10:20:57 +09:00
volzhs 8d454ed9a7 Fix Directory.dir_exist/get_current_dir for 'res://' on Android
Fix #7014
2016-11-09 01:50:00 +09:00
Skyfrit 4f6a21b0df Android: Rename values-zh to values-zh-rCN (#6063) 2016-08-08 11:51:30 +02:00
Skyfrit 664b5b5137 Android: Add support for Traditional Chinese (HK) (#6061) 2016-08-08 11:49:51 +02:00
Skyfrit 8ab4acd17f Android: Add support for Traditional Chinese (TW) (#6061) 2016-08-08 11:49:35 +02:00
Juan Linietsky 9213400cd5 Merge pull request #5415 from volzhs/improve-android-payment
Improve android payment
2016-07-24 12:18:13 -03:00
Mario Schlack 0717893772 Implement get_screen_dpi() on Android 2016-07-20 14:54:48 +02:00
volzhs 79cb91dc84 Add querying details of IAP items for android 2016-07-18 23:45:58 +09:00
volzhs f26f181ba9 Fix can't get all info if user purchases many items and not consumed 2016-07-18 23:45:58 +09:00
Jamil Halabi 370ae3512d Added gyroscope support to Godot and Android 2016-07-16 01:43:32 +08:00
Pedro J. Estébanez e7b2626707 Make Android build smarter (SCons + Gradle)
Upgrade Gradle and Android plugin for Gradle
Disable all signing and zip-aligning for the export templates
Give correct names to generated APKs
Put .so files built by SCons right where Gradle has to pick them according to arch & build type
Downgrade NDK platform to 14 to match minSdkVersion
2016-06-27 10:49:15 +02:00
George Marques 6d37253be5
Fix Android sensors polling rate on resume
Fix #5306
2016-06-24 21:00:04 -03:00
volzhs a5a5bdef25 Remove duplicated aidl for android
Tested IAP function on device.
2016-06-25 01:11:21 +09:00
J08nY 0ab05b09e4
Fixed iCCp chunk in pngs
neccesary for libpng 1.6.27 to work silently
2016-06-22 21:13:29 +02:00
Rémi Verschelde 842e7bfc2f Merge pull request #5357 from volzhs/fix-locale-android
fix android resource locale
2016-06-22 16:05:59 +02:00
volzhs 591be5df25 fix android resource locale 2016-06-22 22:32:03 +09:00
volzhs 780fa60072 correct current Intent for android 2016-06-21 03:32:44 +09:00
Rémi Verschelde a7fc04626a Add missing license headers in our source files (#5255)
Also removes a couple wrong Godot headers from third-party source files.
2016-06-18 14:46:12 +02:00
Rémi Verschelde aed5474238 Merge pull request #4729 from volzhs/android-23
Supporting Android API 23 (Android 6.0)
2016-06-07 09:45:24 +02:00
Rémi Verschelde e6e878e139 Icon: Remove more grey capsules behind official logo 2016-05-30 00:41:42 +02:00
fluffrabbit 4877b714b3
Add magnetometer sensor support for Android 2016-05-27 14:36:55 -03:00
volzhs e5d16eca46 Add comments for NotificationCompat to support API < 16 2016-05-25 22:19:37 +09:00
volzhs ff67c256f5 fix compatibility for Android API 14 with supporting API 23
using ``NotificationCompat`` in ``support-v4`` library will increase APK filesize a little bit, but it guarantees to run OK with API 4+
tested with API 19 and 23 devices
2016-05-24 11:22:35 +09:00
volzhs 160713d4d3 Supporting Android API 23 (Android 6.0)
If we update build gradle to use ``compileSdkVersion 23``,
``org.apache.http`` package causes error. (issue #4711)

We need to use ``useLibrary 'org.apache.http.legacy'`` to solve this problem.
To use ``useLibrary``, we need to use latest gradle also.

And now, we faced another problem with ``APK Expansion`` java sources.

```
/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloadNotification.java
137 :             mCurrentNotification.setLatestEventInfo(mContext, mCurrentTitle, mCurrentText, mContentIntent); // causes error
```

So, some of APK Expansion java sources are updated by referencing commits from https://github.com/danikula/Google-Play-Expansion-File
And dropped V3CustomNotification.java which was for android 3.0, since godot supports android 14 (4.0) above officially.

Unfortunately, another problem, The 'MissingTranslation' error was occurred.
So, build.gradle is updated to use ``disable 'MissingTranslation'``

Additionally, I updated ``buildToolsVersion``, ``targetSdkVersion`` to latest version.

I tested APK Expansion funtionality on Android 6.0 (Nexus 9, Nexus 6p) and Android 4.4 (Galaxy Note 2)  with Google Developer console.
2016-05-20 22:57:49 +09:00
volzhs e94e710893 remove unused resources and add korean locale for android
- remove unused resources in platform/android/java/res/values/strings.xml
- add korean language resource for apk expansion download screen
2016-04-19 11:10:55 +09:00
hondres e7c920fdba support gamepad remapping on android 2016-01-24 05:29:09 +01:00
volzhs fb2bf78591 Add ability to set "keep screen on" for android 2016-01-16 20:57:34 +09:00