一、几个关键目录

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. python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...
  2. 学会python之后-学会Python后,人生简直开挂了!
  3. Asp.net MVC使用Model Binding解除Session, Cookie等依赖
  4. 【经验】刚读硕士怎么感觉学机器学习和深度学习越学越不懂?
  5. Struts 体系结构与工作原理(图)
  6. centos 卸载ffmpeg_CentOS Linux 操作系统安装 FFmpeg 教程
  7. kibana 查看索引库中文档个数_百度索引量是什么意思?和百度收录量的区别。...
  8. linux修改文件打开最大数(ulimit命令)
  9. java语句while主意点
  10. Windows server 2003网络服务之搭建服务器群集
  11. jq实现剪裁图片设置为头像
  12. php 通过AES加密/解密 bin2hex/hex2bin转换
  13. matlab解二元二次方程组
  14. WIN XP自带分区工具的使用方法
  15. PyTorch模型训练实战技巧,突破速度瓶颈
  16. 一步一步带你了解Hybrid开发框架之DsBridge
  17. 如何利用线性回归来建立收入预测模型?
  18. 速腾聚创16线雷达配置
  19. 9.10 安卓常用工具类之一 权限 ---- PermissionUtil
  20. MTF模块 PX4 光流模块详细配置

热门文章

  1. OSChina 周二乱弹 ——IT男的打分标准出台了。
  2. 片袖原型制图_服装工艺八种袖子原型的制图画法
  3. 白塞氏病如何避免加重
  4. V2X综合管控平台的功能及应用
  5. 【外贸报价思考】同事用更高的价格却挽回了订单?​
  6. 【程序源代码】共享充电桩小程序(服务端)
  7. 纪律造就强大的开发者
  8. 符号_王者荣耀龙符号名字怎么弄 打龙符号名字代码复制大全
  9. 阿拉丁神灯点亮计划 之 500年打磨迭代
  10. 史明星:微博在品牌营销上的贡献