是否可以从已安装的应用程序备份apk?


13

我有一些大型游戏,我不经常玩,但也不想删除。是否可以将这些应用程序备份为apk,以便以后可以离线安装它们?我不是在谈论仅备份应用程序数据,为此目的存在许多工具。我希望能够在以后再次脱机安装该应用程序。另外,这不一定是应用程序建议请求,任何实现此目的的方法都可以。


1
Android自动保存已安装应用程序的所有apk文件。如果您恰好具有root用户访问权限,则应该能够从/system/app(系统应用程序)或/data/app/(用户应用程序)获取APK
matan129 2014年

从Play商店下载Android助手应用。它允许将应用程序备份为APK。

Answers:


18

一个非常简单的方法是Google Play商店中的ES File Explorer。您可以浏览到

  • /system/app 文件夹(用于系统应用程序)
  • /data/app 文件夹(用于用户应用程序;需要root用户才能访问)

并将它们复制到您的/sdcard(或其他任何地方)。

使用ES File Explorer复制多个文件非常容易。长按其中一个文件,然后在要复制的所有文件上打勾。然后浏览到要放置它们的文件夹(在sdcard上)。

通过USB电缆连接到计算机将使您可以将sdcard内容备份到计算机。

更新(访问受保护的数据/应用程序区域):

我注意到该/data/目录不可读。如果您通过名称知道内容,则可以提取任何内容。我将描述一个(cli)解决方案来获取名称和文件。但是,Izzy建议的备份工具是最简单的方法。

这是一种逐步方法,用于获取软件包列表并使用命令行提取软件包:

  1. 下载并安装Android SDK软件包(或者,如果您不打算开发Android应用,请参见是否需要最小化的ADB安装以获取需要少得多的空间的解决方案)。尽管您几乎可以访问世界上的所有内容(Android),但不要太过随便...只关注一个近期目标,所有其他功能可以在不同的日子使用。

  2. 将路径添加到软件包安装的两个目录中([installedpath]/tools[installedpath]/platform-tools用于完整的SDK安装)。

  3. 现在,通过usb插入Android,运行它以获取已安装应用程序的完整列表:
    $ adb shell 'pm list packages'
    现在,您将获得所有已安装应用程序名称的列表。

  4. -f通过指定在上一个列表中找到的搜索字符串,使用该参数来获取所需软件包的完整路径名:
    $ adb shell 'pm list packages -f reader'

  5. 现在拉出您要使用的软件包的完整路径名:

    ## adb pull [filepathname] [destination path] ##
    $ adb pull /data/app/com.ebooks.ebookreader-2.apk ~/mybackupdir
    

这些步骤可能看起来很复杂,但是比说的容易。执行几次后,您会发现从设备中拉出任何应用程序非常容易。您也可以编写脚本作为自己的个人备份实用程序来执行此操作。

尽管在替代答案中提到了gui替代方案,但我强烈建议您查看adb命令的功能,其中包括完整备份...供用户精确选择要备份的内容和位置的选项。

安装完整的Android SDK后,您将可以从命令行更全面地访问android设备的组件。

查看命令:

$ adb -help

查看(帮助屏幕的)备份部分:

adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [<packages...>]

     - write an archive of the device's data to <file>.
     If no -f option is supplied then the data is written
     to "backup.ab" in the current directory.

     (-apk|-noapk enable/disable backup of the .apks themselves
     in the archive; the default is noapk.)

     (-obb|-noobb enable/disable backup of any installed apk expansion
     (aka .obb) files associated with each application; the default
     is noobb.)

     (-shared|-noshared enable/disable backup of the device's
     shared storage / SD card contents; the default is noshared.)

     (-all means to back up all installed applications)

     (-system|-nosystem toggles whether -all automatically includes
     system applications; the default is to include system apps)

     (<packages...> is the list of applications to be backed up.  If
     the -all or -shared flags are passed, then the package
     list is optional.  Applications explicitly given on the
     command line will be included even if -nosystem would
     ordinarily cause them to be omitted.)

您可以使用Android备份提取器浏览adb实用工具创建的压缩备份文件。

将备份还原到android是一个简单的“ -restore”命令:

$ adb restore <file>

Android备份提取器提供了一种探索备份并挑选单个文件(例如OP的目标中的apk)进行存储或保存的方法。

该资源管理器软件包包括各种多平台工具,例如Java,perl和cygwin。

您可以使用(使用java extract opton)提取备份:

## this line converts the android backup into a tar file ##
$ java -jar abe.jar unpack backup.ab backup.tar

在我最初的cli回答之外,完成OP特定问题的最精确的GUI应用程序是AirDroid。它是免费的,非常用户友好并且使用直观。

要使用,请运行该应用程序。它提供了用于输入Web浏览器的本地IP地址。该链接将为您提供类似于Android主屏幕的UI。单击“应用程序”图标,然后选择一个或多个要下载的应用程序。您可以使用相同的界面安装或重新安装Apps。

还有其他几种GUI替代方案(图形用户界面),例如QtADB(多平台),或者对于Windows用户,还有我们的成员Ryan Conrad出色的Droid Explorer(请参见例如非根目录设备的完全备份;有关更多信息,另请参阅我们的adb tag-wiki)。


我可以在不扎根手机的情况下访问这些文件夹吗?
kBisla 2014年

@BlueFlame是的。
LD詹姆斯

4

有几个专门针对此主题的应用程序。可能最著名的是AppMonster,我已经使用了多年(在Pro版本中),非常可靠(并且非常活跃)。有关替代方案和更多详细信息,请查看:


AppMonster是否比TitaniumBakcup更好?我在LG G3上备份了一个应用程序,然后将备份复制到另一部手机上,并尝试“还原”它,尽管它不属于第二台设备,但失败了。
Shayan

1
@Shayan不。我想说的是没有比TiBu更好的了。而且我不确定Grigory是否仍在积极开发AppMonster。我不再使用它了(尽管我非常喜欢Grigory,并且亲自认识他)。
伊兹

1

我已经安装了'avg antivirus',我只是从中备份文件,它们被存储为apks。


1

每个人都在这里建议使用封闭源软件,也许是Adware。一个人应该使用 具有“ 应用程序”部分的Ghost Commander文件管理器。将应用程序复制到已挂载(以通俗易懂的方式访问)的存储非常简单。


3
对读者来说:发贴人没有提到它,我也不认为它适合编辑,但是有关的应用程序实际上是一个开源应用程序,因此可以解释为什么他反对封闭源代码软件。
Firelord

0

为什么不使用SD MAID?

到目前为止,我一直在使用此工具备份我的Android应用程序。它轻巧,易于使用,可从已安装的应用中获取apk(无需root)。

分步操作:

  1. 从Google Play商店下载SD MAID
  2. 打开SD MAID菜单,从左侧滑动。
  3. 选择“ AppControl”以显示已安装在Android手机上的应用程序。
  4. 点击所需的应用程序
  5. 然后点击导出.apk菜单
  6. 你得到你想要的!

顺便说一句,输出(APK)的默认位置将保存在“下载”文件夹(内部存储)中。

参考Bartolab,如何从Android上已安装的应用程序导出APK文件



0

根据Mahesh Hegde的回答,我可以确认Total Commander也可以保存应用程序的APK。它不需要root或任何其他设置。

在主屏幕中,有“已安装的应用程序”部分。只需选择该应用程序并将其复制到另一个选项卡中的任何文件夹。

该应用程序可以直接从开发人员或应用程序商店下载。


-1

然后备份您的应用程序数据,然后转到“设置”->“应用程序”->->“清除数据”(清除应用程序数据)。之后,您可以使用APK共享/发送应用程序获取所选应用程序的apk。


1
看起来很不错:要备份应用程序,我必须删除数据吗?谢谢,但是我怀疑这是个好方法。为什么相同的答案两次?
伊兹

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.