android 解析未安装apk中的AndroidManifest.xml以及系统源码分析

前言:

场景:在不安装apk的前提下,获取apk中的包名,LAUNCHER Activity等,这就需要解析我们的androidManifest.xml文件了,而我们的apk又是一个zip的压缩文件,通过压缩文件的方式--好压,rar等打开。

可以看到我们以上的目录,而我们的AndroidManifest.xml就在其中,有了这个就好办了,那我们就只需要获取这个zip包中的androidManifest.xml文件,拿出来解析就行了。不过在这之前值得一说的是,当我们把项目打包成apk的时候,androidManifest.xml文件已经被加密了,所以直接拿出来通过解析xml的三种api解析是不行的。
获取xml文件的方式有两种:
1.通过反编译获取
2.通过ZipFile来获取。这个要通过google提供的api APKParser.jar来解析这个加密的xml文件。
APKParser下载:http://code.google.com/p/xml-apk-parser 其中还有个demo,可以参考!

分析如何解析apk中的androidManifest.xml之前,先从源码的角度了解下系统是如何解析我们的apk中的androidManifest.xml文件的。

源码角度分析-如何解析androidManifest.xml

解析apk是由系统的PackageManagerService来执行的,而PackageManagerService的解析工作是在它的初始化中的。PackageManagerService的初始化:

在我们的SystemServer的initAndLoop方法中通过PackageManagerService.main()来初始化的。有些版本的源码可能是main()方法,SystemServer初始化了framework层的许多服务,这里仅仅只分析PackageManager。
深入到PackageManagerService.main()方法中

可以看到这里对PackageManagerService进行初始化操作。继续追踪下去,看下new PackageManagerService()到底进行了什么工作。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值