美文网首页
一种更优的方式获取私有API

一种更优的方式获取私有API

作者: difcareer | 来源:发表于2016-05-27 17:33 被阅读262次

编译私有的Android SDK中讲述了如何通过编译一个完整的SDK来获取一些稀有的API,但是这个方法有几点不足:

  1. 编译耗时
  2. 不够灵活,换一个API版本难道要再编译一个对应的SDK?

其实私有API仅仅是为了在开发过程中欺骗编译器而已,你可以使用反射,但有一堆代码要写,运行时还影响了效率。

我想到一种更优的方法:将需要开发的API单独编译一个jar,这样和特定SDK版本脱离,还直接从现有编译结果里面拼凑一下即可得到。在项目中已provided方式引入这个jar即可欺骗编译器。

android.os.ServiceManager这个没有包含在Google提供的SDK来说明问题:

  1. 在AOSP的编译结果中找到编译的class文件:
    out/target/common/obj/JAVA_LIBRARIES/...

  2. 将class文件copy到一个单独的目录:
    cp ...../android/os/ServiceManager.class android/os/ServiceManager.class

  3. 打成jar包:
    jar cvf sdkpatch.jar .

看下效果:

结果
  1. copy到项目中, provided方式依赖。

如果需要其他API,参考上面操作即可。

相关文章

  • 一种更优的方式获取私有API

    在编译私有的Android SDK中讲述了如何通过编译一个完整的SDK来获取一些稀有的API,但是这个方法有几点不...

  • iOS 13适配总结

    1.私有API被封禁(KVC限制),禁止访问.iOS13中通过KVC方式来获取私有属性,有Carsh风险,尽量避免...

  • iOS 13 适配

    1.私有API被封禁(KVC限制),禁止访问. iOS13中通过KVC方式来获取私有属性,有Carsh风险,尽量避...

  • OC私有API

    苹果禁止调用私有api上架store,不用上架的可以玩玩私有api 1.怎么获取私有apihttp://www.c...

  • _placeholderLabel.textColor Cras

    iOS13中通过KVC方式来获取私有属性崩溃 1.私有API被封禁(KVC限制),禁止访问. iOS13中通过KV...

  • 2017.5.25

    今日所学 Python与数据获取 获取数据的另一种方式:API 数据绘图基础:Matplotlib 绘图API:p...

  • iOS 私有API 获取所有已安装APP列表及icon

    私有 API 获取已安装APP iOS 11.0 之前 才能获取到!!!iOS 11.0 之前 才能获取到!!!i...

  • 适配iOS 13填坑

    使用苹果私有API 获取UISearchBar的_searchField对象 改UITextField的place...

  • 另外一种更优雅兼容Android P获取Application的

    我们知道我们要想获取Application的方法很多,有没有一种更优雅方式呢?我们的Android系统中提供了获取...

  • iOS13适配

    最新iOS13适配填坑记录如下: 1.私有API被封禁(KVC限制),禁止访问。 iOS13中通过KVC方式来获取...

网友评论

      本文标题:一种更优的方式获取私有API

      本文链接:https://www.haomeiwen.com/subject/flkfdttx.html