android应用如何备份

blueduan1985 2012-02-28 09:52:15
网上下载的很多软件都有备份手机上现有的应用的功能。请问这个事如何实现的呢。
直接到相应的文件夹把文件读出来就可以了吗?
...全文
827 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
garywzh 2014-03-28
  • 打赏
  • 举报
回复
没人继续回答了吗?好想知道 直接复制data/app和data/data里面的文件不就行了吗?
xingheng2 2013-12-10
  • 打赏
  • 举报
回复
引用 16 楼 blueduan1985 的回复:
问题解决了。想不到这么简单。我把备份的关键代码贴出来啦:

    private void backupApp(String packageName) throws IOException {

        File in = new File("/data/app/" + packageName + ".apk");
        File out = new File("/sdcard/BackupApp/" + packageName + ".apk");
        out.createNewFile();
        FileInputStream fis = new FileInputStream(in);
        FileOutputStream fos = new FileOutputStream(out);

        int count;
        byte[] buffer = new byte[256 * 1024];
        while ((count = fis.read(buffer)) > 0) {
            fos.write(buffer, 0, count);
        }

        fis.close();
        fos.flush();
        fos.close();
    }
至于获取已安装程序的包名就不再累述了。 不需要任何额外的设置和权限。只要先获取所有程序的包名,然后依次传入上面的函数即可。 当然,因为我把程序备份到sdcard上,所以需要申请内存卡的读写权限。
引用 16 楼 blueduan1985 的回复:
问题解决了。想不到这么简单。我把备份的关键代码贴出来啦:

    private void backupApp(String packageName) throws IOException {

        File in = new File("/data/app/" + packageName + ".apk");
        File out = new File("/sdcard/BackupApp/" + packageName + ".apk");
        out.createNewFile();
        FileInputStream fis = new FileInputStream(in);
        FileOutputStream fos = new FileOutputStream(out);

        int count;
        byte[] buffer = new byte[256 * 1024];
        while ((count = fis.read(buffer)) > 0) {
            fos.write(buffer, 0, count);
        }

        fis.close();
        fos.flush();
        fos.close();
    }
至于获取已安装程序的包名就不再累述了。 不需要任何额外的设置和权限。只要先获取所有程序的包名,然后依次传入上面的函数即可。 当然,因为我把程序备份到sdcard上,所以需要申请内存卡的读写权限。
请问你这段代码和直接拷贝原apk文件到目标文件夹有什么区别?谢谢
妖怪 2012-03-22
  • 打赏
  • 举报
回复
用shell command可能能更简单点
blueduan1985 2012-03-02
  • 打赏
  • 举报
回复
/data/app是可读的。备份用户安装的应用已经可以了。代码见16楼。
现在不清楚的是备份/data/data下的数据怎么搞。

[Quote=引用 25 楼 a328240784 的回复:]

。。。。这个可以备份吗??模拟器的话有root权限,可以读写data/app下的apk,但没root的手机是不是也是可读的?
[/Quote]
blueduan1985 2012-03-01
  • 打赏
  • 举报
回复
有人清楚如何备份数据吗
追风筝的孩子 2012-03-01
  • 打赏
  • 举报
回复
。。。。这个可以备份吗??模拟器的话有root权限,可以读写data/app下的apk,但没root的手机是不是也是可读的?
blueduan1985 2012-03-01
  • 打赏
  • 举报
回复
我尝试备份手机qq的数据。发现根目录下有5个文件夹2个文件
只有lib文件夹下的文件可以读到。其他4个文件夹返回的文件list都是null。另外两个文件也无法读出内容。

是不是备份数据必须用shell命令备份啊
blueduan1985 2012-03-01
  • 打赏
  • 举报
回复
备份数据是不是需要root啊
木子小 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 blueduan1985 的回复:]

有人清楚如何备份数据吗
[/Quote]
相关应用程序的数据在/data/data/目录里,你可以仿照备份应用那样去做
jdxwind 2012-02-29
  • 打赏
  • 举报
回复
用户自己安装的应用在安装的时候会把安装程序复制到/data/app目录下,可以的话,可以直接备份整个文件夹,不过貌似这个目录需要root权限才能访问吧...
妖怪 2012-02-29
  • 打赏
  • 举报
回复
如果是备份用户下载的应用程序是可以做到的
原理很简单 就是扫描sdcard和flash上面的文件并判断后缀
如果是APK的就直接保存或者调用PM的接口去判断是不是有效APK应用文件 然后保存
你说的是这个么?
blueduan1985 2012-02-29
  • 打赏
  • 举报
回复
帖子挂了一天了还没解决。。
没有做过这个功能的高手吗
2在路上 2012-02-29
  • 打赏
  • 举报
回复
其实可以扩展为增加数据的。嘿嘿,以便需求增加
2在路上 2012-02-29
  • 打赏
  • 举报
回复
多谢楼主分享
blueduan1985 2012-02-29
  • 打赏
  • 举报
回复
嗯,不过我不要求备份数据。只要备份应用。
我的需求相对简单。

数据备份有什么方法吗
[Quote=引用 17 楼 li674688017 的回复:]

这样的话数据没有备份~~
[/Quote]
Marco_Lee 2012-02-29
  • 打赏
  • 举报
回复
这样的话数据没有备份~~
blueduan1985 2012-02-29
  • 打赏
  • 举报
回复
问题解决了。想不到这么简单。我把备份的关键代码贴出来啦:


private void backupApp(String packageName) throws IOException {

File in = new File("/data/app/" + packageName + ".apk");
File out = new File("/sdcard/BackupApp/" + packageName + ".apk");
out.createNewFile();
FileInputStream fis = new FileInputStream(in);
FileOutputStream fos = new FileOutputStream(out);

int count;
byte[] buffer = new byte[256 * 1024];
while ((count = fis.read(buffer)) > 0) {
fos.write(buffer, 0, count);
}

fis.close();
fos.flush();
fos.close();
}




至于获取已安装程序的包名就不再累述了。
不需要任何额外的设置和权限。只要先获取所有程序的包名,然后依次传入上面的函数即可。
当然,因为我把程序备份到sdcard上,所以需要申请内存卡的读写权限。
梦_枫 2012-02-29
  • 打赏
  • 举报
回复
如果只是复制出来,不要ROOT也可以的,,,没有ROOT的情况下文件都是只读状态
blueduan1985 2012-02-29
  • 打赏
  • 举报
回复
就是备份用户自己安装的应用。
我看好多程序都有这个功能,但都没用到root权限啊
[Quote=引用 10 楼 jdxwind 的回复:]

用户自己安装的应用在安装的时候会把安装程序复制到/data/app目录下,可以的话,可以直接备份整个文件夹,不过貌似这个目录需要root权限才能访问吧...
[/Quote]
梦_枫 2012-02-29
  • 打赏
  • 举报
回复
系统应用包都在/sys/app下,,
加载更多回复(7)

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧