一、几个关键目录

1、/data/local/tmp

/data/local/tmp 目录是转为android studio 安装应用程序保留的目录

android studio 安装apk时 首先将apk push 到/data/local/tmp目录下

rk3399_mid:/data/local/tmp # ls -la

total 416048

drwxrwx--x 3 shell shell 4096 2019-04-23 16:22 .

drwxr-x--x 5 root root 4096 2019-04-01 18:18 ..

-rw-r--r-- 1 system system 8649 2019-04-01 18:18 TranslatePodTest.jar

-rw-rw-rw- 1 root root 212739751 2019-04-23 16:22 com.sogou.teemo.translate.launcher

-rw-rw-rw- 1 root root 0 2019-04-23 16:22 com.sogou.teemo.translate.launcher-build-id.txt

drwxrwxrwx 3 shell shell 4096 2019-04-23 16:14 perfd

2、data/dalvik-cache 将apk中的dex文件安装到dalvik-cache目录下

3、data/data 存放应用程序的数据

4、system/app 系统自带的应用安装目录

二、apk的安装过程

1、将apk复制到/data/app/包名/ 下面,

如,翻译机的/data/app/com.sogou.teemo.translate.launcher 如下:

rk3399_mid:/data/app/com.sogou.teemo.translate.launcher # ls

base.apk lib oat

2、解压/data/app/package/base.apk中的so 到 /data/app/package/lib目录

Android 设备的CPU类型通常分以下几种

1.armeabiv-v7a: 第7代及以上的 ARM 处理器,目前主流版本,大部分Android设备都使用它。

2.arm64-v8a: 第8代、64位ARM处理器。

3.armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多,缺少对浮点数计算的硬件支持,在需要大量计算时有性能瓶颈。

4.x86 / x86_64: x86 架构的手机都会包含由 Intel 提供的称为 Houdini 的指令集动态转码工具,

实现对arm .so 的兼容。

5.mips/mips64:极少用于手机可忽略。

(1)arm设备上CPU 是armabi-v8a,ABI的优先级

如果手机CPU 是armabi-v8a 架构,优先选择拷贝armabi-v8a中的.so 到 /data/app/package/lib/arm64中。

如果不存在,则会选择拷贝armeabi-v7a中的.so文件 到/data/app/package/lib/arm文件夹中。

如果也不存在,则选择armeabi目录中的.so文件到/data/app/package/lib/arm中。

(2)arm设备上CPU 是armabi-v7a,ABI的优先级

如果手机CPU 是armabi-v7a,优先选择拷贝armabi-v7a中的.so文件到/data/app/package/lib/arm中。

如果不存在,则会选择armeabi中的.so文件到/data/app/package/lib/arm中。

以64位为app为例,/data/app/package/lib/arm64目录如下:

rk3399_mid:/data/app/com.sogou.teemo.translate.launcher-1/lib # ls

arm64

rk3399_mid:/data/app/com.sogou.teemo.translate.launcher-1/lib # ls arm64/

libBugly.so libOcrTFDetect.so libeval.so libmp3lame.so libspeex_sogou_v43.so libtrans.so

libJniModule.so libOcrUtil.so libgnustl_shared.so libopencv_java3.so libsqlcipher.so libweibosdkcore.so

libOcrMerge.so libctranslate.so libimagepipeline.so libsgfront.so libssasr.so

libOcrRecog.so libeval-lib.so libimageutil.so libsogouupdcore.so libteemoutil.so

2、解压apk,把其中的classes.dex 拷贝到data/dalvik-cache,命名规则是 apk路径+classes.dex。

3、在data/data/目录下创建对应的包名目录。该目录下创建存储应用数据的相关目录,例如cache, database、lib、shared_perfs等。

翻译机/data/data/com.sogou.teemo.translate.launcher 如下:

rk3399_mid:/data/data/com.sogou.teemo.translate.launcher # ls

app_bugly app_crashrecord cache code_cache databases files shared_prefs

android 安装多个apk,Android apk 安装相关的几个目录相关推荐

  1. android下载后的app自动安装,Android 7.0 下载APK后自动安装

    随着Android版本越来越高,Android对隐私的保护力度也越来越大.这些隐私权限的更改在为用户带来更加安全的操作系统的同时也为开发者带来了一些新的任务.如何让你的APP能够适应这些改变而不是崩溃 ...

  2. Android APK应用安装原理(2)-查找APK并自动安装

    Android每次启动的时候会自动安装位于特定目录下的APK,这个过程会在packageManagerService这个类的构造方法中进行,这里会创建多个目录用于预查找: [java] view pl ...

  3. Android代码实现APK文件的安装与卸载

    Android代码实现APK文件的安装与卸载 Android程序使用代码的安装和卸载!!! 安装: String str = "/CanavaCancel.apk"; String ...

  4. android 无法安装测试版本,在测试应用更新时,安装无提示阻止Android版本构建签名APK...

    当我尝试更新我的应用程序(在已经从playstore安装的应用程序上手动安装带有更高版本的已签名APK)时,它未被安装(" 应用程序未安装")并在Studio中显示以下错误: I/ ...

  5. 我的Android进阶之旅------解决Android Studio编译后安装apk报错:The APK file does not exist on disk...

    1.错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_64 ...

  6. android手机如何安装apk文件,如何安装APK文件到自己的android手机里?.doc

    如何安装APK文件到自己的android手机里? 很多朋友刚拿到G1的时候大概首先就是要往里面装软件了,在ANDROID平台下安装文件的后缀名为".apk",就好像PC上的安装文件 ...

  7. android程序到处apk,导出已安装到手机中程序的apk文件

    查看该手机所有安装包的包名, 输入adb shell pm list packages 找到你要导出的包名 获取该安装apk的路径, 输入adb shell pm path com.pfoc.myac ...

  8. Android项目实战(三十一):异步下载apk文件并安装(非静默安装)

    前言: 实现异步下载apk文件 并 安装.(进度条对话框显示下载进度的展现方式) 涉及技术点: 1.ProgressDialog   进度条对话框  用于显示下载进度 2.AsyncTask     ...

  9. android 更新apk 应用为安装,应用未安装!从Android Studio构建安装APK时出错 - java

    通过android studio生成签名的apk后,在安装发布的apk时,手机显示错误: 应用未安装 我在这个应用程式中遇到这个问题.我已经在处理它,并安装了与安装它相同的apk. 我已经尝试过这些: ...

  10. Android 4.0.4系统下实现apk的静默安装和启动

    转自http://www.linuxidc.com/Linux/2013-02/79403.htm 未亲测 最近在Android 4.0.4系统下实现apk的静默安装和启动的功能,这里和大家分享一下, ...

最新文章

  1. 10 年 IT 老兵给新人程序员的几点建议
  2. TCP/IP协议概述
  3. 关于sql中的with(nolock)
  4. D-query SPOJ - DQUERY (主席树)
  5. git fork clone 区别_Working with Git | Git 与 GitHub
  6. java 用户、角色、权限数据库设计
  7. 一文让你读懂Macbook的使用技巧及命令
  8. FLEX与JAVA不通讯错误与解决方法(转)
  9. 边缘保留滤波matlab,【DIP】各种边缘保留滤波器一览
  10. linux系统下的打印机驱动下载,foo2zjs linux环境下打印机驱动源代码 - 下载 - 搜珍网...
  11. STM32神舟III号 驱动直流电机学习(三 )
  12. 如何查询电脑最大可扩展内存
  13. ESL4.5 学习笔记(含感知器内容SVM预备知识)
  14. 蓝光光盘的区域位置代码
  15. 01改变世界:机械之美——机械时期的计算设备
  16. Vi/Vim 编辑器常见命令
  17. android deb文件怎么打开,演示apk是什么文件?怎么打开apk文件呢?
  18. DNS服务未响应的简单解决办法
  19. css设置文本斜体代码实例
  20. Cannot load excludes configuration file /WEB-INF/decorators.xml as specified in sitemesh.xml or

热门文章

  1. jsp管理系统页面模板_页面静态化如何实现
  2. 50MHz有源晶振遍布各大工业领域
  3. c语言星空程序,C语言C 编程学习程序员大神!绘制神奇代码之星空动态
  4. 用c语言写简单的游戏名字大全,适合女生的游戏名字,适合女生的游戏名字大全4个字...
  5. cad怎么把图层英文变成中文_CAD图层标准-中英文对照.doc
  6. 电脑速度慢怎么办?这些方法帮你快速提速!
  7. deb安装包方法(dpkg)
  8. 小米路由器开ssh方法
  9. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java学术会议论文管理系统rl522
  10. JS实现查找是否一个元素出现两次或者多次以上