大佬教程收集整理的这篇文章主要介绍了私有方法会增加Android中的Dex Count吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,是的,定义一个新的私有方法将添加一个方法引用到dex@L_674_8@.
有关更多信息,请参阅:https://source.android.com/devices/tech/dalvik/dex-format.html和https://source.android.com/devices/tech/dalvik/dalvik-bytecode.html,它们是dex格式的主要参考.
“方法引用列表”是dex@L_674_8@中method_id_items的排序列表.例如在dex-format.html的“@L_674_8@布局”部分中查找“method_ids”.在页面的下方,method_id_item被定义为由类引用,方法名称和方法原型组成.
class_data_item部分用于定义类定义的方法和字段. “direct_methods”和“virtual_methods”列表是method_ids列表中的索引列表 – 这要求method_ids列表中存在该方法的引用.
在dalvik-bytecode.html中,invoke- *指令使用方法索引来引用要调用的方法.
有趣的是,方法引用列表本身是用32位大小的值定义的(在dex-format.html中搜索“method_ids_size”).因此,方法引用列表本身可以与4294967296条目一样大.
但是,当您需要引用任何这些方法时,问题就出现了. invoke- *指令仅使用16位来编码方法索引.
此外,class_data项中的方法引用可以达到完整的32位.因此,理论上你可以在dex@L_674_8@中定义超过64k限制的方法,只要你从未真正尝试从该dex@L_674_8@中调用它们.但它们仍然可以从另一个dex@L_674_8@中调用.
以上是大佬教程为你收集整理的私有方法会增加Android中的Dex Count吗?全部内容,希望文章能够帮你解决私有方法会增加Android中的Dex Count吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。