PackageInstaller 原理简

2023-11-09

http://topic.csdn.net/u/20110410/23/43571CFA-87B2-4E36-880C-1FA499BA32B0.html
应用安装是智能机的主要特点,即用户可以把各种应用(如游戏等)安装到手机上,并可以对其进行卸载等管理操作。APK是Android Package的缩写,即Android安装包。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。

Android应用安装有如下四种方式
1 系统应用安装――开机时完成,没有安装界面
2 网络下载应用安装――通过market应用完成,没有安装界面
3 ADB工具安装――没有安装界面。
4 第三方应用安装――通过SD卡里的APK文件安装,有安装界面,由packageinstaller.apk应用处理安装及卸载过程的界面。
应用安装的流程及路径
应用安装涉及到如下几个目录:
system
/ app 系统自带的应用程序,无法删除
data
/ app 用户程序安装的目录,有删除权限。
安装时把apk文件复制到此目录
data
/ data 存放应用程序的数据
Data
/ dalvik - cache 将apk中的dex文件安装到dalvik - cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一)

安装过程:复制APK安装包到data
/ app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik - cache目录,并data / data目录下创建对应的应用数据目录。
卸载过程:删除安装过程中在上述三个目录下创建的文件及目录。
 

一、系统应用安装:
PackageManager Service处理各种应用的安装,卸载,管理等工作,开机时由systemServer启动此服务
(源文件路径:android\frameworks\base\services\java\com\android\server\ PackageManagerService.java)
 
 
PackageManager Service服务启动的流程:
1 首先扫描安装“system\framework”目录下的jar包
1 scanDirLI(mFrameworkDir, PackageParser.PARSE_IS_SYSTEM,
  scanMode 
|  SCAN_NO_DEX);
 
 
2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PackageInstaller 原理简 的相关文章

  • Vnc配置

    2017 04 15 1 在terminal中输入vncconfig 弹出小窗 勾选对应选项 注意 不要关闭这个小窗 不要关闭这个小窗 不要关闭这个小窗 2 vncconfig nowin 在linux选中文字后 无需其他按键 直接在win
  • 智慧农业物联网系统解决方案

    一 方案背景 随着城市的发展 人们对于生活水准的要求也越来越高 对于食物的品质需求也越来越高 我作为世界农业大国 农业的发展优势慢慢降低 智慧化农业将带来一次新的农业结构改革 农业的根本问题是效率不高 效益不强 效能不够 原因在于各生产要素
  • Python自动操作 GUI 神器——PyAutoGUI

    我们以前讲过怎样使用 Python 在浏览器中实现页面自动化操作 不管用哪种方式实现 都是通过定位页面中的元素来进行相应的操作 今天我们来聊一聊如何在桌面实现自动化操作 与浏览器页面自动化操作类似 桌面自动化操作也是需要定位鼠标在桌面的位置
  • map的常用用法详解

    头文件 include
  • 基于S函数的BP神经网络PID控制器及simulink仿真

    基于S函数的BP神经网络PID控制器及simulink仿真 文章目录 文章来源和摘要 S函数的编写格式和运行步骤 simulink模型结构 S函数模型初始化部分代码理解 S函数模型更新部分 S函数模型输出部分 S函数完整代码附录 文章来源和
  • 第三方网站/系统使用微信扫码登录

    微信扫码登录网站 微信开放平台 在我们做某个平台或者系统时 都需要有一个登录功能 传统的用户名 密码登录模式看起来似乎并没有手机扫码直接登录来的方便 那么在前端实现上 如何实现微信扫码登录呢 授权流程 第三方发起微信授权登录请求 微信用户允
  • 病例对照研究中,如何对年龄、性别、教育程度进行频数匹配?

    病例对照研究中 如何对年龄性别进行频数匹配 案例一 两组被试匹配 案例二 三组被试匹配 背景 使用默认匹配方法 衡量匹配效果 调整参数 其他匹配方法 参考 案例一 两组被试匹配 案例二 三组被试匹配 背景 我经常遇到的数据情形是 有两组被试
  • 实现【企业微信自建应用使用uni-app H5 开发】,并解决【uni-app集成微信JSSDK(wx、jWeixin)变量冲突问题】

    目录 企业微信的开发与调试 企业微信应用主体逻辑 登录 构造网页授权链接 企业微信SDK配置 demo案例 重要bug修复方法 总结 企业微信的开发与调试 在本地开发基础代码和UI 发布到测试环境进行测试 无法本地调试接口 因为web浏览器
  • AltiumDesigner15.1导出3D PDF 图文教程

    ALtiumDesigner更新的速度就一个字 快 不过从15 4 15出来 貌似很久都没有更新了 等了很久 今天终于出来了 O O哈哈 因为早就耳闻AD15 1会带有3D输出功能 能够直接输出到PDF 这个好玩的功能 怎么能错过 本文就是
  • 时序基本介绍——Jitter与Skew区别

    在时序分析当中 有些基础概念还是要认真了解的 时钟抖动 Clock Jitter 和时钟偏移 Clock Skew 经常容易混淆 时序设计中 对于时钟的要求是非常严格的 因此FPGA中也有专用的时钟管脚 对应着专用的时钟区域BUFG BUF
  • 技术工具类:IDEA集成SonarQube并使用

    1 安装插件 从 File gt Settings gt Plugins 搜索 sonar 如下图 直接点击安装即可 安装成功后重启IDEA 在Settings gt Tools 中找到 SonarLint 如下图 在Coniguratio
  • uni-app提供开箱即用的SSR支持

    SSR 服务端渲染 可以给SPA站点带来两大核心优势 更好的SEO 更快的首屏渲染 很多uni app开发者都在积极尝试SSR 但大多没入门就放弃了 原因在于SSR颇高的技术门槛 vue js 官网在介绍 SSR 章节时的描述如下 本指南将
  • Python pycharm(windows版本)部署spark环境

    一 部署本地spark环境 1 1 安装好JDK 下载并安装好jdk1 7 配置完环境变量 1 2 Spark环境变量配置 去http spark apache org downloads html网站下载相应hadoop对应的版本 我下载
  • GD32 ADC检测电压

    GD32 ADC检测电压 https blog csdn net yangkunhenry article details 112757855 GD32的参考电压在规格书上没有查到 但是由于GD32 和STM32的 某种关系 STM32 的
  • 基本农田卫星地图查询_谷歌地图 最新版v7.3.0

    谷歌地图整合Google的本地搜索以及驾车指南两项服务 能够鸟瞰世界 将取代目前桌面搜索软件 谷歌地图可在虚拟世界中如同一只雄鹰在大峡谷中自由飞翔 登陆峡谷顶峰 潜入峡谷深渊 谷歌地图使用界面 相关软件 版本说明 下载地址 谷歌卫星地图下载
  • 感受了一下myspace

    今天去 www myspace com 看了看 感觉还可以 这里是年轻人交流的一个平台 可以了解当前世界年轻的喜好 他们做什么 有想些什么 可以和自己对比 把握时代信息 我觉得还是有点必要 就想当初我进入 天涯 时一样 希望从中能学到一些东
  • qt opengl 加载3d模型(obj格式)

    和一般c 程序加载3d模型一样 解读出数据内容 再用一个常规的着色程序就可以了 我实现的效果如下 采用的免费模型 实现思路和前面的略有不同 就是把自己生成顶点 纹理 法线的过程变成从文件读取了 我的obj文件如下 mtllib C User
  • 征服面试官:RxJava 原理篇 掌握这篇面试题汇总,吊打面试官!

    1 RxJava 如何实现线程切换 subscribeOn 是通过新建 Observable 的方式 使用 OnSubscribe 类的方式去做到线程切换的 observeOn 是通过 operator 操作符的形式去完成线程切换的 所以他
  • C++ 函数模板和类模板--泛型编程

    所谓函数模板 实际上是建立一个通用函数 其函数类型和形参类型不具体指定 用一个虚拟的类型来代表 这个通用函数就称为函数模板 凡是函数体相同的函数都可以用这个模板来代替 不必定义多个函数 只需在模板中定义一次即可 一 函数模板初识 1 为什么
  • java基础知识点

    作者简介 哪吒 CSDN2022博客之星Top1 CSDN2021博客之星Top2 多届新星计划导师 博客专家 专注Java硬核干货分享 立志做到Java赛道全网Top N 本文收录于 Java基础教程系列 目前已经700 订阅 CSDN最

随机推荐

  • Java JDK11快速下载地址

    Linux deb 地址一 deb 地址二 rpm 地址一 rpm 地址二 tar gz 地址一 tar gz 地址二 MacOS dmg 地址一 dmg 地址二 tar gz 地址一 tar gz 地址二 Windows exe 地址一
  • Android studio导入图片出现下划红线怎么破

    首先 Android studio的图片命名需要全部字母小写 其次 导入的话 复制文件paste到drawable就可以 红线不是导入操作的问题
  • Vue的监视属性watch、深度监视以及监视的简写

    一 两种监视方式 1 watch属性直接监视 如果刚开始确定监视对象 在vue中可以直接使用watch属性实现监视 watch 正常写法 Info immediate true handler newValue oldValue conso
  • 栈、队列的基本概念和操作

    目录 一 栈 stack 了解 1 1 栈的实现和操作 二 队列 queue 了解 2 1 队列的实现与操作 2 2 双端队列 一 栈 stack 了解 概念 栈 stack 有些地方称为堆栈 是一种容器 可存入数据元素 访问元素 删除元素
  • hive指定字段插入数据,包含了分区表和非分区表

    1 建表 语句如下 CREATE EXTERNAL TABLE ods lineitem full l shipdate date l orderkey bigint l linenumber int l partkey int l sup
  • 【使用kubeadm安装部署K8S】

    问题 使用kubeadm安装部署K8S 该篇文章介绍利用kubeadm进行安装部署K8S 方法 1 准备环境 软件环境 软件 版本 操作系统 CentOS7 9 x64 mini Docker 19 ce Kubernetes 1 20 服
  • MFC中使用CBitmap类进行绘图

    大家看名字就可以知道 这个类是用来绘制位图的 即以 bmp 为后缀的图片 一般游戏之中 需要使用的图片比较多 都会将图片先存为文件 然后从文件中读取 而从文件中读取图片的步骤有以下几步 1 建立一个与窗口DC兼容的内存DC 我们加载的图片是
  • 推荐几个Python爬虫接单渠道

    说起兼职 我有一位做了4年Python工程师的朋友 爬虫做副业起码挣了20W 写各种奇葩爬虫挣钱 爬虫兼职方式多 单也很多 首先是爬虫外包活 国内有平台接单 价格500 4000不等 也可以帮互联网运营爬数据做网站 那群人一天到晚死磕数据
  • CXF拦截器

    引言 CXF拦截器是Apache CXF里面一个很重要的功能 它能够动态操作响应数据和请求数据 降低代码的耦合性 提供代码的内聚性 这对于CXF这个以处理消息为中心的服务框架来说是非常有用的 CXF通过在Interceptor中对消息进行特
  • mysql 创建订单表语句_MySQL创建表语句

    表 t admin tabs 列信息 Field Type Collation Null Key Default Extra Privileges Comment admin id int 11 unsigned NULL NO PRI N
  • local reference table overflow 内存泄露

    local reference table overflow JNI层coding经常会遇到ReferenceTable overflow问题 特别是当jni函数被反复调用上千上万次的时候 现汇总如下 未完待续 并欢迎补充 嘻嘻 总体原则
  • FileZilla连接阿里云服务器:尝试连接“ECONNREFUSED - 连接被服务器拒绝”失败

    4 FileZilla连接阿里云服务器 目的 可以更好的管理云文件 1 在远程服务器端通过指令vim etc ssh sshd config开放22号端口 2 设置云服务器的安全组ID 添加20 21 3 然后启动FileZilla 新建站
  • 6.143 指针习题10

    关于二维数组 指针运算问题 注意二维指针需要解两次引用 即第 0 个元素是 a 见下例 include
  • android studio 监听返回键,最强 Android Studio 使用小技巧和快捷键

    第一步 新建一个project 或者如果你已经有project的话 那就直接新建一个module 注意选择Java library 然后下一步 第二步 编写MyClass java 第三步 在MyClass java文件右击 选择run M
  • getjson ajax webpy,ajaxwebpy

    ajaxweb py is a framework for the library web py It which makes it very easy to make sites interactive using AJAX techno
  • 手机有时触摸失灵解决方法

    1 屏幕不干净造成的屏幕不灵敏 用干净的无尘布将手机上的脏污 水渍擦拭干净 2 手机有贴膜 确认用户是否贴膜之后出现屏幕失灵问题 可将膜去掉再使用对比 3 操作耽搁软件时屏幕失灵 可备份好软件数据 进入设置 应用与权限 更多设置 应用管理
  • seed+transformer+finetune+图文融合+VLP+Prompt Learning整合

    1 Seed 在神经网络中 参数默认是进行随机初始化的 不同的初始化参数往往会导致不同的结果 如果不设置的话每次训练时的初始化都是随机的 导致结果不确定 当得到比较好的结果时我们通常希望这个结果是可以复现的 如果设置初始化 则每次初始化都是
  • 剑指 Offer 66. 构建乘积数组(java+python)

    给定一个数组 A 0 1 n 1 请构建一个数组 B 0 1 n 1 其中 B i 的值是数组 A 中除了下标 i 以外的元素的积 即 B i A 0 A 1 A i 1 A i 1 A n 1 不能使用除法 示例 输入 1 2 3 4 5
  • jmeter性能测试——性能的评定标准

    性能的评定标准 性能指标 响应时间 指的是从客户端发出请求开始 到接收到服务器的响应 并且看到响应的内容为止 这个时间段 称为响应时间 响应时间 网络传输的时间 服务器处理的时间 浏览器解析呈现的时间 如何弱化网络传输的时间和浏览器解析呈现
  • PackageInstaller 原理简

    http topic csdn net u 20110410 23 43571CFA 87B2 4E36 880C 1FA499BA32B0 html 应用安装是智能机的主要特点 即用户可以把各种应用 如游戏等 安装到手机上 并可以对其进行