如上面的问题所述,是否有可能在另一个apk中有一个apk文件? 为了进一步解释,这是我的情况:
我有两个应用程序,第一个通过意图调用另一个..我没有这个问题..但我需要的是只安装一个apk文件而不是两个。我想到的第一件事就是将一个.apk文件放在另一个.apk文件中。我真的不知道这是否可能就是为什么我需要你对此的看法。但如果这是不可能的,我希望有人可以告诉我做这种事情的最佳做法。
我可以将它作为一个应用程序,但这将是我的最后一个解决方案。
答案 0 :(得分:5)
也许您正在寻找Android库。在这里您可以放置一些通用代码并将其包含在多个应用程序(apks)中。
请参阅library projects上的此文档。
答案 1 :(得分:5)
我现在就这样做了......
我把apk 2放在raw / embeddedapk.apk
中然后这个代码...启动安装程序为apk 2 ... **问题,如果用户手机不允许应用程序不从市场..它将无法安装apk 2 ... < / p>
记得在安装完成后删除临时文件....
try {
InputStream in = this.getResources().openRawResource(R.raw.embeddedapk);
byte[] b = new byte[in.available()];
int read = in.read(b);
toast(read + " byte read");
String tempFileName = "embeddedapk.apk";
FileOutputStream fout = openFileOutput(tempFileName, MODE_WORLD_READABLE);
fout.write(b);
fout.close();
in.close();
File tempFile = getFileStreamPath(tempFileName);
Intent i = getFileActionIntent(Intent.ACTION_VIEW, tempFile);
startActivity(Intent.createChooser(i, "sdsds"));
}
catch (Exception ex){
Log.e("ero", "erer", ex);
}
我的理由是我希望将apk 1 userinterface和apk 2数据提供商作为市场上的独立应用。但是我第一次安装时不会单独关闭用户...
apk 1需要来自apk 2的数据,apk 2没有任何活动..
当用户从市场下载apk 1时,我想自动安装apk 2 ...
我希望能够更新(上市)apk1&amp; apk 2独立...
答案 2 :(得分:3)
对不起,如果你想APK里面的APK,你运气不好。
Android不允许您这样做。
但我很好奇为什么你会这样想?您可以从另一个活动中呼叫一个活动,即使它们位于同一个APK中。
答案 3 :(得分:1)
您可以将其编程为一个应用程序并具有两个启动器,以便用户将其视为两个独立的应用程序。
您也可以尝试触发意图并抓住没有人对此做出反应的情况。您可以打开市场并建议安装该应用程序。
最后一种方法主要是由需要文件浏览器来挑选文件的应用程序完成的。他们发送一个意图,如果没有安装文件浏览器,他们会提示一个Toast,告知需要一个文件浏览器来执行任务,他们打开astro,OI文件管理器或他们喜欢的其他应用程序的市场页面......