Repository navigation
发版:ModAVDExtras v0.2.0 进 release/0.40(随 ModAVD 0.40.2) (#17)
ModAVDExtras v0.2.0
modavd_extras.dll:6fe84a40a5aa8da31d1a24492bf860b6912bf322e29d3bdba73bd80a34fa61daexternal_renderer_ipc.dll:7ce6ea8c0c01c14dcb5ce3cd4271e2fa9a147b3f3c4c57878e8cec8dff52f89flibmodavd_extras.dylib:b6ea821c5710d07411412011ac32e62718b8f9412451017609411ecb958a9c9alibmodavd_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 不一样。
许可证与源码
- LGPL-3.0-or-later。正文是 tag 下的 LICENSE(LGPL-3.0)和 COPYING(GPL-3.0);转发这些库时请一起带上。
- 源码:https://github.com/ModAVD/ModAVDExtras/tree/v0.2.0。
下载与核对
四个文件都由本仓库的 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;pressure0 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 returnMODAVD_E_NOT_READY. modavd_api_version()returns 2,modavd_capabilities()addsMODAVD_CAP_TOUCH,modavd_version_string()returns"0.2.0".- Keys and text (
modavd_key,modavd_input_text) still returnMODAVD_E_UNSUPPORTED. API version 1 functions are unchanged.external_renderer_ipc.dllhas 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.txtat the tag before upload. Check them with the attachedSHA256SUMS.txt.