mirror of
https://github.com/minetest/minetest.git
synced 2024-08-19 13:04:09 +02:00
Amend Android dev documentation
This commit is contained in:
parent
4660310db6
commit
8ff0e1da15
@ -108,6 +108,10 @@ task prepareAssets() {
|
|||||||
preBuild.dependsOn zipAssets
|
preBuild.dependsOn zipAssets
|
||||||
prepareAssets.dependsOn ':native:getDeps'
|
prepareAssets.dependsOn ':native:getDeps'
|
||||||
|
|
||||||
|
clean {
|
||||||
|
delete new File("src/main/assets", "Minetest.zip")
|
||||||
|
}
|
||||||
|
|
||||||
// Map for the version code that gives each ABI a value.
|
// Map for the version code that gives each ABI a value.
|
||||||
import com.android.build.OutputFile
|
import com.android.build.OutputFile
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ Notable pages:
|
|||||||
## In this folder
|
## In this folder
|
||||||
|
|
||||||
- [Developing minetestserver with Docker](docker.md)
|
- [Developing minetestserver with Docker](docker.md)
|
||||||
|
- [Android tips & tricks](android.md)
|
||||||
- [Miscellaneous](misc.md)
|
- [Miscellaneous](misc.md)
|
||||||
|
|
||||||
## IRC
|
## IRC
|
||||||
|
63
doc/developing/android.md
Normal file
63
doc/developing/android.md
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# Android tips & tricks
|
||||||
|
|
||||||
|
## Sign the Android APK from CI
|
||||||
|
|
||||||
|
The [Github Actions Workflow](https://github.com/minetest/minetest/actions?query=workflow%3Aandroid+event%3Apush)
|
||||||
|
automatically produces an APK for each architecture.
|
||||||
|
Before installing them onto a device they however need to be signed.
|
||||||
|
|
||||||
|
This requires an installation of the Android SDK and `adb`.
|
||||||
|
```bash
|
||||||
|
.../android-sdk/build-tools/30.0.3/apksigner sign --ks ~/.android/debug.keystore \
|
||||||
|
app-arm64-v8a-release-unsigned.apk
|
||||||
|
# Enter 'android' (without quotes) when asked for a password
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that the `debug.keystore` will not exist if you have never compiled an
|
||||||
|
Android app on your system (probably).
|
||||||
|
|
||||||
|
After that installing it will work:
|
||||||
|
```bash
|
||||||
|
adb install -r -d ./app-arm64-v8a-release-unsigned.apk
|
||||||
|
```
|
||||||
|
|
||||||
|
## How to get debug output from Minetest on Android
|
||||||
|
|
||||||
|
In case debug.txt isn't enough (e.g. when debugging a crash), you can get debug
|
||||||
|
output using logcat:
|
||||||
|
|
||||||
|
`adb logcat -s 'Minetest:*' '*:F'`
|
||||||
|
|
||||||
|
Note that you can do this even *after* the app has crashed,
|
||||||
|
since Android keeps an internal buffer.
|
||||||
|
|
||||||
|
A segmentation fault for example looks like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
01-10 17:20:22.215 19308 20560 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 20560 (MinetestNativeT), pid 19308 (netest.minetest)
|
||||||
|
01-10 17:20:22.287 20576 20576 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
|
||||||
|
01-10 17:20:22.287 20576 20576 F DEBUG : Build fingerprint: '...'
|
||||||
|
01-10 17:20:22.287 20576 20576 F DEBUG : Revision: '4'
|
||||||
|
01-10 17:20:22.287 20576 20576 F DEBUG : ABI: 'arm64'
|
||||||
|
01-10 17:20:22.288 20576 20576 F DEBUG : Timestamp: 2024-01-10 17:20:22+0100
|
||||||
|
01-10 17:20:22.288 20576 20576 F DEBUG : pid: 19308, tid: 20560, name: MinetestNativeT >>> net.minetest.minetest <<<
|
||||||
|
01-10 17:20:22.288 20576 20576 F DEBUG : uid: 10385
|
||||||
|
01-10 17:20:22.288 20576 20576 F DEBUG : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
|
||||||
|
[ ... more information follows ... ]
|
||||||
|
```
|
||||||
|
|
||||||
|
If you want get rid of previous output you can do that with `adb logcat -c`.
|
||||||
|
|
||||||
|
## I edited builtin, shaders, ... but nothing changed. Help!
|
||||||
|
|
||||||
|
You're probably hitting two problems:
|
||||||
|
* the build system only generates assets once
|
||||||
|
* the app only re-extracts assets when the version changes
|
||||||
|
|
||||||
|
Force regenerating the assets: `./gradlew app:clean`
|
||||||
|
|
||||||
|
Erase the app's memory of which version was installed: `adb shell run-as net.minetest.minetest rm shared_prefs/MinetestSettings.xml`
|
||||||
|
|
||||||
|
If this doesn't work you can also uninstall it using `adb shell pm uninstall net.minetest.minetest`. You will obviously lose your data.
|
||||||
|
|
||||||
|
Then build and install as normal and your changes should be applied.
|
@ -1,51 +1,5 @@
|
|||||||
# Miscellaneous
|
# Miscellaneous
|
||||||
|
|
||||||
## Sign the Android APK from CI
|
|
||||||
|
|
||||||
The [Github Actions Workflow](https://github.com/minetest/minetest/actions?query=workflow%3Aandroid+event%3Apush)
|
|
||||||
automatically produces an APK for each architecture.
|
|
||||||
Before installing them onto a device they however need to be signed.
|
|
||||||
|
|
||||||
This requires an installation of the Android SDK and `adb`.
|
|
||||||
```bash
|
|
||||||
.../android-sdk/build-tools/30.0.3/apksigner sign --ks ~/.android/debug.keystore \
|
|
||||||
app-arm64-v8a-release-unsigned.apk
|
|
||||||
# Enter 'android' (without quotes) when asked for a password
|
|
||||||
```
|
|
||||||
|
|
||||||
Note that the `debug.keystore` will not exist if you have never compiled an
|
|
||||||
Android app on your system (probably).
|
|
||||||
|
|
||||||
After that installing it will work:
|
|
||||||
```bash
|
|
||||||
adb install -r -d ./app-arm64-v8a-release-unsigned.apk
|
|
||||||
```
|
|
||||||
|
|
||||||
## How to get debug output from Minetest on Android
|
|
||||||
|
|
||||||
In case debug.txt isn't enough (e.g. when debugging a crash), you can get debug
|
|
||||||
output using logcat:
|
|
||||||
|
|
||||||
`adb logcat -s 'Minetest:*' '*:F'`
|
|
||||||
|
|
||||||
Note that you can do this even *after* the app has crashed,
|
|
||||||
since Android keeps an internal buffer.
|
|
||||||
|
|
||||||
A segmentation fault for example looks like this:
|
|
||||||
|
|
||||||
```
|
|
||||||
01-10 17:20:22.215 19308 20560 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 20560 (MinetestNativeT), pid 19308 (netest.minetest)
|
|
||||||
01-10 17:20:22.287 20576 20576 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
|
|
||||||
01-10 17:20:22.287 20576 20576 F DEBUG : Build fingerprint: '...'
|
|
||||||
01-10 17:20:22.287 20576 20576 F DEBUG : Revision: '4'
|
|
||||||
01-10 17:20:22.287 20576 20576 F DEBUG : ABI: 'arm64'
|
|
||||||
01-10 17:20:22.288 20576 20576 F DEBUG : Timestamp: 2024-01-10 17:20:22+0100
|
|
||||||
01-10 17:20:22.288 20576 20576 F DEBUG : pid: 19308, tid: 20560, name: MinetestNativeT >>> net.minetest.minetest <<<
|
|
||||||
01-10 17:20:22.288 20576 20576 F DEBUG : uid: 10385
|
|
||||||
01-10 17:20:22.288 20576 20576 F DEBUG : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
|
|
||||||
[ ... more information follows ... ]
|
|
||||||
```
|
|
||||||
|
|
||||||
## Profiling Minetest on Linux
|
## Profiling Minetest on Linux
|
||||||
|
|
||||||
We will be using a tool called "perf", which you can get by installing `perf` or `linux-perf` or `linux-tools-common`.
|
We will be using a tool called "perf", which you can get by installing `perf` or `linux-perf` or `linux-tools-common`.
|
||||||
|
Loading…
Reference in New Issue
Block a user