注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

如何得到包含隐藏API的Android类库  

2011-07-20 09:00:22|  分类: 深入研究 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
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脚本文件来完成该工作。
getDebugJar.sh文件

DESTINATION_FOLDER=Debug_libs
SOURCE_FOLDER='android/out/target/common/obj/JAVA_LIBRARIES'
FILE_NAME='classes-full-debug.jar'
echo $DESTINATION_FOLDER
if [ -d $DESTINATION_FOLDER ]
  then
    echo "Checking destination ... OK"
  else
    echo "Creating destination ..."
    mkdir $DESTINATION_FOLDER
    if [ $? -ne 0 ]
      then
        echo "Error!"
        exit
    fi
fi
echo "Copy files ..."
dirs=`ls $SOURCE_FOLDER | tr '\n' ' '`
for i in $dirs
do
  if [ -f ${SOURCE_FOLDER}/${i}/$FILE_NAME ]
  then
    file=${i%_intermediates}-${FILE_NAME}
    echo Copy $file
    cp ${SOURCE_FOLDER}/${i}/$FILE_NAME ${DESTINATION_FOLDER}/$file
    if [ $? -ne 0 ]
      then
        echo "Error! Cannot copy ${SOURCE_FOLDER}/${i}/$FILE_NAME"
        exit
    fi
  fi
done

注意1:关于tr命令请参考《tr命令详解
  评论这张
 
阅读(2612)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017