【问题标题】:preferExternal mean the same as USB storage - Andorid memory structure?preferExternal 与 USB 存储相同的意思 - Andorid 内存结构?
【发布时间】:2015-01-10 23:09:24
【问题描述】:

我已经阅读了documentation 和有关android memory management 的一般信息,并且imo 有信息溢出。

我想要做的只是将文件放在设备上,稍后我将从application 读取。

当我将设备插入 PC 并选择“打开 USB 存储设备”时,它会在我的 PC 上安装两个新驱动器。一种是带有文件树的外部 SD(xGB) 卡

drwx------ 2 user user  32768 gru  6 09:38 100ANDRO
drwx------ 2 user user  32768 lis 14 17:15 folder
drwx------ 2 user user  32768 sty  8 00:08 DCIM
drwx------ 2 user user  32768 lis 11 16:47 LOST.DIR
-rw-r--r-- 1 user user 501513 sty 10 21:54 varnish.log

第二个是卷 AFAIK 闪存部分包含:

drwx------ 2 user user  32768 lip 10  2014 100ANDRO
drwx------ 2 user user  32768 lip 10  2012 Alarms
drwx------ 2 user user  32768 gru  6 09:41 Allevents
drwx------ 3 user user  32768 maj 27  2014 Android
drwx------ 2 user user  32768 cze 20  2014 AndroidAssistant_appbackup
drwx------ 2 user user  32768 cze 20  2014 App_Backup_Restore
drwx------ 2 user user  32768 sty 10 21:36 apps_backup
drwx------ 3 user user  32768 sty  9 21:03 Audio
drwx------ 3 user user  32768 cze 20  2014 backups
drwx------ 2 user user  32768 paź 16 01:59 baidu
drwx------ 3 user user  32768 maj 20  2014 BarcodeScanner
drwx------ 2 user user  32768 gru  6 09:40 bluetooth
drwx------ 3 user user  32768 sie 17 11:31 CamelDroid
drwx------ 2 user user  32768 sty 10 21:49 Contact
drwx------ 4 user user  32768 gru  6 09:39 DCIM
drwx------ 2 user user  32768 gru 19 00:02 Document
drwx------ 7 user user  32768 sty  3 08:12 Download
drwx------ 3 user user  32768 sie  4 22:13 gameloft
drwx------ 4 user user  32768 maj 31  2014 gokeyboard
-rw-r--r-- 1 user user  32890 sty  7 21:44 GPS.LOG
drwx------ 2 user user  32768 gru  8 00:52 Ketchapp_SH
drwx------ 7 user user  32768 maj 27  2014 KingsoftOffice
drwx------ 2 user user  32768 mar  3  2014 Reaper
drwx------ 2 user user  32768 gru  6 09:42 LOST.DIR
drwx------ 2 user user  32768 wrz  9 14:08 mapbox_tiles_cache
drwx------ 4 user user  32768 cze 19  2014 mdm
drwx------ 3 user user  32768 lut 14  2014 media
drwx------ 2 user user  32768 lip 10  2012 Movies
drwx------ 2 user user  32768 lip 10  2012 Music
drwx------ 2 user user  32768 gru 18 08:50 Notifications
drwx------ 3 user user  32768 sie 21 17:40 osmdroid
drwx------ 2 user user  32768 gru 19 00:02 Others
drwx------ 2 user user  32768 mar  6  2014 pers
drwx------ 2 user user  32768 gru 19 00:02 Picture
drwx------ 4 user user  32768 lis 25 02:36 Pictures
drwx------ 2 user user  32768 lip 10  2012 Podcasts
drwx------ 2 user user  32768 paź  8 22:43 Ringtones
drwx------ 2 user user  32768 sie  7 17:55 SUSdownload
drwx------ 2 user user  32768 lip 25 07:33 System Volume Information
drwx------ 2 user user  32768 gru  8 00:48 TempImages
drwx------ 3 user user  32768 paź 22 16:22 tmp
drwx------ 2 user user  32768 wrz 24 08:02 TuneIn Radio
-rw-r--r-- 1 user user 501513 sty 10 21:26 varnish.log
drwx------ 2 user user  32768 gru 19 00:02 Video
drwx------ 4 user user  32768 paź 22 16:29 VoiceChangerWE
drwx------ 2 user user  32768 lip  7  2014 well

其中只有:

drwx------ 3 user user  32768 maj 27  2014 Android

目录似乎包含一些应用程序,其中的包名称如下:

 ...
    drwx------ 3 user user  32768 sty  3 08:13 com.adobe.reader
    drwx------ 3 user user  32768 gru 16 07:55 com.android.browser
    drwx------ 3 user user  32768 mar  3  2014 com.android.gallery3d
    drwx------ 3 user user  32768 mar  3  2014 com.android.providers.media
    drwx------ 3 user user  32768 sie 15 23:07 com.android.vending
    drwx------ 2 user user  32768 cze 22  2014 com.bluemonbr
    ...

但不幸的是,即使我在清单中为 preferExternalinternalOnly 设置 installLocation,我也无法在此处找到从 eclipse 安装的应用程序。

最好将此文件放在与 apk 相同的目录下,但如果不可能,我会将其放在任何地方进行测试。

问题是如何1访问这个文件如果我把文件放在前面提到的两个记忆之一中。

最近尝试了返回不同值的不同选项(在评论中):

    Environment.getDataDirectory(); // /data
    Environment.getDownloadCacheDirectory(); // /cache
    Environment.getExternalStorageDirectory(); // /storage/sdcard0
    Environment.getExternalStorageState(); // mounted
    Environment.getRootDirectory(); // /system
    getExternalCacheDir(); // /storage/sdcard0/Android/data/com.schibsted/cache
    getCacheDir(); // /data/data/com.schibsted/cache
    getCallingPackage(); // null
    getFilesDir(); // /data/data/com.schibsted/files

这些路径与 PC 浏览器中显示的路径相比看起来很奇怪。

问候

【问题讨论】:

    标签: android linux unix memory memory-management


    【解决方案1】:

    但不幸的是,即使我在清单中将 installLocation 设置为 preferExternal 或 internalOnly,我也无法在此处找到从 eclipse 安装的应用程序。

    这是因为external storage 上的Android/ 目录与这些设置中的任何一个都无关。当您使用getExternalFilesDir()getExternalCacheDir() 方法时,将在Android 目录中创建您的应用程序目录,这些方法可用于任何Context(例如,您的Activity)。

    这些路径与 PC 浏览器中显示的路径相比看起来很奇怪。

    其中大部分与外部存储无关。

    【讨论】:

    • 但是关于 getExternalFilesDir() 的文档中是“外部文件并不总是可用:如果用户在计算机上安装或删除外部存储,它们将会消失。”那么如何从 PC 访问我们放在卡上的文件呢?
    • @Jakub:External storage 不是 removable storage。在现代 Android 设备上,应用程序通常可以随时使用外部存储,因为它是板载闪存的一部分,通常与 internal storage 位于同一分区。
    猜你喜欢
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    相关资源
    最近更新 更多