oasisfeng/condom

请问 CondomTelephonyManager 为什么能够 extends TelephonyManager

Closed this issue · 3 comments

我注意到源码里放了一份 TelephonyManager 的 stub 来欺骗编译器,但运行时为什么不会被干掉?

PS. 我自己 assemble 的 aar 里的 android.content.*并没有被 remove 掉。是不是使用姿势不对?

理论上,build.gradle 中的这段代码 会自动移除工程中的 android.* stub 类。

关于 CondomTelephonyManager 能够派生自 TelephonyManager,原因是 TelephonyManager 原本的非默认构造方法属于私有接口,在 Android SDK build 时被移除了,当一个类没有显式声明的构造方法时,编译器会自动为其生成默认构造方法,所以 TelephonyManager 就可以被派生了。

谢谢您的及时 & 耐心回复,系统服务可以被继承这件事有点反直觉 :)
gradle task 我这边确实没有执行到。对 gradle 不熟,做些测试再来反馈 :)