2012-07-02 60 views
0

我已經在Android設備上安裝了一個Sample應用程序。我安裝的應用程序存儲在我的Adroid設備上(我的應用程序未經過Google Play授權),但我可以看到其他應用程序存儲位置路徑(這些應用程序有權在Google上播放)。

謝謝。

例如,我安裝了一個Calculator應用程序。它將被存儲到設備中的/data/calculaot-package-name。出於測試目的,我將自己的應用程序安裝到了Android設備上。它的路徑我在應用程序的存儲路徑中沒有看到。Android設備上的應用程序存儲位置

+0

很抱歉這麼說,但你的問題的解釋甚至還沒有接近'clear'。 – overbet13

+0

請解釋清楚,以便快速瞭解,那麼只有我們可以給出適當的解決方案 – Ponmalar

+0

詳細說明您的答案。無論您想說什麼都不清楚... – Androiduser

回答

0

這取決於應用程序是否安裝到內部或外部存儲器。如果您使用(在您的清單中)android:installLocationpreferExternalauto它很可能存儲在SD卡的.android_secure部分。否則,它應該位於/data/app/com.yourpackage

如果將它存儲在安全區域中,您將無法得到它(假設您沒有做黑客事情 - 即使我不確定是否可以得到它)。

編輯:我應該補充說,在大多數情況下,您可以將應用程序從應用程序管理器移動到內部存儲。如果這是您的應用,但您可以指定您只需要在內部存儲上使用它。

0

爲了找到手動,adb pull /data/system/packages.xml並檢查它以查找代碼路徑條目。

要從程序中執行此操作,需要api調用以確定可在文檔中找到的代碼路徑。

你可以使用哪些知識可能因案例和版本而異。

2

從API級別8開始,您可以允許將應用程序安裝在外部存儲設備(例如設備的SD卡)上。這是一個可選功能,您可以使用清單屬性android:installLocation聲明您的應用程序。如果您未聲明此屬性,則您的應用程序將僅安裝在內部存儲器上,並且不能移動到外部存儲器。

要允許系統在外部存儲器上安裝應用程序,請修改清單文件以在元素中包含android:installLocation屬性,其值爲「preferExternal」或「auto」。例如:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    android:installLocation="preferExternal" 
    ... > 

如果聲明「preferExternal」,你要求你的應用程序的外部存儲安裝,但系統並不能保證你的申請將在外部存儲安裝。如果外部存儲器已滿,則系統會將其安裝在內部存儲器上。用戶也可以在兩個位置之間移動你的應用程序。

如果聲明「自動」,則表明您的應用程序可能安裝在外部存儲器上,但您沒有安裝位置的首選項。系統將根據幾個因素決定應用程序的安裝位置。用戶也可以在兩個位置之間移動你的應用程序。

當你的應用程序安裝在外接存儲:

  • 有,只要外部存儲設備安裝在設備上的應用程序的性能沒有影響。
  • .apk文件保存在外部存儲器中,但所有私有用戶數據,數據庫,優化.dex文件和提取的本地代碼都保存在內部設備內存中。
  • 存儲應用程序的唯一容器使用隨機生成的密鑰進行加密,該密鑰只​​能由最初安裝它的設備解密。因此,安裝在SD卡上的應用程序僅適用於一個設備。
  • 用戶可以通過系統設置將應用程序移動到內部存儲器。

警告:當用戶啓用USB海量存儲與計算機共享文件或通過系統設置卸載SD卡,外部存儲是從設備卸載和外部存儲上運行的所有應用程序立即遇難。

詳情:All Installation Location