经理:“Tank,我们需要访问第三方APP的数据库”
ME:“这个简单呀,用AS自带的Device File Explorer就可以”
经理:“不是,我的意思是你能不能写一个APP打印一下其他应用创建的数据库”
ME:“。。。可以ROOT吗?”
经理:“只要能取到,啥都可以”
多么神奇的对话呀~
想要解决这个需求,我们首先要知道APP创建的数据库放在哪里。
一般来说,应用创建的数据库会存储在data/data/应用包名/databases目录下,看到这个目录应该就会了解该需求有多么奇葩了吧?
在安卓7.0之后的版本,修改了权限的访问权限,大致可以分为公有空间和私有空间,外部存储即公有空间,允许所有的应用读取和访问,但是data对应的目录即为私有空间,在这种机制下是不允许应用访问第三方应用的数据库所在目录的。
怎么办呢?要不要去告诉经理该需求难以实现呢?
哈哈,咱们回顾下开头的那段对话,里面有我们的解决方案!
没错,我们可以ROOT嘛,虽然安卓并不是很喜欢ROOT这个东西,但是针对这个需求,它却是一个好东西呢。
至于如何ROOT,网上有太多太多的方案,这里就不再赘述,只是给大家分享一下我参考的一种方式: