在编译私有的Android SDK中讲述了如何通过编译一个完整的SDK来获取一些稀有的API,但是这个方法有几点不足:
其实私有API仅仅是为了在开发过程中欺骗编译器而已,你可以使用反射,但有一堆代码要写,运行时还影响了效率。
我想到一种更优的方法:将需要开发的API单独编译一个jar,这样和特定SDK版本脱离,还直接从现有编译结果里面拼凑一下即可得到。在项目中已provided方式引入这个jar即可欺骗编译器。
以android.os.ServiceManager
这个没有包含在Google提供的SDK来说明问题:
out/target/common/obj/JAVA_LIBRARIES/...
cp ...../android/os/ServiceManager.class android/os/ServiceManager.class
jar cvf sdkpatch.jar .
看下效果:
结果
如果需要其他API,参考上面操作即可。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有