android - PreferredExternal 与 USB 存储相同 - Andorid 内存结构?

标签 android linux unix memory memory-management

我已经阅读了文档和有关android内存管理的一般信息,并且我认为存在信息溢出。

我想要做的就是简单地将文件放在设备上,稍后我将从应用程序读取该文件。

当我将设备插入电脑并选择“打开 USB 存储设备”时,它会将两个新驱动器安装到我的电脑上。一种是带有文件树的外部 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
    ...

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

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

问题是如果我将该文件放在前面提到的两个内存之一下,如何访问该文件。

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

    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 浏览器中显示的路径相比看起来很奇怪。

问候

最佳答案

but unfortunately I could not find here the application installed from eclipse even If I set installLocation in manifest for preferExternal or internalOnly.

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

and those paths looks weird regarding to those shown in PC browser.

其中大多数与外部存储无关。

关于android - PreferredExternal 与 USB 存储相同 - Andorid 内存结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882144/

相关文章:

android - 为什么match_parent取代了fill_parent?

c++ - 确定 NFS 服务器中已提交作业的状态

php - 在 PHP 中使用 ZIP 命令删除文件夹结构(仅限父级)

linux - 有没有办法计算目录的 inode ?

linux - 用于查找 man 部分列表的 UNIX man 命令

c - 在客户端 C 中多路复用 stdin 和 socket

android - 如何在不移动 X、Y 位置的情况下缩放 View ?

android - 组合一张图像覆盖另一张图像

android - 如何将 adb screenrecord 输出重定向到 pc(windows/linux) 存储

Linux上的python - 使用 'pwd'模块读取远程机器的passwd文件