博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows下使用android隐藏api的方法
阅读量:4038 次
发布时间:2019-05-24

本文共 1203 字,大约阅读时间需要 4 分钟。

我们使用sdk在开发一个android项目时,往往不能使用被隐藏的api。例如:把android自带的 应用,导入eclipse后,往往出现很多错误。

以下 所介绍的方法必须要先在linux下编译,但仅仅只是编译,开发还是在windows下。

根据java 编程规范,我们知道这个api (静态变量)被隐藏掉了,所以在sdk中无法使用。

添加framework 编译出来的classes.jar文件到eclipse的build path 

其实在编译android的时候,我们将framework 编译到一个临时的jar包中了,这个jar包的路径一般为:
out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar
我们只需要在linux上android源代码目录下使用 make 命令即可生成此文件。

由于这个jar文件中的api 还没有重新打包,里面被@hide掉的api并没有被去掉。所以我们依然能够引用里面被@hide的api。

而sdk 中的android.jar文件是重新打包生成的,其里标记有@hide的api已经被去掉了。所以我们把 out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar 拷贝到本地pc上。然后在工程中添加此jar包。

具体方法:
1.  拷贝linux编译生成的  out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar到本机PC。
2.  在eclipse的Android项目中,选择项目属性->Java Build Path->Libraries->Add Library->User Library->Next-> UserLibraries进入到User Libraries管理界面,点击New新建一个User Library,名字任意,比如android_src_api注意:这里必须选 把as system Library选上,否则 编译apk的时候 会卡死!

然后点击Add Jars把Jar包加入到建立的User Library中,最后点击OK。

3.选择项目属性->Java Build Path->Order and Export,使用右面的“UP”键,把所建立的User Libraries移到Android SDK的上面。这样做的意思就是优先使用classes.jar中的API,其次使用android.jar中的API。

如下图:

之后我们的工程错误消失了:

为什么不直接使用classes.Jar? 因为我在使用时发现,android.jar中有的东西classes.jar中没有。

转载地址:http://aspdi.baihongyu.com/

你可能感兴趣的文章
2017年6月最新木星照片
查看>>
tcpdump 抓包工具使用
查看>>
Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
查看>>
用户态使用gpio监听中断
查看>>
以太网MAC帧结构与数据填充
查看>>
u-boot中添加命令
查看>>
分享两个免费在线shell
查看>>
在DNS服务器上查询域名的地址
查看>>
太阳系演化时序表
查看>>
我们可曾这么认真过?
查看>>
彻底搞懂HTTP协议
查看>>
见识一下cookie
查看>>
关于XSS(跨站脚本攻击)和CSRF(跨站请求伪造)
查看>>
如何防止跨站点脚本攻击
查看>>
黑客是怎样入侵你的网站的
查看>>
人类的祖先为什么会走出非洲
查看>>
电子书收藏
查看>>
网站地址中的www有还是没有
查看>>
RFC文档(中文翻译版本)
查看>>
邮件是怎么发送和接收的(STMP和POP3/IMAP协议)
查看>>