65k methods limit

2016-04-05  本文已影响122人  xbase

Dalvik 65K methods limit
你很快就会遇到的,不过放心,multidexing
会帮助你。
什么是Dalvik 65K methods limit?我们知道,我们写完java code之后,dx tool会把java编译的class文件再编译成Dalivik虚拟机能识别的DEX文件,这个文件里最多能够索引65536个method。关于这个有两点要注意:

  1. 这些method是指能够索引(reference)到的,而不是定义(define)
    的。或者说,如果你定义了一个方法,但这个方法并没有被调用,那么就不算在内。
  2. 这些method不仅仅是开发人员自己写的,还包括所有第三方library里面的method。

索引是用一个链表结构存储的,类型是short,short占2字节,16位,2^16=65536,所以,我们总共可以索引65536
个方法,包括自己写的和引入第三方库里的。
那么,我们如何能快速知道我们的app里已经有多少个method了呢?

现在,既然我们已经知道了自家app里的method数了,那么如何来处理这种情况呢?(官方做法、减少方法数、分包、插件化、增大可容纳的方法数)

上一篇 下一篇

猜你喜欢

热点阅读