仅在调试中将数据库存储在外部存储上

时间:2014-08-13 21:27:05

标签: android

有没有办法只在调试模式下在外部存储上写入数据库?我的意思是:

  1. 我已经有了必要的代码来知道我是否在调试中,所以我已经可以了:

    private static final String DATABASE_NAME = "track.db";
    
    public DatabaseHelper(Context context) {
        super(context,
              Utils.isDebug(context) ? 
                           Utils.getAppExtDir() + File.separator + DATABASE_NAME : 
                           DATABASE_NAME, 
              null, 
              DATABASE_VERSION, 
              R.raw.ormlite_config);
    }
    
  2. 所以我想在调试时只需要权限:

    uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    

1 个答案:

答案 0 :(得分:0)

  

您是否有关于如何定义调试源集的链接?

tools site's coverage of Gradle for Android中介绍了它。

创建一个app/src/debug/目录并在其中放置AndroidManifest.xml。当您进行main构建时,根据the manifest merger rules,该清单的内容将与debug源集中的清单内容合并。对于release构建,它将被忽略。

因此,原则上,如果您的debug源集的清单中只有您想要调试的<uses-permission>元素,则该内容应该合并。

我很乐意承认我没有试过这个,所以虽然文档表明它应该可行,但可能存在阻止它工作的错误(在Gradle for Android或docs中)。