美文网首页
Android apk 安装相关的几个目录

Android apk 安装相关的几个目录

作者: feifei_fly | 来源:发表于2019-04-23 17:14 被阅读0次

一、几个关键目录

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 安装相关的几个目录

      本文链接:https://www.haomeiwen.com/subject/eekbgqtx.html