Skip to content

发版:ModAVDExtras v0.2.0 进 release/0.40(随 ModAVD 0.40.2) (#17)

Choose a tag to compare

@github-actions github-actions released this 13 Nov 21:19
· 7 commits to main since this release
0d6ddbc

ModAVDExtras v0.2.0

  • modavd_extras.dll:6fe84a40a5aa8da31d1a24492bf860b6912bf322e29d3bdba73bd80a34fa61da
  • external_renderer_ipc.dll:7ce6ea8c0c01c14dcb5ce3cd4271e2fa9a147b3f3c4c57878e8cec8dff52f89f
  • libmodavd_extras.dylib:b6ea821c5710d07411412011ac32e62718b8f9412451017609411ecb958a9c9a
  • libmodavd_extras.so:9e870a02f864c9072111b89df77c2747ac5fabd4a4b2a2ee150d093c558cc8d0

这一版加上点击:头文件里预留的 modavd_touch_* 能用了,接口版本升到 2。截图和 MuMu 外壳的行为不变。

新增

  • 点击(MODAVD_CAP_TOUCH):modavd_touch_down、modavd_touch_move、modavd_touch_up、modavd_touch_release_all(#15)。
    • 走模拟器控制台,按多点触控协议发到模拟器自己的虚拟触屏:安卓看到的是手指在屏幕上,客体里不用装任何东西。
    • 坐标是共享画面的像素,最多 10 根手指同时按下;pressure 给 0 就用模拟器窗口鼠标点击时的默认值。只支持显示屏 0。
    • 第一次点击时连上控制台,之后一直用这条连接;模拟器重启、连接断了,下一次点击重连一次。modavd_close() 会先抬起这个句柄按下的手指。
    • 还没有画面时(不知道屏幕尺寸),按下和移动返回 MODAVD_E_NOT_READY。
  • modavd_api_version() 返回 2,modavd_capabilities() 多了 MODAVD_CAP_TOUCH。
  • modavd_version_string() 返回 "0.2.0"。

说明

  • 按键和输入文字(modavd_key、modavd_input_text)照旧返回 MODAVD_E_UNSUPPORTED:控制台发的按键会进触屏设备、被丢掉,输入文字会丢掉键盘映射里没有的字,这两样以后另做。
  • 只认接口版本 1 的程序不受影响:接口版本 1 的函数和行为都没变。
  • external_renderer_ipc.dll 的源码没改,但它静态链接了库的代码,所以文件和 v0.1.3 不一样。

许可证与源码

下载与核对

四个文件都由本仓库的 release workflow 在 GitHub 上编出,和 tag 下的 release/0.2.0.SHA256SUMS.txt 核对过才上传。编译环境和 v0.1.3 一样:

  • Windows:windows-2025,cmake -A x64,--config Release。两个 DLL 都静态链接 C 运行库,只依赖 KERNEL32、WS2_32,编译带 /Brepro。
  • macOS:macos-15(Apple Silicon),cmake -DCMAKE_BUILD_TYPE=Release。
  • Linux:ubuntu-24.04(x64),cmake -DCMAKE_BUILD_TYPE=Release。

请用附件 SHA256SUMS.txt 核对:Windows 上 Get-FileHash .\modavd_extras.dll -Algorithm SHA256,macOS 上 shasum -a 256 libmodavd_extras.dylib,Linux 上 sha256sum libmodavd_extras.so。

English

This release adds touch: the modavd_touch_* functions reserved in the header now work, and the API version is 2. Capture and the MuMu shim behave as before.

  • Touch (MODAVD_CAP_TOUCH): modavd_touch_down, modavd_touch_move, modavd_touch_up, modavd_touch_release_all (#15). They go through the emulator console as multi-touch events on the emulator's own virtual touch screen, so Android sees a finger on the screen and nothing is needed in the guest. Coordinates are pixels of the shared frame; up to 10 contacts at once; pressure 0 uses the default of a mouse click on the emulator window; display 0 only. The console session opens on the first touch and is kept; if it broke (the emulator restarted) the next touch reconnects once. modavd_close() lifts the contacts the handle pressed. Before the first frame (display size unknown) down and move return MODAVD_E_NOT_READY.
  • modavd_api_version() returns 2, modavd_capabilities() adds MODAVD_CAP_TOUCH, modavd_version_string() returns "0.2.0".
  • Keys and text (modavd_key, modavd_input_text) still return MODAVD_E_UNSUPPORTED. API version 1 functions are unchanged. external_renderer_ipc.dll has no source changes, but it links the library code statically, so the file differs from v0.1.3.
  • License: LGPL-3.0-or-later; the texts are LICENSE (LGPL-3.0) and COPYING (GPL-3.0) at the tag. Ship them with the libraries. Source: https://github.com/ModAVD/ModAVDExtras/tree/v0.2.0.
  • All four files are built by this repository's release workflow on GitHub, the same way as v0.1.3, and checked against release/0.2.0.SHA256SUMS.txt at the tag before upload. Check them with the attached SHA256SUMS.txt.