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。
如果想提取
完整的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命令详解》