如何使用Android更新程序脚本安装APK

时间:2013-02-01 19:05:34

标签: android android-install-apk edify

我正在尝试使用Android的更新程序脚本语言(Edify?)来通过无线方式将APK安装到我可以控制的嵌入式设备上。 Here's描述语言的链接。

我的第一次尝试如下:

package_extract_file("added_files/data/app/test.apk", "/data/app/test.apk");

这导致test.apk自动安装/data/data/com.acme.test,但目录/data/data/com.acme.test/lib为空,而它应包含test.so,{{1}中包含的共享库}}。 (如果我使用test.apk手动安装,则会解压缩库。)

然后我尝试将APK解压缩到adb install test.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");

我不确定上述错误发生的原因。

有没有办法安装APK并自动提取其共享库?我可以手动安装库,但我希望避免这种情况。

2 个答案:

答案 0 :(得分:1)

我不熟悉Edify,但通过查看文档,package_extract_file()只是将APK作为归档文件提取出来。为什么数据在/data/data内结束是奇怪的;你确定这不仅仅是以前安装的遗留问题吗?我建议完全卸载该应用并重试。

在我看来,该特定功能不适合安装应用程序。您可能想尝试通过命令安装它:

run_program("adb", "install", "-r", "added_files/data/app/test.apk");

答案 1 :(得分:0)

Edify脚本以恢复模式运行,并且根据您的设备,默认情况下并非所有分区都可用。最有可能的问题是您尝试使用的分区尚未安装。