首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:了解APK安装过程

Android:了解APK安装过程
EN

Stack Overflow用户
提问于 2012-09-16 06:30:53
回答 4查看 27.8K关注 0票数 56

我正在尝试理解如何在Android上安装apk的过程,特别是通过adb安装(我正在测试的地方)的Android SDK模拟器。

在搜索中,我没有找到令人满意的答案,除了“apk被简单地复制到/data/app并在运行时安装。这对我来说并不满意,因为它没有解释apk图标是如何出现在菜单上的,以及其他问题。”

来自Windows后台,运行.exe或安装程序来安装程序会修改注册表、文件、服务等。我需要了解在Android上安装apk时是否会发生这种情况或类似的事情。

因此,如果有人能向我解释一下在Android上安装apk时会发生什么,我将非常感激。

顺便说一句,我还想知道Dalvik VM "zygote“是否与安装有关,或者它是否发生在较低的linux内核级别?

我在这里的最终目标是使用strace来捕获apk的安装过程,以记录系统修改、文件创建、网络活动和其他感兴趣的事件。

EN

回答 4

Stack Overflow用户

发布于 2015-08-18 16:46:13

Android应用程序主要有两类。

  1. 系统应用程序:当系统为initialized
  2. User应用程序时安装:从Play商店安装,使用ADB或复制SD卡中的.apk文件。

下面是分步安装过程。

解析

  1. AndroidManifest.xml,提取信息并将其存储到/ data /system/packages.xml和/data/system/packages.list
  2. .apk文件复制到特定目录,并为此app

创建用于数据存储的目录

XML解析、资源分析和.apk文件复制由

PackageManageService.java

但是,目录的创建是由

安装.c

PackageManageService.java通过本地套接字与installd.c通信,该套接字位于/dev/ socket /installed

复制.apk文件的包对于系统应用和用户应用是不同的。对于系统应用程序,它是

/系统/应用程序/

对于用户应用程序,复制到.apk文件的.apk文件复制到的位置

/数据/应用程序

从.apk文件中提取的高速缓存文件被复制到/ .dex /dalvik-cache/。

Package Manager创建数据目录/ data / data //来存储数据库、共享首选项、本地库和缓存数据

票数 37
EN

Stack Overflow用户

发布于 2012-09-16 09:23:45

我想,你想知道的一切都在Android开发者网站http://developer.android.com/tools/building/index.html中,为了理解应用程序本身的打包,这里有更好的图像(这不是APK的安装过程,但它可以帮助你理解apk的结构和安装)。你也可以通过谷歌了解更多关于aapt工具和.dex的信息,因为classes.dex是你的应用程序的底层结构--包含编译好的java和类。一个dex文件包含多个类,而java类文件只包含一个类。dex文件是用DX工具转换成java字节码,DX工具是Android SDK的组成部分。因此,它允许每个应用程序作为自己的进程运行,并拥有自己的Dalvik虚拟机实例。

票数 12
EN

Stack Overflow用户

发布于 2021-08-25 08:28:06

“详细的APK安装过程是什么?下面的过程在Package Manager Service中执行。

将程序包添加到安装队列中安装程序包的相应位置installation

  • Determine安装安装/更新新的系统数据将apk文件拷贝到给定的系统中应用程序的UID
  • Waiting
  • Add请求安装程序守护程序process
  • Create应用程序目录并将permissions
  • Extraction of dex status
  • Broadcast设置为缓存目录
  • 和packages.list /status
  • Broadcast/

/

  • 将最新的status
  • Broadcast连同应用程序的名称一起反映到系统安装效果是-complete包Intent.ACTION_PACKAGE_ADDED: If the new ( Intent.ACTION_PACKAGE_REPLACED):更新的情况下“

有关更多信息,请访问链接https://dzone.com/articles/depth-android-package-manager

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12442979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档