精华内容
下载资源
问答
  • 会说话的狗狗本无限药水自修改钛备份数据+apk安装包,已安装3.4.3可选择直接恢复数据 会说话的狗狗本无限药水自修改钛备份数据+apk安装包,已安装3.4.3可选择直接恢复数据
  • adb备份恢复指定程序数据

    千次阅读 2015-10-13 16:10:43
    应用程序allbackup=”true”的情况下 备份adb devices #显示已连接的设备列表,测试手机是否正常连接 ...-nosystem 表示不备份系统应用 -noshared表示不备份应用存储在SD中的数据 -apk表示备份应用APK安装包

    应用程序allbackup=”true”的情况下
    像这样

    备份

    adb devices #显示已连接的设备列表,测试手机是否正常连接
    adb backup -nosystem -noshared -apk -f com.sina.weibo.ab com.sina.weibo
    -nosystem 表示不备份系统应用
    -noshared表示不备份应用存储在SD中的数据
    -apk表示备份应用APK安装包
    -f 表示备份的.ab文件路径和文件名
    最后是要备份应用的packageName

    恢复

    adb kill-server #关闭ADB
    adb devices #重新启动ADB,检测手机2是否成功连接
    adb restore com.sina.weibo.ab

    展开全文
  • 前言:在公司经常遇到push或者install新的安装包到手机中测试,如果不对原apk进行备份,测试完只能通过还原或者刷机恢复,比较麻烦。 但是通过几行简单命令就可以做到对原apk进行备份,mark一下,方便以后查阅使用...

      前言:在公司经常遇到push或者install新的安装包到手机中测试,如果不对原apk进行备份,测试完只能通过还原或者刷机恢复,比较麻烦。

    但是通过几行简单命令就可以做到对原apk进行备份,mark一下,方便以后查阅使用~

    第一步:查询所有安装的apk 

    adb shell pm list packages  

    ……

    --->找到自己要备份出来的apk的包名。

    第二步:查询apk路径(以Settings.apk为例)

    adb shell pm path com.android.settings

    --->第二行所指的即为apk路径

    第三步:取出apk

    adb pull /data/app/com.android.settings-cY2nu6V9nroDo1Jp_wLvDQ==/base.apk Settings.apk

    展开全文
  • Apk打包-安装过程

    2020-10-09 22:49:24
    每次系统重启时,都需要对程序做一次重新安装,为了提高效率,程序在第一次安装时,PMS会将安装信息进行保存,以便再次安装时进行快速恢复,settings就是用来保存这些信息的对象 安装包信息数据是通过xml进行存储的...

    App的打包过程

    打包过程:

    • 使用aapt来打包res资源文件,生成R.java、resources.arsc和res文件
    • 处理.aidl文件,生成对应的Java接口文件
    • 通过Java Compiler编译R.java、Java接口文件、Java源文件,生成.class文件
    • 通过dex命令,将.class文件和第三方库中的.class文件处理生成classes.dex
    • 痛殴apkbuilder打包成apk
    • 对apk进行签名,可以进行Debug和Release 签名
    • release mode 下使用 aipalign进行align,即对签名后的apk进行对齐处理
      https://www.jianshu.com/p/7c288a17cda8

    App的安装过程

    安装过程:

    • 复制APK安装包到/data/app目录下,解压缩并扫描安装包,
    • 向资源管理器注入APK资源,
    • 解析AndroidManifest文件,并在/data/data目录下创建对应的应用数据目录,
    • 然后针对Dalvik/ART环境优化dex文件,保存到dalvik-cache目录,
    • 将AndroidManifest文件解析出的组件、权限注册到PackageManagerService并发送广播
      https://blog.csdn.net/mysimplelove/article/details/93619361

    卸载过程

    删除安装过程中在上述三个目录下创建的文件及目录

    源码分析

    • 通过PackageManagerService来操作,而它早在系统启动SystemServer时便注册好了,SystemServer则由init进程启动

    • 初始化系统上下文时,生成了ActivityThread ,它相当于系统的主线程,我们看systemMain方法

    • 当调用为系统线程时,attach会执行else代码,创建Instrumentation和上下文,我们接着看启动包管理器服务的方法startBootstrapServices

    • SystemServer启动了许多服务,PackageManagerService通过main方法创建,并将系统上下文和mInstaller工具类传递进去

    • 当一个新应用程序,要安装并运行在Linux中时,系统需要先为其开辟一个用户空间,并分配Linux独立用户pid或共享用户uid,由PackageManagerService完成

    • 每次系统重启时,都需要对程序做一次重新安装,为了提高效率,程序在第一次安装时,PMS会将安装信息进行保存,以便再次安装时进行快速恢复,settings就是用来保存这些信息的对象

    • 安装包信息数据是通过xml进行存储的,双备份,双次检测
      Xml以package为根标签保存了一个应用的完整信息,所以从package标签开始解析包数据

    • 每个应用程序的安装信息都是用PackageSetting对象来存储,并以包名为key,保存在mPackages这个HashMap中,如果程序已安装过,直接从mPackages获取。如果第一次安装,将构建一个PackageSetting对象来保存信息

    • 用户类型的pid都在10000到19999之间,说明Android系统只分配9999个给用户类型的程序,小于10000保留给特权用户使用,但这些id也可以通过共享的方式给用户程序使用

    • 解析编译后的AndroidManifest-解析application标签
      包名、应用名还有4大组件都被解析出来了。这里注意到有个owner,它是在parseBaseApk里根据包名生成的Package对象,Manifest标签解析后的数据都存在此对象中。

    • Package是PackageParser解析器的内部类,Package用了四个列表分别保存四大组件

    • 系统中所有已安装的程序都用Package来描述,而这些Package就保存在mPackages 中,而每一个应用的四大组件都分别保存在mActivities 、mReceivers 、mServices 和mProviders 中

    public final static class Package {
    
            public String packageName;
    
            public String[] splitNames;
    
            public String codePath;
        
            public String baseCodePath;
    
            public String[] splitCodePaths;
        
            public int[] splitFlags;
    
            public boolean baseHardwareAccelerated;
    
            public final ApplicationInfo applicationInfo = new ApplicationInfo();
    
            public final ArrayList<Permission> permissions = new ArrayList<Permission>(0);
            public final ArrayList<PermissionGroup> permissionGroups = new ArrayList<PermissionGroup>(0);
            //保存四大组件
            public final ArrayList<Activity> activities = new ArrayList<Activity>(0);
            public final ArrayList<Activity> receivers = new ArrayList<Activity>(0);
            public final ArrayList<Provider> providers = new ArrayList<Provider>(0);
            public final ArrayList<Service> services = new ArrayList<Service>(0);
    

    题目

    清除数据和清除缓存的区别

    清除数据包括你的sp内容,sqlite数据库等
    清除缓存应该就是内存占用的数据回收吧。不会影响存储在sdk卡上的内容

    学习参考博客

    https://www.jianshu.com/p/96460db33416
    https://blog.csdn.net/u012267215/article/details/88313259

    App桌面图标显示过程

    当系统完成各种服务的注册和启动后,将调用AMS的systemReady方法作为入口,让AMS启动Launcher界面

    Launcher根据android.intent.action.MAIN和android.intent.category.LAUNCHER两个条件,将应用入口封装成一个快捷图标,就能启动跳转到对应的程序
    获取成功返回一个ProcessRecord对象
    它是对应用程序进程的描述,如果存在,则调用realStartActivityLocked开启新的Activity;如果不存在,将执行startProcessLocked方法通知Zygote启动新进程。我们先看AMS如何通知的

    所有应用程序信息已经加载完成,保存到mBgAllAppsList中,mBgAllAppsList把应用程序的数据封装成AppInfo类型的

    系统用一个ProcessRecord类来描述一个应用程序的进程,由于系统还没有启动过任何程序,getProcessRecordLocked首次将返回null。
    mStackSupervisor是ActivityStackSupervisor类型,对任务栈管理器ActivityStack的管理,
    ActivityStack则是对任务栈TaskRecord的管理,而每个Activity在任务栈中都使用ActivityRecord来进行描述。
    我们通常所说的Activity入栈,指的就是将ActivityRecord添加到对应的TaskRecord中

    ProcessRecord的成员变量thread则持有ApplicationThread的远程代理接口IApplicationThread ,因此AMS和ActivityThread能进行通讯

    题目

    安装了app,在界面看不到图片icon?

    有的系统有时候会偶现会这样,一般重启手机会好
    之前遇到过华为手机出现过这个问题:
    华为应用市场,点击下方的“管理”,点击进入“安装管理”-设置单项权限-创建桌面快捷方式

    学习参考博客

    https://www.jianshu.com/p/fa1ad6cf7b2a
    Android资源访问机制
    https://blog.csdn.net/heng615975867/article/details/81191106

    PackageManagerService
    PackageManagerService是Android系统核心服务之一,在Android中的非常重要,主要负责的功能如下:
    . 解析 AndroidManifest.xml,主要包括AndroidManifest中节点信息的解析和target-name的分析和提炼

    .	扫描本地文件,主要针对apk,主要是系统应用、本地安装应用等等。这部分会在下面仔细讲解。
    
    .	管理本地apk,主要包括安装、删除等等
    

    权限扫描
    PackageManagerService在systemReady()后,进行了/system/etc/permissions中的各种xml进行扫描,进行相应的权限存储

    Apk扫描

    APK的安装流程
    生成的APK文件本质还是一个zip文件,只不过被Google强行修改了一下后缀名称而已。所以我们将APK的后缀修改成.zip就可以查看其包含的内容了。
    APK的打包过程

    展开全文
  • 老铁们有没有手机APP升级后发觉没升级前好用,想恢复到升级前又苦于找不到原始安装包。有了这个神器,就可以在升级前先备份老版本的app,升级后发觉不爽,可以随时恢复回去,爽歪歪哟,嘿嘿嘿嘿
  • 使用adb进行备份和恢复

    万次阅读 2018-02-28 20:58:54
    前言这里参考了黄皮书中的第11章android中的allowBackup属性这个...导出apk假设这时我手机上有一个app,我想将其安装包复制到电脑中。 运行该app,获取其包名adb shell dumpsys activity top #找到该app的路径adb she

    前言

    这里参考了黄皮书中的第11章

    android中的allowBackup属性

    这个属性在开发的过程中通常是默认开启的,Google起初是为了防止数据丢失,留下了这个功能,但是这个属性也容易造成一些隐私数据的泄露。

    导出apk

    假设这时我手机上有一个app,我想将其安装包复制到电脑中。
    运行该app,获取其包名

    adb shell dumpsys activity top #

    这里写图片描述

    找到该app的路径

    adb shell pm path com.world.three

    这里写图片描述

    导出apk文件,到当前目录下。

     adb pull /data/app/com.world.three-1.apk .

    接下来可以使用一些工具,查看AndroidManifest.xml文件。发现可以进行备份。

    备份数据

     adb backup -nosystem -all -noapk  -noshared -f app_live.ab com.world.three

    [-system | -nosystem] 是否备份系统
    [-apk | -noapk] 是否备份apk安装文件
    [-shared | -noshared] 是否备份手机存储空间
    -f *.ab 存档格式一定要是.ab

    查看数据

    这里使用abe工具解析ab文件
    下载

    java -jar abe.jar unpack app_live.ab app_live.rar

    恢复数据

    adb restore app_live.ab

    总结

    自己感觉这些命令还是比较有用的。

    展开全文
  • Application标签

    2018-05-26 16:00:10
    谷歌2010发布Android 2.2 Froyo(冻酸奶)系统,引系统备份功能,允用户备份系统应用和第三方apk安装包及应用数据以便刷机或数据丢失后恢复应用。 第三方应用开发者需在应用AndroidManifest.xml配allowBackup...
  • 记录AndroidManifest.xml里allowBackup属性,它会引起安全漏洞 这个属性是在Android 2.2中引入的一个...允许用户备份系统应用或第三方应用apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用,用户即可通过ad...
  • 目录 AndroidManifest.xml中的AllowBackup 打开子应用;...允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用,用户即可通过adb backup和adb restore来进行对应用.
  •  在谷歌2010年发布Android 2.2 Froyo (冻酸奶)系统中,谷歌引入一个了系统备份的功能,允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用。 第三方应用开发者需要在应用的...
  • 在谷歌2010年发布Android 2.2 Froyo (冻酸奶)系统中,谷歌引入一个了系统备份的功能,允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用。 第三方应用开发者需要在应用的...
  • Android allowBackup属性

    2020-07-21 15:19:14
    Android应用安全性分析时,报了这样一个bug: ...允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用。第三方应用开发者需要在应用的 AndroidManifest.xml 文件..
  • (冻酸奶)系统中,谷歌引入一个了系统备份的功能,允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用。 第三方应用开发者需要在应用的 AndroidManifest.xml 文件中配置 ...
  • 背景2012年Android 2.2 Froyo系统中,谷歌引入了系统备份的功能,允许用户备份系统应用和第三方应用的APK安装包和应用数据。 第三方应用需要在AndroidManifest.xml中配置allowBackup(默认true)。当这个标志被设置...
  • 软件介绍: Apowersoft Phone Manager是一款智能手机助手,功能上比其同类软件还要强大,...可以安装应用管理文件,备份/恢复手机数据,录制IOS屏幕,可关联APK,IPA安装包,当双击APK/IPA应用安装包可以直接安装。
  • 华为谷歌框架安装.zip

    2020-07-14 19:16:38
    华为谷歌框架安装包,内含软件,需导入手机从内部储存恢复软件运行激活即可! 实测可用,2020年谷歌框架安装器,方便快捷,还包括谷歌等自带软件APK供你下载。
  • APP端测试常见的功能点

    千次阅读 多人点赞 2018-09-18 09:51:33
    一、安装、卸载、更新、运行 ...apk/ipa安装包安装)(有网,无网是否都正常) 卸载过程中出现死机,断电,重启等意外的情况,待环境恢复后是否可以继续正常卸载 卸载是否支持取消功能,单击取消后软件...
  • Monkey基本命令

    万次阅读 2018-06-18 21:10:32
    –adb monkey测试相关命令介绍:——–1,adb install xx.apk:把指定的安装包apk文件安装到测试设备中2,adb shell monkey :给指定的设备发送压力测试,number是要测试的次数。执行这个命令的效果就相当于有个手指在你...
  • android monkey常用

    2018-10-23 15:39:55
    1,adb install xx.apk:把指定的安装包apk文件安装到测试设备中 2,adb shell monkey :给指定的设备发送压力测试,number是要测试的次数。执行这个命令的效果就相当于有个手指在你的手机上乱点。我尝试了10000次,结果...
  • App测试的时候,建议让开发打好包APK和IPA安装包,测试人员自己安装应用,进行测试。在测试过程中需要注意的测试点如下:   1.安装和卸载   应用是否可以在IOS不同系统版本或android不同系统版本上安装 安装...
  • apk/ipa安装包安装)(有网,无网是否都正常) 卸载过程中出现死机,断电,重启等意外的情况,待环境恢复后是否可以继续正常卸载 卸载是否支持取消功能,单击取消后软件卸载情况是否正常 应用是否可以在iOS和...
  • adb1.0.26包含fastboot.exe

    2019-03-05 15:11:03
    相应地,如果要恢复 adbd 为非 root 权限的话,可以使用 adb unroot 命令。 指定 adb server 的网络端口 命令: adb -P <port> start-server 默认端口为 5037。 设备连接管理 查询已连接设备/模拟器 命令: adb ...
  • 083《APK Downloader for Google Play Store》从谷歌商店获取apk安装包 082《iGG谷歌访问助手》如何从Chrome商店下载扩展工具? 081《GitHub加速》提高中国开发者访问GitHub的速度 080《小码短链接》免费为...
  • 相应地,如果要恢复 adbd 为非 root 权限的话,可以使用 adb unroot 命令。 指定 adb server 的网络端口 命令: adb -P <port> start-server 默认端口为 5037。 设备连接管理 查询已连接设备/模拟器 命令:...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

恢复apk安装包