使用gomobile+go-sqlite3构建了一个 Android AAR 的库文件。发现性能很差,大数据库文件(200M-1G 的 sqlite 文件)只要执行insert into select xx或者 update xx set where id in (batch id)就会出现 disk I/O error: read-only file system的文件系统错误。但如果使用相同的 sql+sqlite 文件通过 Android 原生调用,就能够执行成功。同时 AAR 的方式使用模拟器也能够执行成功,似乎电脑端的模拟器性能更高一些。
困惑:
从表象上看 Android 似乎对 AAR 的方式做了一些性能限制,可以确定文件权限没有问题,通过 Android Studio 查看文件和目录权限正常。实在没啥排查思路,目前的改法是分批提交,减少单次数据操作量。不知道如何才能够在 AAR 中达到 Android 原生调用的性能,现在新版的 Android 不 root 真是费事,啥也看不了,啥命令行执行也不行。