Rav*_*avi 8 android android-install-apk edify
我正在尝试使用Android的更新程序脚本语言(Edify?)来通过无线方式将APK安装到我可以控制的嵌入式设备上. 这是一个描述语言的链接.
我的第一次尝试如下:
package_extract_file("added_files/data/app/test.apk", "/data/app/test.apk");
Run Code Online (Sandbox Code Playgroud)
这导致test.apk自动安装/data/data/com.acme.test,但目录/data/data/com.acme.test/lib是空的,而它应该包含test.so,包含在其中的共享库test.apk.(如果我使用手动安装adb install test.apk,则会解压缩库.)
然后我尝试将APK解压缩/data而不是/data/app因此操作系统不会自动安装它/data/data,我可以尝试使用脚本进行安装:
package_extract_file("added_files/data/app/test.apk", "/data/test.apk");
run_program("/system/bin/pm", "install", "/data/test.apk");
Run Code Online (Sandbox Code Playgroud)
这导致以下错误:
about to run program [/system/bin/pm] with 3 args
run_program: execv failed: Exec format error
run_program: child exited with status 1
Run Code Online (Sandbox Code Playgroud)
我不确定为什么会发生上述错误.
有没有办法安装APK并自动提取其共享库?我可以手动安装库,但我希望避免这种情况.
我对 Edify 不熟悉,但通过查看文档,package_extract_file()只需将 APK 提取为存档文件即可。为什么数据最终会出现在里面/data/data很奇怪;您确定这不是上次安装留下的吗?我建议完全卸载该应用程序并重试。
在我看来,该特定功能不适合安装该应用程序。您可能想尝试通过命令安装它:
run_program("adb", "install", "-r", "added_files/data/app/test.apk");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5910 次 |
| 最近记录: |