hanyeah 专注于AS

安卓利用反射调用@Hide隐藏函数

涉及到两个知识点:1、@Hide隐藏函数;2、反射。

ActionScript3中可以自定义命名空间,从而实现一些方法只有自己开发的库可以调用。java中不能自定义命名空间,但是可以声明@hide,打包之后外部就调用不到了。具体原理可以看这个:http://www.cnblogs.com/wanqieddy/archive/2013/05/24/3096312.html

总结一下,其实就是这个意思:如果是源代码的话,加不加@hide没有任何影响,但是如果是jar的话,如果源码中加了@hide,方法就访问不到了。

利用@hide在开发库的时候我们就可以控制一些方法只有库内可以访问,外部无法访问了。

之前在开发安卓Canvas渲染引擎——hEngine的时候,不知道@hide,一些只想由引擎调用的方法,实现起来很纠结,有时候只能写注释,提示用户不要调用。现在这个问题就可以完美解决了。


利用反射调用隐藏函数。

有时候我们想要调用隐藏的函数,或者private函数,这时候就要用到反射了。实现方法随便百度就能得到。就不多写了。



2017年3月3日 | 发布:hanyeah | 分类:Android | 评论:0

发表留言: