• 【转】Android应用程序的数据存放目录解说


    Android的每个应用程序,都有自己的可控的目录。

    在Setting/Application info里面,可以看到每个应用程序,都有Clear data和Clear cache选项。

    具体这些目录在哪里呢?

    用adb连接上设备。如果是连接真实设备,需要有设备的root权限。

    cd data/data

    在这个目录下,可以看到每个应用程序都有自己的目录,目录名就是应用程序在AndroidManifest.xml文件中定义的包。

    在每个目录下,一般有这么几个子目录:

    databases : 存放数据库

    cache : 存放缓存数据

    files : 存放应用程序自己控制的文件

    lib : 存放使用的包

    每个应用程序的代码,对自己的目录是有绝对的控制权限的。

    这几个目录可以在Activity中这么取得:

            Context cont = this.getApplicationContext();
            Log.d("TemppjActivity", "cont.getCacheDir() = " + cont.getCacheDir());
            Log.d("TemppjActivity", "cont.getDatabasePath("temp") = " + cont.getDatabasePath("temp"));
            Log.d("TemppjActivity", "cont.getFilesDir() = " + cont.getFilesDir());

    其中数据库路径是需要传入数据库名称的,返回值如下:

    08-26 08:04:01.049: DEBUG/TemppjActivity(330): cont.getCacheDir() = /data/data/com.study/cache
    08-26 08:04:01.049: DEBUG/TemppjActivity(330): cont.getDatabasePath("temp") =/data/data/com.study/databases/temp
    08-26 08:04:01.099: DEBUG/TemppjActivity(330): cont.getFilesDir() = /data/data/com.study/files

    另外,可以取得自身的apk的路径。


            Log.d("TemppjActivity", "cont.getPackageCodePath() = " + cont.getPackageCodePath());
            Log.d("TemppjActivity", "cont.getPackageResourcePath() = " + cont.getPackageResourcePath());

    结果:

    08-26 08:04:01.099: DEBUG/TemppjActivity(330): cont.getPackageCodePath() = /data/app/com.study-1.apk
    08-26 08:04:01.099: DEBUG/TemppjActivity(330): cont.getPackageResourcePath() = /data/app/com.study-1.apk

    转自:http://blog.csdn.net/yihui823/article/details/6722456

  • 相关阅读:
    python
    weui 问题
    Mac 问题
    ORM存储过程和实体类代码生成工具
    说说QQ空间SEO
    用户体验走嘴和走心的区别
    一切不以用户为中心的O2O 都是耍流氓
    10分钟制作自己的手机QQ
    一无所有其实没什么
    别人的鞋不一定合脚
  • 原文地址:https://www.cnblogs.com/yanghj010/p/4664708.html
Copyright © 2020-2023  润新知