飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 8389|回复: 23

[Android] Android应用开发中如何使用隐藏API

[复制链接]
  • TA的每日心情
    无聊
    2022-10-11 10:14
  • 签到天数: 228 天

    [LV.7]常住居民III

    发表于 2015-6-30 11:10:04 | 显示全部楼层 |阅读模式
    本帖最后由 恶魔的眼泪 于 2015-6-30 11:11 编辑


        一开始需要说明的是,Google之所以要将一些API隐藏(指加上@hide标记的public类、方法或常量)是有原因的。其中很大的原因就是Android系统本身还在不断的进化发展中。从1.01.1到现在即将问世的Android 2.3.4。 这些隐藏的API本身可能是不稳定的,所以,使用隐藏API,意味着程序更差的兼容性。


        如果要我给出建议的话,最好还是不要使用隐藏的API。不过有时为了实现Android应用某些特殊的功能或者效果,隐藏的API往往能发挥意想不到的作用。这些API具体能做些什么事,我就不在这里举例了。正好,如果你不知道隐藏API能做什么的话,那么还是尽早放弃使用它们吧……

    游客,如果您要查看本帖隐藏内容请回复


        这篇文章主要要介绍的就是通过导入全编译的classes.jar包,来实现对隐藏API的使用。这种方法实现简单,程序员编程也简单,就像是那些隐藏的APISDK中变得可见了一样。它的缺点就是兼容性问题,希望使用者引起重视,在使用时考虑清楚。


        编译Android框架源码后,在源码路径下会生成out文件夹,在这个文件夹下的out"target"common"obj"JAVA_LIBRARIES"framework_intermediates"路径下,会生成全编译的jarclasses.jar。你需要做的就是将这个jar库导入到你的工程中。


        在导入classes.jar过程中,有可能会出现两个问题(我是使用eclipse开发环境的,所以仅对此环境会遇到的问题进行说明)。


        问题一是按导入其他jar的方式导入此jar库,发现编译很慢,有时甚至无法编译成功,eclipse崩溃或者提示“java.lang.OutOfMemoryError: Java Heap Space”错误。这个问题,可能是由于jar太大的原因吧,网上说改eclipse.ini里的参数,个人试了下,似乎没有什么作用。我的做法是在eclipse中新建自定义的library,然后将classes.jar放在library中。Android工程添加library,就像使用SDK一样。这样可以很好地解决这个问题。具体如何新建自定义的library我就不详述了,不知道的朋友自己搜索下或者摸索下,很简单的。


        问题二是已经正确导入了jar库,却发现还是找不到隐藏的API。这个的原因是Build class path order不对,具体说就是android.jarclasses.jar的导入顺序不对。应该将classes.jar的顺序放在android.jar之前,具体调节Build class path order的地方就在properties -> Java Build Path -> Order and Export.


        成功解决这两个问题之后,相信你就可以正常使用Android隐藏API了。


    评分

    参与人数 2威望 +4 飘云币 +16 收起 理由
    sndncel + 4 + 4 很给力!
    Crack_Qs + 12

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2024-4-13 20:08
  • 签到天数: 2046 天

    [LV.Master]伴坛终老

    发表于 2015-7-1 11:37:49 | 显示全部楼层
    这个要看看呀。。。。进来学习一下呀。哈哈。
    PYG19周年生日快乐!
  • TA的每日心情

    2017-3-6 20:37
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2015-7-1 23:32:41 | 显示全部楼层
    我也要哦康样子不错
    PYG19周年生日快乐!
  • TA的每日心情

    2017-3-6 20:37
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2015-7-1 23:34:56 | 显示全部楼层
    我也要哦康样子不错
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2022-10-11 10:14
  • 签到天数: 228 天

    [LV.7]常住居民III

     楼主| 发表于 2015-7-6 10:41:22 | 显示全部楼层
    sndncel 发表于 2015-7-1 11:37
    这个要看看呀。。。。进来学习一下呀。哈哈。

    O(∩_∩)O谢谢支持!!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2015-7-13 00:53:57 | 显示全部楼层
    谢谢分享,thx
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-1-19 10:55
  • 签到天数: 121 天

    [LV.7]常住居民III

    发表于 2015-7-21 15:05:02 | 显示全部楼层

    多谢楼主分享了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2016-8-26 11:13:10 | 显示全部楼层
    这个学习了哈哈哈
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-6 02:28
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-9-8 14:11:12 | 显示全部楼层
    很好很好好 很好
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-9-20 13:29
  • 签到天数: 92 天

    [LV.6]常住居民II

    发表于 2016-11-14 21:28:27 | 显示全部楼层

    牛X,180度地膜拜啊!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表