android备份:apk安装过程及原理,备份已安装应用的apk包技术实现方案

本文介绍了如何在没有原始apk的情况下备份已安装的安卓应用。通过理解系统中应用安装的目录结构,特别是"data/app"目录,可以获取到应用的备份。使用PackageManager API获取应用信息,并通过读取源文件进行复制,实现无权限限制的备份。同时提供了判断应用是否为第三方应用的方法,并给出了完整代码示例,确保备份APK的正确性。
摘要由CSDN通过智能技术生成

安卓设备上备份已安装应用的apk包技术实现方案

需求的目的

在只有安装应用, 没有该应用的apk,而我们又想活取应用apk,用来分享给别人,或是应用的备份, 说是应用的增量升级的, 怎么办?

本文将告诉你如何靠谱的导出一个已安装应用的apk.

了解相关目录

安卓设备上根据安卓方式的不同,安装的数据存放路径也不同

1. system/app

此类应用是系统初始化时候安装完成的, 存放在 ‘system/app’ 目录下, 用户无法删除及操作.

2. data/app

通过market下载后安装(无安装界面),或是用户手动安装(adb,packageinstall等).这类apk安装过程系统会备份在data/app目录下

3. /mnt/asec/

安装到sd卡上的应用,作用同上

4. data/data

应用安装过程,会在该目录下存在应用的私有数据

5. data/dalvik-cache

应用安装过程中,会解析data/app下的安装包中的dex文件, 拷贝到data/dalvik-cache,以备应用运行时使用.

应用的删除过程即删除应用安装时所产生的这几个文件

备份apk思路分享

了解这个文件夹的作用后, 可以看到导出已安装应用只要拷贝相关目录下的应用即可.

通过测试,可以确定除了系统应用安装的备份数据没有权限, 第三方应用所产生的文件夹下的内容都是有读权限的. 所以我们不需要任何特殊权限即可实现安装应用的备份导出.

那问题来了, 在相关目录下如:data/app下如何才能知道一个应用的决定路径?

答案:

> context.getPackageManager().getApplicationInfo("packagename",

> 0).sourceDir

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值