志在指尖
用双手敲打未来

反射在 Android 开发中的利弊

反射在Android开发中的利害
由于Android2.2的推出,很多新的API参加招致很多项目移植需求思索运用Java的反射机制Reflection来动态调用,动态调用的益处就是不需求运用援用文件,直接经过JDK中声明好的办法直接调用,自身原理基于JVM的,从Java1.5开端支持,原理上就是依据类名而不实例化对象的状况下,取得对象的办法或属性而直接调用。Android开发
Android开发时反射能协助我们几?
1.有些网友可能发现Android的SDK比拟封锁,很多敏感的办法常规的用户无法编译,我们假如翻看了代码直接在反射中声明动态调用即可。比方很多internal或I开头的AIDL接口均能够经过反射轻松调用。
2.反射关于Android123来说更重要的是思索到应用的兼容性,我们目前主要兼容从Android1.5到2.2的项目,APILevel从3到8能够便当的扩大,调用前我们预留一个标志位声明该API的最低以及最高的APILevel为几能够调用。
3.关于调试Java的反射是功臣了,在Logcat中我们能够看到出错的中央肯定有相似java.lang.reflect.XXX的字样,这种自检机制能够协助我们便当的调试Android应用程序。
反射的缺陷有哪些:
(1).由于是动态执行的,效率自然没有预编译时援用现有的库效率高,就像平常我们Win32开发时,能够不用h文件,直接经过GetProcAddress一样去动态获取办法的地址。当然效率要依据复杂水平而决议,普通略微复杂的处置性能损失可能超越20%,关于一些复杂的触及Java自动类型转换判别,执行时间可能是直接援用的上千倍,所以最终我们调试时必需考虑性能问题。
(2).由于反射是动态的,所以需求处置很多异常,不然Dalvik解体出ForceClose的概率会大很多,很简单的一个反射就需求至少3个异常捕获,自身try-catch效率就不是很高,自然进一步影响运转效率,关于Android开发我们必需思索这些问题。
(3).反射由于招致代码臃肿,自然略微复杂的几个办法适用反射将会招致代码可读性和维护性降低,假如很笼统的调用Android开发网激烈不引荐这种办法。最后要说的是Reflection并不是Java的专利,微软的.Net也同样支持,同时更多的动态言语如Ruby等均支持这一特性。

未经允许不得转载:IT技术网站 » 反射在 Android 开发中的利弊
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载