2011-01-26 95 views
3

正如我上面的問題所述,是否有可能在另一個APK中有一個apk文件? 爲了進一步解釋,這裏是我的情況:android APK在一個APK內?

我有兩個應用程序,第一個通過意圖調用另一個..我沒有這個問題..但我需要的是隻安裝一個apk文件而不是兩個。我想到的第一件事是將一個.apk文件放在另一個.apk文件中。我真的不知道這是否可能,這就是爲什麼我需要這樣做。但如果這是不可能的,我希望有人能告訴我做這種事情的最佳做法是什麼。

我可以把它作爲一個應用程序,但這將是我的最後一個解決方案。

回答

4

也許你正在尋找一個Android庫。這是一個可以放置一些通用代碼並將其包含在多個應用程序(apks)中的地方。

請參閱有關library projects的文檔。

+0

感謝您的信息。它肯定有幫助。 – junmats 2011-01-26 02:29:09

3

對不起,如果你想APK裏面的APK,你是運氣不好。

Android不允許你這樣做。

但我很好奇你爲什麼要這樣?即使它們在同一個APK中,您也可以從另一個活動中調用一個活動。

+0

是的,這就是我在我的問題的最後部分指出。但我只是想知道,如果有可能的。事情是,我做了第一個應用程序沒有問候第二個應用程序..然後我決定互動這兩個。但是,我仍然必須逐一安裝它們。所以這就是我提出的問題。謝謝。 – junmats 2011-01-26 01:52:42

+0

如果他們在同一個APK中,他們仍然可以互相打電話,你想知道怎麼做? – the100rabh 2011-01-26 01:55:36

1

您可以將其編程爲一個應用程序並擁有兩個啓動器,以便用戶將其視爲兩個獨立應用程序。

你也可以嘗試解決這個問題,並找出沒有人對此作出反應的情況。比你可以打開市場,並建議安裝應用程序。

最後一種方式主要由需要文件瀏覽器選擇文件的應用程序完成。他們發送了一個意圖,如果沒有安裝文件瀏覽器,他們會提醒通知需要文件瀏覽器來執行該任務,他們打開天文,OI文件管理器或他們更喜歡的另一個應用程序的市場頁面...

4

我只是做到了現在...

我把APK 2原/ embeddedapk.apk

那麼這段代碼...啓動安裝程序APK 2 ...... **問題如果用戶的手機犯規讓無法從市場應用..這將無法安裝APK 2 ...

記得刪除臨時文件時,安裝目錄完成....

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用戶界面和apk 2數據提供商作爲單獨的應用程序在市場上。但我不wnat用戶向下然後分別安裝第一次當...從APK 2

  • APK 1需要的數據,APK 2沒有任何活動..

  • 當用戶下載來自市場的apk 1我想要自動安裝apk 2 ...

  • 我希望能夠更新(市場)apk1 & APK 2 independantly ...