安装、验证、优化APK


/frameworks/base/cmds/installd和/frameworks/base/services/java/com/android/server/PackageManagerService.java负责新程序的安装,检查,优化等,父进程等优化完毕后。



关于/data/dalvik-cache/
当Android启动时,DalvikVM监视所有的程序(APK文件)和框架,并且为他们创建一个依存关系树。DalvikVM通过这个依存关系树来为每个程序优化代码并存储在Dalvik缓存中。这样,所有程序在运行时都会使用优化过的代码。这就是当你刷一个新的ROM时,有时候第一次启动时间非常非常长的原因。当一个程序(或者框架库)发生变更,DalvikVM将会重新优化代码并且再次将其存在缓存中。


下面是安装一个APK的过程看到的LOG:
I/ActivityManager(  129): Starting: Intent { dat=/sdcard/apk/Tank Hero.apk cmp=com.android.packageinstaller/.InstallAppProgress (has extras) } from pid 1414
W/ActivityManager(  129): No content provider found for: null
I/ActivityManager(  129): Displayed com.android.packageinstaller/.InstallAppProgress: +339ms
W/ActivityManager(  129): No content provider found for: null
D/PackageParser(  129): Scanning package: /data/app/vmdl-491066460.tmp
D/PackageManager(  129): Scanning package com.clapfootgames.tankhero
I/PackageManager(  129): Unpacking native libraries for /data/app/com.clapfootgames.tankhero-1.apk
D/installd(  100): DexInv: --- BEGIN '/data/app/com.clapfootgames.tankhero-1.apk' ---
D/dalvikvm( 2151): DexOpt: load 77ms, verify+opt 269ms
D/installd(  100): DexInv: --- END '/data/app/com.clapfootgames.tankhero-1.apk' (success) ---
D/PackageManager(  129):   Receivers: com.admob.android.ads.analytics.InstallReceiver
D/PackageManager(  129):   Activities: com.clapfootgames.tankhero.Application com.admob.android.ads.AdMobActivity
I/installd(  100): move /data/dalvik-cache/data@app@com.clapfootgames.tankhero-1.apk@classes.dex -> /data/dalvik-cache/data@app@com.clapfootgames.tankhero-1.apk@classes.dex
D/PackageManager(  129): New package installed in /data/app/com.clapfootgames.tankhero-1.apk
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值