`
zhujianjia
  • 浏览: 484196 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

转:Android应用开发中如何使用隐藏API

 
阅读更多

 

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


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


    不想长篇大论,直接进入正题吧。使用隐藏API主要有两种办法:一是我在《
Java反射机制的学习》一文中提到的反射的方法得到隐藏API;二是使用源码编译时生成的全编译的jarclasses.jar


    使用反射的方式,在这里就不详细介绍了,具体见《
Java反射机制的学习》。利用反射机制使用隐藏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了。

 

 

转自:http://www.blogjava.net/zh-weir/archive/2011/05/01/349360.html

 

分享到:
评论

相关推荐

    android 隐藏api jar包,api 30

    在Android开发中,隐藏API指的是官方不推荐或者不公开直接使用的API接口,这些接口通常用于系统内部功能,可能因为安全、稳定性的考虑而被限制访问。然而,有时开发者为了实现某些特定功能,可能会需要利用这些隐藏...

    使用Android系统隐藏API

    要使用Android系统中的隐藏API,首先需要获得Android系统的源代码,并进行编译。编译完成后,可以获得一个包含所有系统API(包括公开API和隐藏API)的jar文件:`out\target\common\obj\JAVA_LIBRARIES\framework_...

    android @hide 隐藏API framework.jar

    然而,在某些特定场景下,如系统级应用开发、自定义ROM或者需要实现特定功能时,开发者可能需要使用到这些隐藏API。 要使用`@hide` API,常规方法无法直接调用,因为它们不在公开的Android SDK中。一种解决办法是...

    Android带有隐藏API的的jar包

    在Android开发中,SDK(Software Development Kit)是开发者构建应用程序的基础工具集,它包含了各种库、工具和文档,用于创建、测试和优化Android应用。在本主题中,我们聚焦于一个特殊的“Android带有隐藏API的jar...

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

    NULL 博文链接:https://bgj.iteye.com/blog/2233718

    Android提高之探秘蓝牙隐藏API

    在Android开发中,有时我们可能需要使用到一些官方SDK中未公开的API,这些API被称为隐藏API或非公开API。特别是在蓝牙功能的实现上,Android SDK中虽然提供了基础的蓝牙操作,但像“建立配对”和“解除配对”等关键...

    利用java反射调用Android隐藏Api

    利用java的反射原理来调用 Android隐藏api 应用开发必备哦 详细描述: http://blog.csdn.net/y_haiyang/article/details/9924925 ====================关注小鱼=================== 新浪微博:...

    开始使用 Xamarin.Android 开发 Android 应用

    ### 开始使用 Xamarin.Android 开发 Android 应用 #### Xamarin.Android 概述 Xamarin.Android 是一个基于 .NET 的框架,允许开发者使用 C# 语言和 .NET Framework 构建高性能、原生的 Android 应用。它为开发者...

    android api 14

    总结来说,Android API 14是一个重要的更新,它不仅带来了全新的用户界面和交互体验,还为开发者提供了更多的功能和工具,促进了Android应用生态的繁荣发展。通过使用API 14,开发者可以构建出更具现代感、高效且...

    android-hidden-api:一个提供对Android隐藏API和内部资源的访问的库

    将下载的隐藏API文件复制,粘贴并替换到此目录中,例如android-30/android.jar 。 将compileSdkVersion和targetSdkVersion更改为30(例如)。 最后,重建您的项目。 注意:较高的compileSdkVersion和tar

    android隐藏api

    在Android系统中,除了公开的API(应用程序编程接口)供开发者使用之外,还存在一部分被称为“隐藏API”的功能。这些API通常不包含在官方的开发者文档中,也不推荐或者允许开发者直接使用,因为它们可能涉及系统核心...

    Android开发之旅(2):android架构[借鉴].pdf

    每个Android应用都是Dalvik虚拟机的一个实例,运行在独立的进程中。Dalvik虚拟机采用基于寄存器的架构,与传统的基于栈的虚拟机相比,它在资源有限的设备上运行更高效。Dalvik执行的是.dex文件,这是一种专为Dalvik...

    android中文API4.0

    Android API 4.0,也被称为Ice Cream Sandwich (ICS),是Android操作系统的一个重要版本,它在2011年发布,旨在提供一个统一且优化的用户体验,同时增强了开发者工具和功能。这个API级别(API Level 14)引入了许多...

    css API androidAPi jqueryApi

    在这个名为“css API androidAPI jqueryAPI”的压缩包中,我们聚焦于三种不同类型的API:CSS API、Android API和jQuery API,它们分别在网页样式控制、移动应用开发和JavaScript库操作中起到关键作用。 1. **CSS ...

    Android_UI_API最全中文文档

    Android_UI_API中文文档是Android开发中的一个重要组件,提供了丰富的UI控件和API接口,供开发者使用。下面我们将对Android_UI_API中文文档中的重要知识点进行总结和解释。 一、TextView TextView是Android中最...

    Android2.2—TextView API中文文档

    ### Android2.2—TextView API中文文档:深入解析 #### 引言 ...这将极大地提升我们在Android应用开发中的效率和用户体验。希望本文能成为你深入掌握`TextView` API的强大工具,助力你的项目更上一层楼。

Global site tag (gtag.js) - Google Analytics