首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

这些"分割"APK的必须都是有效的安装,同时必须满足下面的几个条件: 所有的APK必须具有完全相同的软件包名称,版本代码和签名证书 所有的APK必须具有唯一的拆分名称 所有安装必须包含一个单一的APK...// APK安装包中 保内广播的Action public ArrayList protectedBroadcasts; // APK安装包中 依赖库的名字...一个包由一个"基础"APK和多个"拆分"APK构成。 这个类其实就是通过解析APK而对应的一个"包"的类,这个包代表一个磁盘上的APK安装包。...它自动会检测安装包的模式的是单一APK或者集群APK模式。 这样就可以对"集群APK"的安装包进行理性的检查,比如会检查"base APK"和"拆分APK"是否具有相同的包名和版本号。...collectCertificates函数获取了应用的签名信息,这些对象都是后续解析中需要用的,因此将这些函数传递给解析函数,这些对象都是后续解析中需要用的,因此将这些参数传递给解析函数,解析完成后关闭资源管理与解析

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

    APK安装流程详解10——PackageParser解析APK(下)

    //将该属性设置为true,则将允许本分管理尝试恢复操作,有的时候版本不匹配表明数据是不兼容的, // 这个时候如果可以恢复到不同的版本的数据,那么应用程序将承受很大风险...// 该属性如果设置了 false,则系统在安装系统的时候不会把so文件从apk中解压出来了 // 同时修改了System.loadLibrary 直接打开调用apk中的.so文件。...安装包,解析这个目录下的所有APK安装包。...同样也执行例行检查,比如检查"base APK"和"拆分APK"是否有相同的安装包包名和版本号。...安装流程详解9——PackageParser解析APK(上)中 五、PackageParse#parseMonolithicPackage(File, int)方法解析 下面我们依次讲解下上面的其他三个方法

    4.9K10

    Android Apk安装过程解析

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

    1.7K60

    APK安装流程详解11——普通应用安装简介

    四、安装流程概述 apk的大体流程如下: 第一步:拷贝文件到指定的目录: 在Android系统中,apk安装文件是会被保存起来的,默认情况下,用户安装apk首先会被拷贝到/data/app目录下...系统在安装这个apk的过程中,会解析apk的AndroidManifest.xml文件,提取出这个apk的重要信息写入到packages.xml文件中,这些信息包括:权限、应用包名、APK安装位置、版本...安装方式的界面 普通的APK安装方式 一般是经过下面的两个界面的 ?...文件的实际路径 final File sourceFile = new File(mPackageURI.getPath()); // 创建APK文件的分析...第六步:获取布局文件中的控件 第七步:从Intent中获取相应的数据信息,为下一步做准备 第八步:创建安装的监听对象 第九步:根据不用的scheme来进行不同安装模式下的安装操作 这个方法里面涉及到三个重要内容如下

    8.4K42

    Flutter插件开发之APK自动安装

    Flutter插件开发之APK自动安装 本文适用于Android开发人员 什么是Flutter Plugin Flutter Plugin是一种特殊的包,包含一个用Dart编写的API定义,结合Android...相关代码如下[1240] 获取版本号demo 打开插件lib下的dart文件,会有平台自动生成的代码,具体是实现获取APP版本号,如下面代码所示[1240] java部分的代码如下面所示[1240] 实现自动安装...APK 实现自动安装APK,需要从Flutter应用层传入一个APK安装包的地址到host层,dart代码如下所示:[1240] java部分的代码如下所示[1240] 到此,host层就能获取到APK...安装包的路径了,后面只需实现Android安装APK的代码逻辑即可,在日志下面添加如下代码[1240] installApk代码实现如下所示[1240] 除此之外,还需修改AndroidManifest.xml

    2.2K40
    领券