如何得到包含隐藏API的Android类库
来源:互联网 发布:爱青岛网络公开课 编辑:程序博客网 时间:2024/04/30 03:48
framework.jar core.jar ext.jar framework-res.apk
这篇有提到framework.jar android.jar的区别,涉及到如何调用系统隐藏的API,一般如下办法:
1. 直接在Android完整的源码中进行编译
2. 使用反射机制,在个别类缺少的情况下比较方便
3. 将framework.jar加入到编译环境中去
对于第三种办法,可以参考以下:
Android SDK的很多API是隐藏的,我无法直接使用。但是我们通过编译Android系统源码可以得到完整的API库。
编译Android系统源码后可以在out\target\common\obj\JAVA_LIBRARIES目录中有它所有API库(java)。
当然对于一般情况,out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar对于我们来说就足够了。
我们可以通过这个classes.jar这种Android类库加入到你的Eclipse环境的Android工程中,以便使用隐藏的API。
关于在Eclipse的Android工程中如何使用这些API库的更多内容,请参考《Android中使用隐藏API(大量图解)》
如果想提取完整的API的话,可以在编译Android系统源码后通过getDebugJar.sh脚本文件来完成该工作。
DESTINATION_FOLDER=Debug_libsSOURCE_FOLDER='android/out/target/common/obj/JAVA_LIBRARIES'FILE_NAME='classes-full-debug.jar'echo $DESTINATION_FOLDERif [ -d $DESTINATION_FOLDER ]thenecho "Checking destination ... OK"elseecho "Creating destination ..."mkdir $DESTINATION_FOLDERif [ $? -ne 0 ]thenecho "Error!"exitfifiecho "Copy files ..."dirs=`ls $SOURCE_FOLDER | tr '\n' ' '`for i in $dirsdoif [ -f ${SOURCE_FOLDER}/${i}/$FILE_NAME ]thenfile=${i%_intermediates}-${FILE_NAME}echo Copy $filecp ${SOURCE_FOLDER}/${i}/$FILE_NAME ${DESTINATION_FOLDER}/$fileif [ $? -ne 0 ]thenecho "Error! Cannot copy ${SOURCE_FOLDER}/${i}/$FILE_NAME"exitfifidone
注意1:关于tr命令请参考《tr命令详解》
- 如何得到包含隐藏API的Android类库
- 如何得到包含隐藏API的Android类库
- 如何得到包含隐藏API的Android类库
- 编译包含隐藏API的Android SDK(被@hide隐藏)
- Google 隐藏的 android api如何使用
- 如何调用Android隐藏API
- 如何调用Android隐藏API
- 如何调用Android隐藏API
- 如何调用Android隐藏API
- 如何调用Android隐藏API
- 如何调用Android隐藏API
- Android应用开发中如何使用隐藏的API
- Android应用开发中如何使用隐藏的API
- android中如何使用隐藏的api和internal包
- Android提高 - Android如何使用隐藏API
- 自行修改android.jar使其包含隐藏api
- 采用反射调用android隐藏的api
- android使用隐藏api的方法@hide
- hdu 2824
- java加密算法简要介绍
- 跟着老毕学Java-集合框架篇之Map与工具类
- pygame基本用法
- c++单例模式
- 如何得到包含隐藏API的Android类库
- Ubuntu 12.10安装与配置
- Jetty源码笔记
- 图的十字链表
- spring JdbcTemplate 的若干问题
- js对时间操作
- sscanf使用经验分享
- JAVASE基础部分之二---------常量与变量、运算符、程序流程控制
- Android APK反编译详解(附图)