From 66ee5cb49114b983c5f2b1b11fe1332c7b08475e Mon Sep 17 00:00:00 2001 From: Fredia Huya-Kouadio Date: Sun, 3 Sep 2023 19:46:14 -0700 Subject: [PATCH] Update the Android documentation for Godot 4.2 --- _tools/redirects/redirects.csv | 2 +- about/docs_changelog.rst | 2 +- classes/class_editorexportplatformandroid.rst | 2 +- .../compiling/compiling_for_android.rst | 32 +- ...tom_build.rst => android_gradle_build.rst} | 29 +- tutorials/export/img/custom_build_enable.png | Bin 33482 -> 0 bytes tutorials/export/img/custom_build_gradle.png | Bin 47296 -> 0 bytes .../img/custom_build_install_template.png | Bin 6289 -> 0 bytes tutorials/export/img/gradle_build_enable.webp | Bin 0 -> 20114 bytes tutorials/export/img/gradle_build_gradle.webp | Bin 0 -> 9568 bytes .../img/gradle_build_install_template.webp | Bin 0 -> 5192 bytes tutorials/export/index.rst | 2 +- .../android/android_in_app_purchases.rst | 53 +-- .../platform/android/android_library.rst | 240 ++++++++++ tutorials/platform/android/android_plugin.rst | 422 +++++++++++++----- .../android_export_preset_plugins_section.png | Bin 47350 -> 0 bytes .../gltf_viewer_sample_app_screenshot.webp | Bin 0 -> 23600 bytes tutorials/platform/android/index.rst | 9 +- tutorials/xr/deploying_to_android.rst | 8 +- ...m_build.webp => android_gradle_build.webp} | Bin 20 files changed, 607 insertions(+), 194 deletions(-) rename tutorials/export/{android_custom_build.rst => android_gradle_build.rst} (64%) delete mode 100644 tutorials/export/img/custom_build_enable.png delete mode 100644 tutorials/export/img/custom_build_gradle.png delete mode 100644 tutorials/export/img/custom_build_install_template.png create mode 100644 tutorials/export/img/gradle_build_enable.webp create mode 100644 tutorials/export/img/gradle_build_gradle.webp create mode 100644 tutorials/export/img/gradle_build_install_template.webp create mode 100644 tutorials/platform/android/android_library.rst delete mode 100644 tutorials/platform/android/img/android_export_preset_plugins_section.png create mode 100644 tutorials/platform/android/img/gltf_viewer_sample_app_screenshot.webp rename tutorials/xr/img/{android_custom_build.webp => android_gradle_build.webp} (100%) diff --git a/_tools/redirects/redirects.csv b/_tools/redirects/redirects.csv index f2321cc7b..47e70b098 100644 --- a/_tools/redirects/redirects.csv +++ b/_tools/redirects/redirects.csv @@ -130,7 +130,7 @@ source,destination /getting_started/workflow/best_practices/scene_organization.html,/tutorials/best_practices/scene_organization.html /getting_started/workflow/best_practices/scenes_versus_scripts.html,/tutorials/best_practices/scenes_versus_scripts.html /getting_started/workflow/best_practices/what_are_godot_classes.html,/tutorials/best_practices/what_are_godot_classes.html -/getting_started/workflow/export/android_custom_build.html,/tutorials/export/android_custom_build.html +/getting_started/workflow/export/android_custom_build.html,/tutorials/export/android_gradle_build.html /getting_started/workflow/export/changing_application_icon_for_windows.html,/tutorials/export/changing_application_icon_for_windows.html /getting_started/workflow/export/exporting_for_android.html,/tutorials/export/exporting_for_android.html /getting_started/workflow/export/exporting_for_dedicated_servers.html,/tutorials/export/exporting_for_dedicated_servers.html diff --git a/about/docs_changelog.rst b/about/docs_changelog.rst index ba94da0f6..65bc1c446 100644 --- a/about/docs_changelog.rst +++ b/about/docs_changelog.rst @@ -235,7 +235,7 @@ New pages since version 3.1 Project workflow ^^^^^^^^^^^^^^^^ -- :ref:`doc_android_custom_build` +- :ref:`doc_android_gradle_build` 2D ^^ diff --git a/classes/class_editorexportplatformandroid.rst b/classes/class_editorexportplatformandroid.rst index c8644c750..0e7c5ce57 100644 --- a/classes/class_editorexportplatformandroid.rst +++ b/classes/class_editorexportplatformandroid.rst @@ -21,7 +21,7 @@ Tutorials - :doc:`Exporting for Android <../tutorials/export/exporting_for_android>` -- :doc:`Custom builds for Android <../tutorials/export/android_custom_build>` +- :doc:`Gradle builds for Android <../tutorials/export/android_gradle_build>` - :doc:`Android plugins documentation index <../tutorials/platform/index>` diff --git a/contributing/development/compiling/compiling_for_android.rst b/contributing/development/compiling/compiling_for_android.rst index 3f53093ba..c6c6b08b2 100644 --- a/contributing/development/compiling/compiling_for_android.rst +++ b/contributing/development/compiling/compiling_for_android.rst @@ -94,8 +94,8 @@ root directory with the following arguments: :: - scons platform=android target=template_release arch=armv7 - scons platform=android target=template_release arch=arm64v8 + scons platform=android target=template_release arch=arm32 + scons platform=android target=template_release arch=arm64 cd platform/android/java # On Windows .\gradlew generateGodotTemplates @@ -109,8 +109,8 @@ The resulting APK will be located at ``bin/android_release.apk``. :: - scons platform=android target=template_debug arch=armv7 - scons platform=android target=template_debug arch=arm64v8 + scons platform=android target=template_debug arch=arm32 + scons platform=android target=template_debug arch=arm64 cd platform/android/java # On Windows .\gradlew generateGodotTemplates @@ -135,9 +135,9 @@ example, for the release template: :: - scons platform=android target=template_release arch=armv7 - scons platform=android target=template_release arch=arm64v8 - scons platform=android target=template_release arch=x86 + scons platform=android target=template_release arch=arm32 + scons platform=android target=template_release arch=arm64 + scons platform=android target=template_release arch=x86_32 scons platform=android target=template_release arch=x86_64 cd platform/android/java # On Windows @@ -160,9 +160,9 @@ You can use the following commands to remove the generated export templates: cd platform/android/java # On Windows - .\gradlew cleanGodotTemplates + .\gradlew clean # On Linux and macOS - ./gradlew cleanGodotTemplates + ./gradlew clean Using the export templates @@ -213,9 +213,9 @@ root directory with the following arguments: :: - scons platform=android arch=armv7 production=yes target=editor - scons platform=android arch=arm64v8 production=yes target=editor - scons platform=android arch=x86 production=yes target=editor + scons platform=android arch=arm32 production=yes target=editor + scons platform=android arch=arm64 production=yes target=editor + scons platform=android arch=x86_32 production=yes target=editor scons platform=android arch=x86_64 production=yes target=editor cd platform/android/java # On Windows @@ -224,7 +224,7 @@ root directory with the following arguments: ./gradlew generateGodotEditor -The resulting APK will be located at ``bin/android_editor.apk``. +The resulting APK will be located at ``bin/android_editor_builds/android_editor-release.apk``. Removing the Editor templates ----------------------------- @@ -235,9 +235,9 @@ You can use the following commands to remove the generated editor templates: cd platform/android/java # On Windows - .\gradlew cleanGodotEditor + .\gradlew clean # On Linux and macOS - ./gradlew cleanGodotEditor + ./gradlew clean Installing the Godot editor --------------------------- @@ -247,7 +247,7 @@ Open up a Terminal/Command Prompt and run the following commands from the root d :: - adb install ./bin/android_editor.apk + adb install ./bin/android_editor_builds/android_editor-release.apk Troubleshooting --------------- diff --git a/tutorials/export/android_custom_build.rst b/tutorials/export/android_gradle_build.rst similarity index 64% rename from tutorials/export/android_custom_build.rst rename to tutorials/export/android_gradle_build.rst index f4c49a694..17c373c91 100644 --- a/tutorials/export/android_custom_build.rst +++ b/tutorials/export/android_gradle_build.rst @@ -1,10 +1,10 @@ -.. _doc_android_custom_build: +.. _doc_android_gradle_build: -Custom builds for Android +Gradle builds for Android ========================= -Godot provides the option to use custom build Android templates. Instead of -using the already pre-built template that ships with Godot, an actual Android +Godot provides the option to build using the gradle buildsystem. Instead of +using the already pre-built template that ships with Godot, an Android Java project gets installed into your project folder. Godot will then build it and use it as an export template every time you export the project. @@ -13,45 +13,44 @@ There are some reasons why you may want to do this: * Modify the project before it's built. * Add external SDKs that build with your project. -Configuring the custom build is a fairly straightforward process. But first +Configuring the gradle build is a fairly straightforward process. But first you need to follow the steps in :ref:`exporting for android` up to **Setting it up in Godot**. After doing that, follow the steps below. -Set up the custom build environment +Set up the gradle build environment ----------------------------------- -Go to the Project menu, and install the *Custom Build* template: +Go to the Project menu, and install the *Gradle Build* template: -.. image:: img/custom_build_install_template.png +.. image:: img/gradle_build_install_template.webp Make sure export templates are downloaded. If not, this menu will help you download them. A Gradle-based Android project will be created under ``res://android/build``. -Editing these files is not needed unless you want to :ref:`create -your own add-ons`, or you really need to modify the project. +Editing these files is not needed unless you really need to modify the project. -Enabling the custom build and exporting +Enabling the gradle build and exporting --------------------------------------- When setting up the Android project in the **Project > Export** dialog, -**Custom Build** needs to be enabled: +**Gradle Build** needs to be enabled: -.. image:: img/custom_build_enable.png +.. image:: img/gradle_build_enable.webp From now on, attempting to export the project or one-click deploy will call the `Gradle `__ build system to generate fresh templates (this window will appear every time): -.. image:: img/custom_build_gradle.png +.. image:: img/gradle_build_gradle.webp The templates built will be used automatically afterwards, so no further configuration is needed. .. note:: - When using the custom Android build system, assets that are placed within a + When using the gradle Android build system, assets that are placed within a folder whose name begins with an underscore will not be included in the generated APK. This does not apply to assets whose *file* name begins with an underscore. diff --git a/tutorials/export/img/custom_build_enable.png b/tutorials/export/img/custom_build_enable.png deleted file mode 100644 index 8c3c1be1a10c17b06c777c9b43cfc150a0845c7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33482 zcma&N1yqz>7e5LrqDUwyARtON0@9!`bPnBvfW*KMQqqbF3sZ z4{z}LwO7@1C`zg1GyGkz#4mXool}sz*;3$>X?m!8`KpZjg2+6%kV4 z<1rkd_m1I;jq9%MH))mzrbZ3nqpB)|~gm5xwc_QEMq1K$(-J+A3qFDk72(wI3( zjF;01QuEzZH8VOYmRhu9_8p~73fMNB$*^6 z`*|F_+Srt)AKrlHFm}T(oI?sTtzsdAWwM}yE-HV#YFgc_$kRF1%#e$ zRER%jt<@68wln$&CV0*CIT%lg-L_dhf(0wW8uRC)7`A{7+GwFua5GPg zul~(1_Ob5@#;cl_gX?dsdVlqIh#F7%898ircS&X`p?~ES>)~)JeQL4HX|Fo+fF<5d z-k6lm;?@dP?TWWQZBnq13iG`2yYEgq)o|2H8S`Xgd`7qdmZMotRb3PR$t^}3P6dGx zHrfQ`ctdYAuZn6n$CfyirOLP5Ui#i;Wc3A8Cb{cLY1Qkqx)&-@&rydfKakFSJ0>0` z12J(1kM5^rc92+gYBx!MW3hie0zXq2+`$5l^&O2WhxQ1{5V^!P{T$gpIA&|9jO0I= zmkFs9`$L!}CD1-nDd@?g&SS30>97<-D>;VpYZX zos{)m!W#?kFn}G2*AdyW7Hd=EN4D|^uDg!|e7!*mIK~E9D+&m#BquWk+XeCg(o`c0 z;_ry>VL$V{S5C#*;R!coMfB@k!>12&+cKA4hRZMLCI^iylq3w(oP8)&E3HJT#ftp? zPCcTC@L-J9%HcbvN_Tw$9ceJtwg+JyTb^l$v*>57oLG8c73H5`^fbsHQKk-LWXcS2 z79K|kN0Q!;S&aj!`0?F^a#ql(vGYa~S}je>GA@oWpuhcc5pS44;N+i2bmmS3VZDHW zt<17Xv~%G@Cy*OhKH`y$2ogs0uA!QCAHxEDFN>?Diri5VRKzPlzy{iH(Spo6l|bjj zGv?G>C|AoM+t}QP1zmf)kjr;b1j(;><8>m3_YacBkMg=RGS-zVb(T;r8OR$VC*P@b zaj;TT0kdax%9HTBk!n_ds?NJtK5~)axqzZp*%7Q?6x@D?QrCcRV+Eb7E1V8 zemY2D@FRLl5)PeDf_QH%Qd>2C<(2YjnF#T97&Rv_wHDK z$M|4=WG;sM`Nn>wPrZSH7LM_aV{%$?TdIdCxiuGdDEGc?UZ;V&m2s!w6go&s{dujQ zi8gU^vfl}!;6f>q1(1`&l#jjfl$TbPX|9ylh`NQhDsVznu+E;SJj*p&Ox^+!a~1`2 zCb`QkcmOxL-y&j*qO+J{uh!tN(!(BW0@H51e#q?>d--6}M1>WmR<-91E4&olCi zM!ukX+xy3PzDH^IYsX6NaknuoswHtc*l+1hlsXt-7*0|7P5m_isC&9ws>D zRf>e&nlhLf)Cp?2ayfUJjQat}x|Hv~cc3!K=gcmhKCmL3MWPwvb=p?SHuQUJZHB^u z?_;n|K@X%d-T&T=7sNv@L5;JK6r61CE=0DDH5!*cCHWWLdCdnl-EvPf@DjfuA@XVy z%d_`6uThAm^}XBiH4Tj^J#(~v@iv$8)5t0ZRYLb_O?Pc7!Hf2sHO`HTM7Ku+R$^`4 z&plDqXR<7-JGKJ+#waZZdC5&tDI#DCaajiY0>S9gwouCoNhTa>L#;i8=|6& z=%LLEZ!9VEXQ&}V61!mT%{r%HudHb{+nK3gIlTPf#6y)sd4wg4=qwGNcsVhEJyD>W zO#`$Nus#cC2TTRiOM!i10wj~uszaTBX65IgUUUlH89nK{duFOyFV*iUjImof`wp}J zsR)q56h(cY{YuWs96v0b0v@aS&Z|`q@W6!D-on{t+>v*-!%Gh^X<`?o^$tpu%+CJ^ zZBao|tl^Y9oU+OzG}Jxy#|6vRcWJ2NpDXNtlZ$FCJ@4-{l>F=kI68fWK`H|z0~C2L zo&hTP@rL8;brO^Uf{Itb<3!psr#rpT>_=&n^3y_4x#DCKvYCB=ppI>-qcT@dZiN^<0W@nVUE!W~K%)RC&azIU7QJ+h40NCo)i_8VS`O zcX%rV`P$xGW@ZF0(O)4PLb&s5@#yjV6Qr!oOnWJmOrctd$WwO3I!kpD>NA~Lvdo|D zHnFyM;d>M`1Z-JrnDg zg!PEJDjKJa3Q1ri;tU{1WNec;9~DdYiMz^eYhs!GS_TnohXH*;4;ew!q0OQ!X2AbOmz8Cj(K7z;QfdM!`BDaUhuYkwWQM zlHL#NyC%i`3}AHZbf_99i~j1Cm6Rg7Btd5>ZAcOEQj!T>VMh>fD9vKEgk7OUZ0v`% z?NBBOxjcWLR_s@N0mgN`dF2$mUo(JxDBAjdH5>41sd($-{>xKb#gYGau>XJifxm&~ zKQ4mie9Ym370XoHHZ-gLOwJD%OK*so87+C)NrQ#Oe5kNLcZu~bGzJ9t06f60On(!? zdiN3tR{^&I@Nw1Hb4BkzKN--yhs=JcbX2+|XNg5E-JL6E@X$HLOWzmu+ois zhI*bf4xU{i#?rJ`2BPkQ};3c7%zob-s)+Uu)d1-_z%9J-lVEcJ#Xp)>;M=HE%A1t$A4u zC6uhXF_YojAI*1r`esY~Hclow()ZeO=K7J+2#UVB%J}iV&QcppMKCWsGMvTSgih4W z>Nf2i`uXx_=&{z(4I1Xh>BKxzq{9n7Nn=b<`+=un%Uoo$74~z4#Tw?Z8OhZFaGjCv zsKo3yFQo3El}J!TM3hcXdU+q;=~eZG=GCwajNZMyrqKpdz_R5rI)4%!#~k^BUU~7`6bx6_!&o!&Qo99QQ5D5%BhY^6t2ow;`UX(muu3m=wu5c zpuq#y>IEyOu0LQ1#mv>W28NaTbb>I#UGwsqxb|@3m`b;%!})!wVh!PMCQ^6O;5X)Q z6uzi3$YI=zxBX)42{T*mmD--Af07)bH_$RTI@wzq>_RkA|Br zu*6UkPb9Z_}}o?zT*uaqRa z-+I2hLy|=HMY%MmQk+AC?4@O|;pt3MU_g#DhLnWN;j%;+ZQiEFX;>U~&E#?}%J6%W z^czJsswHlNPk{n!WzaZl*+MuWwYdOnQHnv-X@&R+zj89OPO!0m{pC0hU%B_uRFinQ z5K_-!ZJra7^GF@@_+uZ4GbBAQnf)E)lC-IZLQktX=rP`{+ifrBI&w2>JobhMxQ#Y7 zG_AU})+KgUht>kaX}KYlCdwzbWNBdberJapky*VlToCum#@DZmbqkDo+4ILxOOFu> z?Mgv&nVh1j5Grzm@U2yQb>Zy78qjl1x@(isHoIR#fI>NPD)9 z4?piBtyWDHueWZ8F3@F&MMuSi?^yLhYTlmg%4;UZ`hEO;Bf5F8+I@>w!W+N*G8bOu ziQ_O@MqT}2=4S&FM7xyVM4ykqER>k`lQaeW`B4vv)E$*U7lWD~PHg5P;@B^v-e(wB zyrpEV1rA)QWu6OXr{foEiOKd50tC=Ad&D6%H`*!BzX z;jQof2+0#a^ZWAsceCA$#vTRoKKr<6*vrQ4cQ|?h33U^%KM6tCrJfX7ImstI94*

ihT}Mjy^s?d}aUb(K5j>!cSESjgp$6bXRh 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

GeiaaWry9I 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%0Dn0< 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 literal 0 HcmV?d00001 diff --git a/tutorials/export/img/gradle_build_gradle.webp b/tutorials/export/img/gradle_build_gradle.webp new file mode 100644 index 0000000000000000000000000000000000000000..d747f0c868a354b22cc83d0f49053451dcc5dcee GIT binary patch literal 9568 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 Cp1X+v literal 0 HcmV?d00001 diff --git a/tutorials/export/index.rst b/tutorials/export/index.rst index cf4430173..7a2cc76df 100644 --- a/tutorials/export/index.rst +++ b/tutorials/export/index.rst @@ -16,7 +16,7 @@ Export exporting_for_uwp exporting_for_ios exporting_for_android - android_custom_build + android_gradle_build exporting_for_web exporting_for_dedicated_servers one-click_deploy diff --git a/tutorials/platform/android/android_in_app_purchases.rst b/tutorials/platform/android/android_in_app_purchases.rst index fb7ba07bc..90540645d 100644 --- a/tutorials/platform/android/android_in_app_purchases.rst +++ b/tutorials/platform/android/android_in_app_purchases.rst @@ -1,17 +1,9 @@ -:article_outdated: True - .. _doc_android_in_app_purchases: Android in-app purchases ======================== -Godot offers a first-party ``GodotGooglePlayBilling`` Android plugin compatible with Godot 3.2.2 and higher. -This plugin uses the `Google Play Billing library `__ -instead of the now deprecated AIDL IAP implementation. For details of how to migrate from the older -``GodotPaymentsV3``, see the migration guide: `Migrating from Godot 3.2.1 and lower (GodotPaymentsV3)`_. - -If you learn better by looking at an example, you can find the demo project -`here `__. +Godot offers a first-party ``GodotGooglePlayBilling`` Android plugin compatible with Godot 4 which uses the `Google Play Billing library `_. Usage @@ -20,13 +12,9 @@ Usage Getting started *************** -Make sure you have enabled and successfully set up :ref:`Android Custom Builds `. +Make sure you have enabled and successfully set up :ref:`Android Gradle Builds `. Follow the compiling instructions on the ``GodotGooglePlayBilling`` `github page `__. -.. note:: - - If you use a custom build you possibly have to put your own `godot-lib.***.release.aar` file in the `./godot-google-play-billing/libs/` folder. - Then put the files `./godot-google-play-billing/build/outputs/aar/GodotGooglePlayBilling.***.release.aar` and `./GodotGooglePlayBilling.gdap` into your project in the `res://android/plugins` folder. The plugin should now show up in the Android export settings, where you can enable it. @@ -35,7 +23,7 @@ The plugin should now show up in the Android export settings, where you can enab Initialize the plugin ********************* -To use the ``GodotGooglePlayBilling`` API: +To use the ``GodotGooglePlayBilling`` API: 1. Obtain a reference to the ``GodotGooglePlayBilling`` singleton 2. Connect handlers for the plugin signals @@ -70,7 +58,7 @@ Initialization example: payment.startConnection() else: - print("Android IAP support is not enabled. Make sure you have enabled 'Custom Build' and the GodotGooglePlayBilling plugin in your Android export settings! IAP will not work.") + print("Android IAP support is not enabled. Make sure you have enabled 'Gradle Build' and the GodotGooglePlayBilling plugin in your Android export settings! IAP will not work.") The API must be in a connected state prior to use. The ``connected`` signal is sent when the connection process succeeds. You can also use ``isReady()`` to determine if the plugin @@ -123,7 +111,7 @@ Query user purchases To retrieve a user's purchases, call the ``queryPurchases()`` function passing a string with the type of SKU to query. The SKU type string should be ``"inapp"`` for normal in-app purchases or ``"subs"`` for subscriptions. -The ``query_purchases_response`` signal is sent with the result. +The ``query_purchases_response`` signal is sent with the result. The signal has a single parameter: a :ref:`Dictionary ` with a status code and either an array of purchases or an error message. Only active subscriptions and non-consumed one-time purchases are @@ -224,7 +212,7 @@ Purchase fields: Check purchase state ******************** -Check the ``purchase_state`` value of a purchase to determine if a +Check the ``purchase_state`` value of a purchase to determine if a purchase was completed or is still pending. PurchaseState values: @@ -233,8 +221,8 @@ PurchaseState values: # Matches Purchase.PurchaseState in the Play Billing Library enum PurchaseState { - UNSPECIFIED, - PURCHASED, + UNSPECIFIED, + PURCHASED, PENDING, } @@ -255,7 +243,7 @@ If your in-app item is not a one-time purchase but a consumable item (e.g. coins multiple times, you can consume an item by calling ``consumePurchase()`` passing the ``purchase_token`` value from the purchase dictionary. Calling ``consumePurchase()`` automatically acknowledges a purchase. -Consuming a product allows the user to purchase it again, it will no longer appear +Consuming a product allows the user to purchase it again, it will no longer appear in subsequent ``queryPurchases()`` calls unless it is repurchased. Example use of ``consumePurchase()``: @@ -347,11 +335,11 @@ The proration values are defined as: :: enum SubscriptionProrationMode { - # Replacement takes effect immediately, and the remaining time + # Replacement takes effect immediately, and the remaining time # will be prorated and credited to the user. IMMEDIATE_WITH_TIME_PRORATION = 1, - # Replacement takes effect immediately, and the billing cycle remains the same. - # The price for the remaining period will be charged. + # Replacement takes effect immediately, and the billing cycle remains the same. + # The price for the remaining period will be charged. # This option is only available for subscription upgrade. IMMEDIATE_AND_CHARGE_PRORATED_PRICE, # Replacement takes effect immediately, and the new price will be charged on @@ -395,20 +383,3 @@ Example use of ``confirmPriceChange()``: print("price_change_accepted") elif response_id == BillingResponse.CANCELED: print("price_change_canceled") - - -Migrating from Godot 3.2.1 and lower (GodotPaymentsV3) ------------------------------------------------------- - -The new ``GodotGooglePlayBilling`` API is not compatible with its predecessor ``GodotPaymentsV3``. - -Changes -******* - -- You need to enable the Custom Build option in your Android export settings and install - the ``GodotGooglePlayBilling`` plugin manually (see below for details) -- All purchases have to be acknowledged by your app. This is a - `requirement from Google `__. - Purchases that are not acknowledged by your app will be refunded. -- Support for subscriptions -- Signals (no polling or callback objects) diff --git a/tutorials/platform/android/android_library.rst b/tutorials/platform/android/android_library.rst new file mode 100644 index 000000000..736b2fba1 --- /dev/null +++ b/tutorials/platform/android/android_library.rst @@ -0,0 +1,240 @@ +.. _doc_android_library: + +Godot Android Library +===================== + +The Godot Engine for Android platforms is designed to be used as an `Android library `_. +This architecture enables several key features on Android platforms: + +- Ability to integrate the Gradle build system within the Godot Editor, which provides the ability to leverage more components from the Android ecosystem such as libraries and tools + +- Ability to make the engine portable and embeddable: + + - Key in enabling the port of the Godot Editor to Android and mobile XR devices + - Key in allowing the integration and reuse of Godot's capabilities within existing codebase + +Below we describe some of the use-cases and scenarios this architecture enables. + +Using the Godot Android library +------------------------------- + +The Godot Android library is packaged as an AAR archive file and hosted on `MavenCentral `_ along with `its documentation `_. + +It is used to provide access to Godot APIs and capabilities on Android platforms for the following (non-exhaustive) use-cases. + +Godot Android plugins +--------------------- + +Android plugins are powerful tools to extend the capabilities of the Godot Engine +by tapping into the functionality provided by Android platforms and ecosystem. + +They are also Android libraries with a dependency on the Godot Android library +which is used for access to the Godot APIs and integration into the engine's lifecycle. + +They offer similar features to the Godot Android library, +notably the ability to integrate with the Gradle (or other Android supported) build system, +and the ability to be portable and embeddable. + +Access to Godot APIs and lifecycle grants Android plugins powerful capabilities +such as GDExtension which allows to update / mod the engine behavior as needed. + +For more information, see :ref:`Godot Android plugins `. + +Embedding Godot in existing Android projects +-------------------------------------------- + +The Godot Engine can be integrated within existing Android applications or libraries, +allowing developers to leverage mature and battle-tested code and libraries better suited to a specific task. + +The hosting component is responsible for driving the engine lifecycle via Godot's Android APIs. +These APIs can also be used to provide bidirectional communication between the host and the running Godot instance allowing for greater control over the desired experience. + +We showcase how this is done using a sample Android app that uses the Godot Engine as an embeddable Android view to render 3D GLTF models. + +The `GLTF Viewer `_ sample app uses an `Android RecyclerView component `_ to create +and populate a list of GLTF items from `Kenney's Food Kit pack `_. +When an item on the list is selected, the app's logic interacts with the embedded Godot Engine to render the selected GLTF item as a 3D model. + +.. image:: img/gltf_viewer_sample_app_screenshot.webp + +The sample app source code can be found `on GitHub `_. +Follow the instructions on `its README `_ to build and install it. + +Below we break-down the steps used to create the GLTF Viewer app. + +.. warning:: + + Currently only a single instance of the Godot Engine is supported per process. + You can configure the process the Android Activity runs under using the `android:process attribute `_. + +.. warning:: + + Automatic resizing / orientation configuration events are not supported and may cause a crash. + You can disable those events: + + - By locking to a specific orientation using the `android:screenOrientation attribute `_. + - By declaring that the Activity will handle these configuration events using the `android:configChanges attribute `_. + +1. Create the Android app +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. note:: + + The Android sample app was created using `Android Studio `_ + and using `Gradle `_ as the build system. + + The Android ecosystem provides multiple tools, IDEs, build systems for creating Android apps + so feel free to use what you're familiar with, and update the steps below accordingly (contributions to this documentation are welcomed as well!). + + +- Set up an Android application project. It may be a brand new empty project, or an existing project +- Add the `maven dependency for the Godot Android library `_ + + - If using ``gradle``, add the following to the ``dependency`` section of the app's gradle build file. Make sure to update ```` to the latest version of the Godot Android library: + + .. code-block:: kotlin + + implementation("org.godotengine:godot:") + +- If using ``gradle``, include the following ``aaptOptions`` configuration under the ``android > defaultConfig`` section of the app's gradle build file. Doing so allows ``gradle`` to include Godot's hidden directories when building the app binary. + + - If your build system does not support including hidden directories, you can `configure the Godot project to not use hidden directories `_ by deselecting ``Project Settings... > Application > Config > Use Hidden Project Data Directory``. + +.. code-block:: groovy + + android { + + defaultConfig { + // The default ignore pattern for the 'assets' directory includes hidden files and + // directories which are used by Godot projects, so we override it with the following. + aaptOptions { + ignoreAssetsPattern "!.svn:!.git:!.gitignore:!.ds_store:!*.scc:

_*:!CVS:!thumbs.db:!picasa.ini:!*~" + } + ... + +- Create / update the application's Activity that will be hosting the Godot Engine instance. For the sample app, this is `MainActivity `_ + + - The host Activity should implement the `GodotHost interface `_ + - The sample app uses `Fragments `_ to organize its UI, so it uses `GodotFragment `_, a fragment component provided by the Godot Android library to automatically host and manage the Godot Engine instance. + + .. code-block:: kotlin + + private var godotFragment: GodotFragment? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContentView(R.layout.activity_main) + + val currentGodotFragment = supportFragmentManager.findFragmentById(R.id.godot_fragment_container) + if (currentGodotFragment is GodotFragment) { + godotFragment = currentGodotFragment + } else { + godotFragment = GodotFragment() + supportFragmentManager.beginTransaction() + .replace(R.id.godot_fragment_container, godotFragment!!) + .commitNowAllowingStateLoss() + } + + ... + +.. note:: + + The Godot Android library also provide `GodotActivity `_, an Activity component that can be extended to automatically host and manage the Godot Engine instance. + + Alternatively, applications can directly create a `Godot `_ instance, host and manage it themselves. + +- Using `GodotHost#getHostPlugins(...) `_, the sample app creates a `runtime GodotPlugin instance `_ that's used to send :ref:`signals ` to the ``gdscript`` logic + + - The runtime ``GodotPlugin`` can also be used by ``gdscript`` logic to access JVM methods. For more information, see :ref:`Godot Android plugins `. + +- Add any additional logic that will be used by your application + + - For the sample app, this includes adding the `ItemsSelectionFragment fragment `_ (and related classes), a fragment used to build and show the list of GLTF items + +- Open the ``AndroidManifest.xml`` file, and configure the orientation if needed using the `android:screenOrientation attribute `_ + + - If needed, disable automatic resizing / orientation configuration changes using the `android:configChanges attribute `_ + +.. code-block:: xml + + + + ... + + + +2. Create the Godot project +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. note:: + + On Android, Godot's project files are exported to the ``assets`` directory of the generated ``apk`` binary. + + We use that info to bind our Android app and Godot project together by creating the Godot project in the Android app's ``assets`` directory. + + Note that it's also possible to create the Godot project in a separate directory and export it as a `PCK or ZIP file `_ + to the Android app's ``assets`` directory. + Using this approach requires passing the ``--main-pack `` argument to the hosted Godot Engine instance using `GodotHost#getCommandLine() `_. + + The instructions below (and the sample app) follow the first approach of creating the Godot project in the Android app's ``assets`` directory. + + +- As mentioned in the **note** above, open the Godot Editor and create a Godot project directly (no subfolder) in the ``assets`` directory of the Android application project + + - See the sampple app's `Godot project `_ for reference + +- Configure the Godot project as desired + + - Make sure the `orientation `_ set for the Godot project matches the one set in the Android app's manifest + - For Android, make sure `textures/vram_compression/import_etc2_astc `_ is set to `true` + +- Update the Godot project script logic as needed + + - For the sample app, the `script logic `_ queries for the runtime ``GodotPlugin`` instance and uses it to register for signals fired by the app logic + - The app logic fires a signal every time an item is selected in the list. The signal contains the filepath of the GLTF model, which is used by the ``gdscript`` logic to render the model. + + .. code-block:: gdscript + + extends Node3D + + # Reference to the gltf model that's currently being shown. + var current_gltf_node: Node3D = null + + func _ready(): + # Default asset to load when the app starts + _load_gltf("res://gltfs/food_kit/turkey.glb") + + var appPlugin = Engine.get_singleton("AppPlugin") + if appPlugin: + print("App plugin is available") + + # Signal fired from the app logic to update the gltf model being shown + appPlugin.connect("show_gltf", _load_gltf) + else: + print("App plugin is not available") + + + # Load the gltf model specified by the given path + func _load_gltf(gltf_path: String): + if current_gltf_node != null: + remove_child(current_gltf_node) + + current_gltf_node = load(gltf_path).instantiate() + + add_child(current_gltf_node) + + +3. Build and run the app +^^^^^^^^^^^^^^^^^^^^^^^^ + +Once you complete configuration of your Godot project, build and run the Android app. +If set up correctly, the host Activity will initialize the embedded Godot Engine on startup. +The Godot Engine will check the ``assets`` directory for project files to load (unless configured to look for a ``main pack``), and will proceed to run the project. + +While the app is running on device, you can check `Android logcat `_ to investigate any errors or crashes. + +For reference, check the `build and install instructions `_ for the GLTF Viewer sample app. diff --git a/tutorials/platform/android/android_plugin.rst b/tutorials/platform/android/android_plugin.rst index 838433e7c..10899fa36 100644 --- a/tutorials/platform/android/android_plugin.rst +++ b/tutorials/platform/android/android_plugin.rst @@ -1,165 +1,369 @@ -:article_outdated: True - .. _doc_android_plugin: -Creating Android plugins -======================== +Godot Android plugins +===================== Introduction ------------ Android plugins are powerful tools to extend the capabilities of the Godot engine -by tapping into the functionality provided by the Android platform and ecosystem. +by tapping into the functionality provided by Android platforms and ecosystem. -Mobile gaming monetization is one such example since it requires features -and capabilities that don't belong to the core feature set of a game engine: - -- Analytics -- In-app purchases -- Receipt validation -- Install tracking -- Ads -- Video ads -- Cross-promotion -- In-game soft & hard currencies -- Promo codes -- A/B testing -- Login -- Cloud saves -- Leaderboards and scores -- User support & feedback -- Posting to Facebook, Twitter, etc. -- Push notifications +For example in Godot 4, Android plugins are used to support multiple Android-based +XR platforms without encumbering the core codebase with vendor specific code or binaries. Android plugin -------------- -While introduced in Godot 3.2, the Android plugin system got a significant architecture update starting with Godot 3.2.2. -The new plugin system is backward-incompatible with the previous one and in Godot 4.0, the previous system was fully deprecated and removed. -Since we previously did not version the Android plugin systems, the new one is now labelled ``v1`` and is the starting point for the modern Godot Android ecosystem. +**Version 1 (v1)** of the Android plugin system was introduced in Godot 3 and compatible with Godot 4.0 and 4.1. +That version allowed developers to augment the Godot engine with Java, Kotlin and native functionality. -As a prerequisite, make sure you understand how to set up a :ref:`custom build environment` for Android. +Starting in Godot 4.2, Android plugins built on the v1 architecture are now deprecated. +Instead, Godot 4.2 introduces a new **Version 2 (v2)** architecture for Android plugins. -At its core, a Godot Android plugin is a `Android archive library `_ (*aar* archive file) -with the following caveats: +v2 Architecture +^^^^^^^^^^^^^^^ -- The library must have a dependency on the Godot engine library (``godot-lib...aar``). A stable version is made available for each Godot release on the `Godot download page `_. -- The library must include a specifically configured ```` tag in its manifest file. +.. note:: -Building an Android plugin -^^^^^^^^^^^^^^^^^^^^^^^^^^ + Godot Android plugin leverages the :ref:`Gradle build system `. -**Prerequisite:** `Android Studio `_ is strongly recommended as the IDE to use to create Android plugins. -The instructions below assumes that you're using Android Studio. -1. Follow `these instructions `__ to create an Android library module for your plugin. +Building on the previous architecture, Android plugins continue to be derived from the +`Android archive library `_. -2. Add the Godot engine library as a dependency to your plugin module: +At its core, a Godot Android plugin v2 is an Android library with a dependency on the :ref:`Godot Android library `, +and a custom Android library manifest. - - Download the Godot engine library (``godot-lib...aar``) from the `Godot download page `_ (e.g: ``godot-lib.4.0.stable.aar``). - - Follow `these instructions `__ to add - the Godot engine library as a dependency for your plugin. - - In the plugin module's ``build.gradle`` file, replace ``implementation`` with ``compileOnly`` for the dependency line for the Godot engine library. +This architecture allows Android plugins to extend the functionality of the engine with: -3. Create a new class in the plugin module and make sure it extends ``org.godotengine.godot.plugin.GodotPlugin``. - At runtime, it will be used to instantiate a singleton object that will be used by the Godot engine to load, initialize and run the plugin. +- Android platform APIs +- Android libraries +- Kotlin and Java libraries +- Native libraries (via JNI) +- GDExtension libraries -4. Update the plugin ``AndroidManifest.xml`` file: +Each plugin has an init class extending from the `GodotPlugin class `_ +which is provided by the :ref:`Godot Android library `. - - Open the plugin ``AndroidManifest.xml`` file. - - Add the ```` tag if it's missing. - - In the ```` tag, add a ```` tag setup as follow:: +The ``GodotPlugin`` class provides APIs to access the running Godot instance and hook into its lifecycle. It is loaded at runtime by the Godot engine. + +v2 Packaging format +^^^^^^^^^^^^^^^^^^^ + +v1 Android plugins required a custom ``gdap`` configuration file that was used by the Godot Editor to detect and load them. +However this approach had several drawbacks, primary ones being that it lacked flexibility and departed from the `existing +Godot EditorExportPlugin format, delivery and installation flow `_. + +This has been resolved for v2 Android plugins by deprecating the ``gdap`` packaging and configuration mechanism in favor of +the existing Godot ``EditorExportPlugin`` packaging format. +The ``EditorExportPlugin`` API in turn has been extended to properly support Android plugins. + + +Building a v2 Android plugin +---------------------------- + +A github project template **is provided** at https://github.com/m4gr3d/Godot-Android-Plugin-Template as a **quickstart for building +Godot Android plugins for Godot 4.2+**. +You can follow the `template README `_ +to set up your own Godot Android plugin project. + +To provide further understanding, here is a break-down of the steps used to create the project template: + +1. Create an Android library module using `these instructions `_ + +2. Add the Godot Android library as a dependency by updating the module's ``gradle`` `build file `_.:: + + dependencies { + implementation("org.godotengine:godot:4.2.0.stable") + } + + The Godot Android library is `hosted on MavenCentral `_, and updated for each release. + +3. Create `GodotAndroidPlugin `_, an init class for the plugin extending `GodotPlugin `_. + + - If the plugin exposes Kotlin or Java methods to be called from GDScript, they must be annotated with `@UsedByGodot `_. The name called from GDScript **must match the method name exactly**. There is **no** coercing ``snake_case`` to ``camelCase``. For example, from GDScript:: + + if Engine.has_singleton("MyPlugin"): + var singleton = Engine.get_singleton("MyPlugin") + print(singleton.myPluginFunction("World")) + + - If the plugin uses `signals `_, the init class must return the set of signals used by overriding `GodotPlugin::getPluginSignals() `_. To emit signals, the plugin can use the `GodotPlugin::emitSignal(...) method `_. + +4. Update the plugin ``AndroidManifest.xml`` `file `_ with the following meta-data:: - Where ``PluginName`` is the name of the plugin, and ``plugin.init.ClassFullName`` is the full name (package + class name) of the plugin loading class. -5. Add the remaining logic for your plugin and run the ``gradlew build`` command to generate the plugin's ``aar`` file. - The build will likely generate both a ``debug`` and ``release`` ``aar`` files. - Depending on your need, pick only one version (usually the ``release`` one) which to provide your users with. + Where: - It's recommended that the ``aar`` filename matches the following pattern: ``[PluginName]*.aar`` where ``PluginName`` is the name of the plugin in PascalCase (e.g.: ``GodotPayment.release.aar``). + - ``PluginName`` is the name of the plugin + - ``plugin.init.ClassFullName`` is the full name (package + class name) of the plugin loading class (e.g: ``org.godotengine.plugin.android.template.GodotAndroidPlugin``). -6. Create a Godot Android Plugin configuration file to help the system detect and load your plugin: +5. Create the `EditorExportPlugin configuration `_ to package the plugin. The steps used to create the configuration can be seen in the `Packaging a v2 Android plugin`_ section. - - The configuration file extension must be ``gdap`` (e.g.: ``MyPlugin.gdap``). - - The configuration file format is as follow:: - [config] +Building a v2 Android plugin with GDExtension capabilities +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - name="MyPlugin" - binary_type="local" - binary="MyPlugin.aar" +Similar to GDNative support in v1 Android plugins, v2 Android plugins support the ability to integrate GDExtension capabilities. - [dependencies] +A github project template is provided at https://github.com/m4gr3d/GDExtension-Android-Plugin-Template as a quickstart for building +GDExtension Android plugins for Godot 4.2+. +You can follow the `template's README `_ +to set up your own Godot Android plugin project. - local=["local_dep1.aar", "local_dep2.aar"] - remote=["example.plugin.android:remote-dep1:0.0.1", "example.plugin.android:remote-dep2:0.0.1"] - custom_maven_repos=["https://repo.mycompany.com/maven2"] - The ``config`` section and fields are required and defined as follow: - - - **name**: name of the plugin. - - **binary_type**: can be either ``local`` or ``remote``. The type affects the **binary** field. - - **binary**: - - - If **binary_type** is ``local``, then this should be the filepath of the plugin ``aar`` file. - - - The filepath can be relative (e.g.: ``MyPlugin.aar``) in which case it's relative to the ``res://android/plugins`` directory. - - The filepath can be absolute: ``res://some_path/MyPlugin.aar``. - - - If **binary_type** is ``remote``, then this should be a declaration for a `remote gradle binary `_ (e.g.: ``org.godot.example:my-plugin:0.0.0``). - - The ``dependencies`` section and fields are optional and defined as follow: - - - **local**: contains a list of filepaths to the local ``.aar`` binary files the plugin depends on. Similarly to the ``binary`` field (when the ``binary_type`` is ``local``), the local binaries' filepaths can be relative or absolute. - - **remote**: contains a list of remote binary gradle dependencies for the plugin. - - **custom_maven_repos**: contains a list of URLs specifying the custom maven repositories required for the plugin's dependencies. - -Loading and using an Android plugin +Migrating a v1 Android plugin to v2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Move the plugin configuration file (e.g: ``MyPlugin.gdap``) and, if any, its local binary (e.g: ``MyPlugin.aar``) and dependencies to the Godot project's ``res://android/plugins`` directory. +Use the following steps if you have a v1 Android plugin you want to migrate to v2: -The Godot editor will automatically parse all ``.gdap`` files in the ``res://android/plugins`` directory and show a list of detected and toggleable plugins in the Android export presets window under the **Plugins** section. +1. Update the plugin's manifest file: -In order to allow GDScript to communicate with your Java Singleton, you must annotate your function with ``@UsedByGodot``. The name called from GDScript must match the function name exactly. There is **no** coercing ``snake_case`` to ``camelCase``. + - Change the ``org.godotengine.plugin.v1`` prefix to ``org.godotengine.plugin.v2`` -.. image:: img/android_export_preset_plugins_section.png +2. Update the Godot Android library build dependency: -From your script:: + - You can continue using the ``godot-lib...aar`` binary from `Godot's download page `_ if that's your preference. Make sure it's updated to the latest stable version. + - Or you can switch to the MavenCentral provided dependency:: + + dependencies { + implementation("org.godotengine:godot:4.2.0.stable") + } + +3. After updating the Godot Android library dependency, sync or build the plugin and resolve any compile errors: + + - The ``Godot`` instance provided by ``GodotPlugin::getGodot()`` no longer has access to a ``android.content.Context`` reference. Use ``GodotPlugin::getActivity()`` instead. + +4. Delete the ``gdap`` configuration file(s) and follow the instructions in the `Packaging a v2 Android plugin`_ section to set up the plugin configuration. + +Packaging a v2 Android plugin +----------------------------- + +As mentioned, a v2 Android plugin is now provided to the Godot Editor as an ``EditorExportPlugin plugin``, so it shares a lot of the `same packaging steps `_. + +1. Add the plugin output binaries within the plugin directory (e.g: in ``addons//``) + +2. Add the `tool script `_ for the export functionality within the plugin directory (e.g: in ``addons//``) + + - The created script must be ``@tool`` script, or else it will not work properly + - The export tool script is used to configure the Android plugin and hook it within the Godot Editor's export process. It should look something like this:: + + @tool + extends EditorPlugin + + # A class member to hold the editor export plugin during its lifecycle. + var export_plugin : AndroidExportPlugin + + func _enter_tree(): + # Initialization of the plugin goes here. + export_plugin = AndroidExportPlugin.new() + add_export_plugin(export_plugin) + + + func _exit_tree(): + # Clean-up of the plugin goes here. + remove_export_plugin(export_plugin) + export_plugin = null + + + class AndroidExportPlugin extends EditorExportPlugin: + # Plugin's name. + var _plugin_name = "" + + # Specifies which platform is supported by the plugin. + func _supports_platform(platform): + if platform is EditorExportPlatformAndroid: + return true + return false + + # Return the paths of the plugin's AAR binaries relative to the 'addons' directory. + func _get_android_libraries(platform, debug): + if debug: + return PackedStringArray([""]) + else: + return PackedStringArray([""]) + + # Return the plugin's name. + func _get_name(): + return _plugin_name + + - Here are the set of `EditorExportPlugin APIs `_ most relevant to use in this tool script: + + - `_supports_platform `_: returns ``true`` if the plugin supports the given platform. For Android plugins, this must return ``true`` when ``platform`` is `EditorExportPlatformAndroid `_ + - `_get_android_libraries `_: retrieve the local paths of the Android libraries binaries (AAR files) provided by the plugin + - `_get_android_dependencies `_: retrieve the set of Android maven dependencies (e.g: `org.godot.example:my-plugin:0.0.0`) provided by the plugin + - `_get_android_dependencies_maven_repos `_: retrieve the urls of the maven repos for the android dependencies provided by ``_get_android_dependencies`` + - `_get_android_manifest_activity_element_contents `_: update the contents of the `` element in the generated Android manifest + - `_get_android_manifest_application_element_contents `_: update the contents of the `` element in the generated Android manifest + - `_get_android_manifest_element_contents `_: update the contents of the `` element in the generated Android manifest + + The ``_get_android_manifest_*`` methods allow the plugin to automatically provide changes + to the app's manifest which are preserved when the Godot Editor is updated, resolving a long standing issue with v1 Android plugins. + + +3. Create a ``plugin.cfg``. This is an INI file with metadata about your plugin:: + + [plugin] + + name="" + description="" + author="" + version="" + script="" + +For reference, here is the `folder structure for the Godot Android plugin project template `_. +At build time, the contents of the ``export_scripts_template`` directory as well as the generated plugin binaries are copied to the ``addons/`` directory: + +.. code-block:: none + + export_scripts_template/ + | + +--export_plugin.gd # export plugin tool script + | + +--plugin.cfg # plugin INI file + + +Packaging a v2 Android plugin with GDExtension capabilities +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +For GDExtension, we follow the same steps as for `Packaging a v2 Android plugin`_ and add the `GDExtension config file `_ in +the same location as ``plugin.cfg``. + +For reference, here is the `folder structure for the GDExtension Android plugin project template `_. +At build time, the contents of the ``export_scripts_template`` directory as well as the generated plugin binaries are copied to the ``addons/`` directory: + +.. code-block:: none + + export_scripts_template/ + | + +--export_plugin.gd # export plugin tool script + | + +--plugin.cfg # plugin INI file + | + +--plugin.gdextension # GDExtension config file + + +Here is what the ``plugin.gdextension`` config file should look like:: + + [configuration] + + entry_symbol = "plugin_library_init" + compatibility_minimum = "4.2" + android_aar_plugin = true + + [libraries] + + android.debug.arm64 = "res://addons/GDExtensionAndroidPluginTemplate/bin/debug/arm64-v8a/libGDExtensionAndroidPluginTemplate.so" + android.release.arm64 = "res://addons/GDExtensionAndroidPluginTemplate/bin/release/arm64-v8a/libGDExtensionAndroidPluginTemplate.so" + ... + + +Of note is the ``android_aar_plugin`` field that specifies this GDExtension module is provided as part of a v2 Android plugin. +During the export process, this will indicate to the Godot Editor that the GDExtension native shared libraries are exported by the Android plugin AAR binaries. + +For GDExtension Android plugins, the plugin init class must override `GodotPlugin::getPluginGDExtensionLibrariesPaths() `_, +and return the paths to the bundled GDExtension libraries config files (``*.gdextension``). + +The paths must be relative to the Android library's ``assets`` directory. +At runtime, the plugin will provide these paths to the Godot engine which will use them to load and initialize the bundled GDExtension libraries. + +Using a v2 Android plugin +------------------------- + +.. note:: + + - Godot 4.2 or higher is required + + - v2 Android plugin requires the use of the `Gradle build process `_. + + - The provided github project templates include demo Godot projects for quick testing. + + +1. Copy the plugin's output directory (``addons/``) to the target Godot project's directory + +2. Open the project in the Godot Editor; the Editor should detect the plugin + +3. Navigate to ``Project`` -> ``Project Settings...`` -> ``Plugins``, and ensure the plugin is enabled + +4. Install the Godot Android build template by clicking on ``Project`` -> ``Install Android Build Template...`` + +5. Navigate to ``Project`` -> ``Export...`` + +6. In the ``Export`` window, create an ``Android export preset`` + +7. In the ``Android export preset``, scroll to ``Gradle Build`` and set ``Use Gradle Build`` to ``true`` + +8. Update the project's scripts as needed to access the plugin's functionality. For example:: if Engine.has_singleton("MyPlugin"): - var singleton = Engine.get_singleton("MyPlugin") - print(singleton.myPluginFunction("World")) + var singleton = Engine.get_singleton("MyPlugin") + print(singleton.myPluginFunction("World")) + +9. Connect an Android device to your machine and run the project on it -Bundling GDExtension resources -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Using a v2 Android plugin as an Android library +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -An Android plugin can define and provide C/C++ GDExtension resources, either to provide and/or access functionality from the game logic. -The GDExtension resources can be bundled within the plugin ``aar`` file which simplifies the distribution and deployment process: +Since they are also Android libraries, Godot v2 Android plugins can be stripped from their ``EditorExportPlugin`` packaging and provided as raw ``AAR`` binaries for use as libraries alongside the :ref:`Godot Android library ` by Android apps. -- The shared libraries (``.so``) for the defined GDExtension libraries will be automatically bundled by the ``aar`` build system. -- Godot ``*.gdnlib`` and ``*.gdns`` resource files must be manually defined in the plugin ``assets`` directory. - The recommended path for these resources relative to the ``assets`` directory should be: ``godot/plugin/v1/[PluginName]/``. - -For GDExtension libraries, the plugin singleton object must override the ``org.godotengine.godot.plugin.GodotPlugin::getPluginGDNativeLibrariesPaths()`` method, -and return the paths to the bundled GDExtension libraries config files (``*.gdextension``). The paths must be relative to the ``assets`` directory. -At runtime, the plugin will provide these paths to Godot core which will use them to load and initialize the bundled GDExtension libraries. +If targetting this use-case, make sure to include additional instructions for how the ``AAR`` binaries should be included (e.g: custom additions to the Android app's manifest). Reference implementations -^^^^^^^^^^^^^^^^^^^^^^^^^ +------------------------- -- `Godot Oculus Mobile plugin `_ - - `Bundled gdnative resources `_ -- `Godot Google Play Billing plugin `_ +- `Godot Android Plugins Samples `_ +- `Godot Android Plugin Template `_ +- `GDExtension Android Plugin Template `_ +- `Godot OpenXR Loaders `_ -Troubleshooting ---------------- +Tips and Guidelines +------------------- + +Simplify access to the exposed Java / Kotlin APIs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To make it easier to access the exposed Java / Kotlin APIs in the Godot Editor, it's recommended to +provide one (or multiple) gdscript wrapper class(es) for your plugin users to interface with. + +For example:: + + class_name PluginInterface extends Object + + ## Interface used to access the functionality provided by this plugin. + + var _plugin_name = "GDExtensionAndroidPluginTemplate" + var _plugin_singleton + + func _init(): + if Engine.has_singleton(_plugin_name): + _plugin_singleton = Engine.get_singleton(_plugin_name) + else: + printerr("Initialization error: unable to access the java logic") + + ## Print a 'Hello World' message to the logcat. + func helloWorld(): + if _plugin_singleton: + _plugin_singleton.helloWorld() + else: + printerr("Initialization error") + +Support using the gdextension functionality in the Godot Editor +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If planning to use the gdextension functionality in the Godot Editor, it is recommended that the +gdextension's native binaries are compiled not just for Android, but also for the OS onto which +developers / users intend to run the Godot Editor. Not doing so may prevent developers / +users from writing code that accesses the plugin from within the Godot Editor. + +This may involve creating dummy plugins for the host OS just so the API is published to the +editor. You can use the [godot-cpp-template](https://github.com/godotengine/godot-cpp-template) +github template for reference on how to do so. Godot crashes upon load ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tutorials/platform/android/img/android_export_preset_plugins_section.png b/tutorials/platform/android/img/android_export_preset_plugins_section.png deleted file mode 100644 index 7e6d17e7c05223dff262d5c95d1b4e3b0bee69c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47350 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 diff --git a/tutorials/platform/android/img/gltf_viewer_sample_app_screenshot.webp b/tutorials/platform/android/img/gltf_viewer_sample_app_screenshot.webp new file mode 100644 index 0000000000000000000000000000000000000000..5651a6a100400d90c97518226ca35fd9294b7b24 GIT binary patch literal 23600 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 H9^8ci9+!zh literal 0 HcmV?d00001 diff --git a/tutorials/platform/android/index.rst b/tutorials/platform/android/index.rst index 6d64d277c..2caaa8b70 100644 --- a/tutorials/platform/android/index.rst +++ b/tutorials/platform/android/index.rst @@ -1,11 +1,10 @@ -:article_outdated: True - -Android plugins -=============== +Android +======= .. toctree:: :maxdepth: 1 - :name: toc-tutorials-plugins-android + :name: toc-tutorials-android + android_library android_plugin android_in_app_purchases diff --git a/tutorials/xr/deploying_to_android.rst b/tutorials/xr/deploying_to_android.rst index 15046bab5..a12313d66 100644 --- a/tutorials/xr/deploying_to_android.rst +++ b/tutorials/xr/deploying_to_android.rst @@ -16,22 +16,22 @@ Before following the OpenXR-specific instructions here, you'll need to first set See :ref:`doc_exporting_for_android` for the full details, and return here when you've finished these steps. -Custom Android build +Gradle Android build -------------------- .. note:: Official support for the Android platform wasn't added to the OpenXR specification initially resulting in various vendors creating custom loaders to make OpenXR available on their headsets. While the long term expectation is that all vendors will adopt the official OpenXR loader, for now these loaders need to be added to your project. -In order to include the vendor-specific OpenXR loader into your project, you will need to setup a custom Android build. +In order to include the vendor-specific OpenXR loader into your project, you will need to setup a gradle Android build. Select **Install Android Build Template...** from the **Project** menu: -.. image:: img/android_custom_build.webp +.. image:: img/android_gradle_build.webp This will create a folder called **android** inside of your project that contains all the runtime files needed on Android. You can now customize this installation. Godot won't show this in the editor but you can find it with a file browser. -You can read more about custom builds here: :ref:`doc_android_custom_build`. +You can read more about gradle builds here: :ref:`doc_android_gradle_build`. Installing the loader plugins ----------------------------- diff --git a/tutorials/xr/img/android_custom_build.webp b/tutorials/xr/img/android_gradle_build.webp similarity index 100% rename from tutorials/xr/img/android_custom_build.webp rename to tutorials/xr/img/android_gradle_build.webp