android应用程序.apk文件,如何修改其安装目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android应用程序.apk文件,如何修改其安装目录相关的知识,希望对你有一定的参考价值。

我目前有一个android的应用程序,安装到手机上了,由于没有源代码,做了些许修改后,要再安装一次,并且要和原来的程序并存。
而修改了Manifest里的许多标签重新封装,安装时候还是提示覆盖原有的程序,请问这个要改什么地方才能够实现此功能?
如能解决,再奉送30分。谢谢!
目前我手上有apk-tool-gui,所以基础解包打包签名什么的可以忽略,就只要指点我改哪里能够实现这个功能就行。
拜谢了~~

据我所知似乎是没有办法修改的。
应用程序的安装只能在flash内,而资源之类可以放到SD卡上。
有个第三方管理器,可以让你指定安装目录,甚至安装到SD卡上,但是仅限于不大的应用。因为最终都是load到ram中执行的。
参考技术A 好像是根据程序包名判断的吧,你没有源代码不好改把 参考技术B 没源代码难办啊,有的话,可以修改包的路径和签名就可以另外装了

Android:了解APK安装过程

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

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

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

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

另外,我还想知道Dalvik VM“zygote”是否参与了安装,还是发生在较低的Linux内核级别?

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

答案

主要有两类Android应用程序。

  1. 系统应用程序:在系统初始化时安装
  2. 用户应用程序:使用ADB或在SD卡中复制.apk文件从Play商店安装。

以下是逐步安装过程。

  1. 解析AndroidManifest.xml,提取信息并存储到/data/system/packages.xml和/data/system/packages.list
  2. .apk文件被复制到特定目录,并为此应用程序创建数据存储目录

XML解析,资源分析和.apk文件复制都是通过完成的

package manage service.Java

但是,目录创建是通过

installd.c

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

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

/系统/应用程序/

将复制到.apk文件中的用户app .apk文件复制到的位置

/数据/应用程序

.dex文件,从.apk文件中提取,被复制到/ data / dalvik-cache /。

包管理器创建数据目录/数据/数据//以存储数据库,共享首选项,本机库和缓存数据

另一答案

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

另一答案

这是在两个级别完成的.1。)PackageInstaller(UI)使用PackageManagerService(系统服务)向第二部分(Installd)发送命令2.)Installd是一个实际安装apk的守护进程。 Installd和PackageManagerService使用套接字通信进行通信。使用的套接字是installd本身。您可以在init中引用init.rc来创建套接字。

以上是关于android应用程序.apk文件,如何修改其安装目录的主要内容,如果未能解决你的问题,请参考以下文章

APK包名修改 请问如何修改APK包名

android 修改apk的asset目录后怎么安装

Android:了解APK安装过程

android dex文件 怎么打开

怎么把后缀apk改exe

Android apk 系统签名