首页
学习
活动
专区
圈层
工具
发布

Android Apk安装过程解析

本文主要内容 静默安装 apk安装流程简析 installd进程意义 最近工作上遇到静默安装相关的内容,顺便学习一下apk安装的知识 静默安装 静默安装是指apk无感安装,不需要用户确认。...安装流程简析 PackageManager是一个抽象类,应用调用pm安装apk,这中间会发生跨进程调用,因为pms是运行在system进程中的。...之前绑定的服务,在此处主要有两个功能,一是解析apk中的基本信息,比如包名、版本号、安装位置等 pkgLite = mContainerService.getMinimalPackageInfo(origin.resolvedPath...installPackageLI方法非常长,它需要验证apk的签名文件,并且详细解析apk中的所有activity、service等信息并加以保存,方法非常非常的长 //收集签名并验证 try {.../包名 目录)。

2.3K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 减包 - 减少APK大小

    一个APK文件就是ZIP包,其中包含了组成你的应用的所有文件,比如Java类文件,资源文件,和一个包含被编译资源的文件。...避免抽取Native库 在APK中存储未压缩的so文件,并且在Manifest文件的中设置android:extractNativeLibs为false,这会防止在安装时PackageManager...将APK中的so文件拷贝到文件系统,避免这种拷贝会让应用在做增量更新时的更新包更小。...维持多个小的APK包 你的APK会包含用户下载了但从未使用的内容,比如地区或语言信息(译注:比如我是中国人,我就不会用到其他语种的资源)。...为了给用户创建小的下载包,你能把你的应用拆分成多个APK,这些APK的差别在于一些因素(比如屏幕大小或者GPU纹理支持)。 当一个用户下载了应用,设备根据自身的特性和设置获取正确的APK。

    2.4K60

    Android减包 - 减少APK大小

    一个APK文件就是ZIP包,其中包含了组成你的应用的所有文件,比如Java类文件,资源文件,和一个包含被编译资源的文件。...避免抽取Native库 在APK中存储未压缩的so文件,并且在Manifest文件的中设置android:extractNativeLibs为false,这会防止在安装时PackageManager...将APK中的so文件拷贝到文件系统,避免这种拷贝会让应用在做增量更新时的更新包更小。...维持多个小的APK包 你的APK会包含用户下载了但从未使用的内容,比如地区或语言信息(译注:比如我是中国人,我就不会用到其他语种的资源)。...为了给用户创建小的下载包,你能把你的应用拆分成多个APK,这些APK的差别在于一些因素(比如屏幕大小或者GPU纹理支持)。 当一个用户下载了应用,设备根据自身的特性和设置获取正确的APK。

    2.7K100

    Android查看apk安装包的AndroidManifest.xml文件

    起因 上周在做安卓系统的厂家推送功能,某些机型无法离线厂推,所以准备解包apk看一下打包参数是否出问题。...序言 在Android开发中,可能需要从我们自己的应用跳转到别的应用的界面,但是在不知道别的应用的包名以及类名的情况下,是很难做到这一点的,有个最简单的方法就是下载应用的apk文件,然后修改后缀名为zip...AXMLPrinter2.jar是一款常用的apk反编译工具,主要用于反编译apk文件,包括包名、版本号和图标等信息,可以用AXMLPrinter2对androidmanifest.xml反编译进行明文查看...使用方法 1、 下载工具AXMLPrinter2.jar工具 地址:https://code.google.com/archive/p/android4me/downloads 2、 将要查看的AndroidManfist.xml...这是因为没有安装Java环境或未配置环境变量导致的。 安装JDK 首先先来回顾下安装JDK的过程 1.

    1.6K10

    Android减包 - 使用APK Analyzer分析你的APK

    本文是对 Analyze Your Build with APK Analyzer 的翻译。 Android Studio 2.2包含了APK Analyzer,通过它我们能够直观地看到APK的组成。...(译注:AndroidManifest.xml、resources.arsc本来是二进制形式显示的,APK Analyzer能够解析并显示这些文件的内容) 对比两个APK。...(译注:新版APK和旧版APK之间文件大小的差异) 这里有3种方法访问APK Analyzer: 拖拽APK到Android Studio的编辑窗口。 切换到Project视图,并且双击APK文件。...译注:APK Analyzer是让我们更有效地制定减包方案的实用工具,它能够让我们发现使得APK变大的元凶。 查看文件和大小信息 APK就是一个zip包。...Referenced Method列是DEX文件中引用的全部方法,它包含了你定义的方法、依赖的library、定义在标准Java和Android包中的方法。

    3.7K60

    APK安装流程详解9——PackageParser解析APK(上)

    类简介 PackageParser.java Android 安装一个APK的时候首先会解析APK,而解析APK则需要用到一个工具类,这个工具类就是PackageParser 为了让咱们更好的理解谷歌的安卓团队对...这些"分割"APK的必须都是有效的安装,同时必须满足下面的几个条件: 所有的APK必须具有完全相同的软件包名称,版本代码和签名证书 所有的APK必须具有唯一的拆分名称 所有安装必须包含一个单一的APK...// APK安装包中 保内广播的Action public ArrayList protectedBroadcasts; // APK安装包中 依赖库的名字...一个包由一个"基础"APK和多个"拆分"APK构成。 这个类其实就是通过解析APK而对应的一个"包"的类,这个包代表一个磁盘上的APK安装包。...它自动会检测安装包的模式的是单一APK或者集群APK模式。 这样就可以对"集群APK"的安装包进行理性的检查,比如会检查"base APK"和"拆分APK"是否具有相同的包名和版本号。

    7.1K10

    Android PMS处理APK的安装

    前言 阅读本文前最好阅读Android PMS处理APK的复制这篇文章,因为它和本篇文章本来是一篇文章,由于公号文章的字数限制,被拆分为了两篇文章,这一篇我们接着来学习PMS处理APK的安装。...检查APK是否存在,如果存在就获取此前没被改名前的包名并在注释1处赋值给PackageParser.Package类型的pkg,在注释3处将标志位replace置为true表示是替换安装。...在注释4处将临时文件重新命名,比如前面提到的/data/app/vmdl18300388.tmp/base.apk,重命名为/data/app/包名-1/base.apk。...更新该APK对应的Settings信息,Settings用于保存所有包的动态设置。 如果安装成功就为新安装的应用程序准备数据,安装失败就删除APK。...2.总结 本文和上一篇文章Android PMS处理APK的复制主要讲解了PMS是如何处理APK复制和安装的,主要有几个步骤: 1.

    2.1K10

    Android开发笔记(一百七十三)给安装包APK文件瘦身

    App不但要求功能完善,其他方面也得综合考虑,比如APK安装包的文件大小就是很重要的因素。具备同样功能的两个安装包,一个很大很占用空间,另一个较小不怎么占空间,用户的选择结果自然不言而喻。...首先看allowBackup,该属性若设置true,则允许用户备份APK安装包和应用数据,以便在刷机或者数据丢失后恢复应用。...时便会自动移除无用的资源文件。...之所以提供x86架构的so文件,是为了能够在电脑的模拟器上运行App,开发阶段当然无所谓安装包大小,正式发布就得考虑给APK瘦身,因此正式版本的安装包建议移除非ARM架构的so文件。...                abiFilters "arm64-v8a", "armeabi-v7a" // 保留这两种指令架构的so文件             }         }     } 添加so过滤配置后再导出安装包

    1.6K10

    Android Studio2.3打包apk

    apk,实际就是一个zip包,大家可以修改后缀解压后查看,LZ解压的如下: ? 所有的Android应用程序都要求用一个证书进行数字签名,Android系统不会安装没有进行签名的App。...平时我们的程序可以在模拟器上安装并运行,是因为在应用程序开发期间是以Debug状态进行编译的,因此ADT会自动用默认的密钥和证书来进行签名,而在以发布模式编译时,apk文件就不会得到自动签名,这样就需要进行手工签名...如果你不小心采用了不同的证书,那么系统会要求你的应用程序采用不同的包名,在这种情况下手机相当于安装了一个全新的应用程序。...7.0 引入一项新的应用签名方案 APK Signature Scheme v2,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护。...:在这里我们可以知道这个东西是谷歌针对Android7.0推出的新的签名方案,也就是说,当you的app需要兼容7.0时,才会遇到这个东西。

    1.6K10
    领券