如何在我的电脑上获取我的应用程序 (Android) 存储的文件?
How do I get the files I stored with my app (Android) on my PC?
我在为 Google Nexus 5
编写的应用程序的内部(私有)存储上创建了 json 个文件。
我被告知,这是所谓的私人应用程序 space,我无法从我的 PC 访问它,除非我根 phone(不是一个选项)或使用工作-通过 adb 进行备份。
我试图通过 adb shell
获取访问权限。
但是每当我尝试访问`数据?目录 我被告知我没有访问该目录的权限。
如何访问此目录和我的文件?
Note: I also was told that I should try to use Environment.getExternalStorageState()
instead of writing into the private app space. But when I try to write to /storage/emulated/0/
it just won't work either.
我不关心使用哪种方法,我只需要尽快访问我在 PC 上创建的文件。
您可以使用 Android 设备监视器访问私有应用程序空间、root 设备和模拟器(默认情况下,包括 Genymotion 和 AVD 在内的所有模拟器都是 root 的)
要将文件写入外部存储,请不要忘记在 AndroidManifest.xml 中声明权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
由于此权限在 Android 6.0 中被归类为危险权限,您应该明确请求访问它。 More on permission.
如果您不能或不想对您的物理设备进行 root phone,您可以将文件写入外部存储并在您的 PC 上访问它们。
如果要在SDCard上写文件,需要先获得SDCard上写数据的权限。
获取权限的方法如下:
AndroidManifest.xml
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>
如果你想支持Marshmallow(API-23)那么你需要获得这个运行时权限。
对于那个 ref link : https://developer.android.com/training/permissions/requesting.html
First get runtime
permission using this command.
adb shell pm grant com.package.app android.permission.<PERMISSION>
例子
adb shell pm grant com.package.app android.permission.CALL_PHONE
然后您就可以访问存储了。
这完成了工作:
adb shell
run-as PACKAGE.NAME
chmod 771 files
cp files/*.json /sdcard/<SOME_DIR>
adb pull /sdcard/<SOME_DIR> <SOME_LOCAL_DIR>
其他对我也有效的可能解决方案:
adb backup -noapk PACKAGE.NAME
dd if=backup.ab bs=24 skip=1|openssl zlib -d > backup.tar
tar -zxvf backup.tar
我在为 Google Nexus 5
编写的应用程序的内部(私有)存储上创建了 json 个文件。
我被告知,这是所谓的私人应用程序 space,我无法从我的 PC 访问它,除非我根 phone(不是一个选项)或使用工作-通过 adb 进行备份。
我试图通过 adb shell
获取访问权限。
但是每当我尝试访问`数据?目录 我被告知我没有访问该目录的权限。
如何访问此目录和我的文件?
Note: I also was told that I should try to use
Environment.getExternalStorageState()
instead of writing into the private app space. But when I try to write to/storage/emulated/0/
it just won't work either.
我不关心使用哪种方法,我只需要尽快访问我在 PC 上创建的文件。
您可以使用 Android 设备监视器访问私有应用程序空间、root 设备和模拟器(默认情况下,包括 Genymotion 和 AVD 在内的所有模拟器都是 root 的)
要将文件写入外部存储,请不要忘记在 AndroidManifest.xml 中声明权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
由于此权限在 Android 6.0 中被归类为危险权限,您应该明确请求访问它。 More on permission.
如果您不能或不想对您的物理设备进行 root phone,您可以将文件写入外部存储并在您的 PC 上访问它们。
如果要在SDCard上写文件,需要先获得SDCard上写数据的权限。
获取权限的方法如下:
AndroidManifest.xml
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>
如果你想支持Marshmallow(API-23)那么你需要获得这个运行时权限。
对于那个 ref link : https://developer.android.com/training/permissions/requesting.html
First get
runtime
permission using this command.
adb shell pm grant com.package.app android.permission.<PERMISSION>
例子
adb shell pm grant com.package.app android.permission.CALL_PHONE
然后您就可以访问存储了。
这完成了工作:
adb shell
run-as PACKAGE.NAME
chmod 771 files
cp files/*.json /sdcard/<SOME_DIR>
adb pull /sdcard/<SOME_DIR> <SOME_LOCAL_DIR>
其他对我也有效的可能解决方案:
adb backup -noapk PACKAGE.NAME
dd if=backup.ab bs=24 skip=1|openssl zlib -d > backup.tar
tar -zxvf backup.tar