1、首先当然得先编译android源码

2、从android源码的如下目录中获取class.jar (这里的class.jar包含了系统中被标注了@hide的api)

out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar

为了便于辨认,可改名为framework.jar 。

3、将framework.jar拷贝到APP的工程目录的libs目录下.

4、在gradle工程中添加这个framework.jar,并设置为provided (表示只用来编译,不打包进apk)

5、在build.gradle(可在根目录的build.gradle也可在对应module的build.gradle)中添加如下内容:

allprojects {    repositories {        jcenter()    }    gradle.projectsEvaluated {        tasks.withType(JavaCompile) {            options.compilerArgs << '-Xbootclasspath/p:app/libs/framework.jar'        }    }}
上面的“-Xbootclasspath/p:”后面的内容为framework.jar这个文件相对于根目录的路径。

6、至此,@hide的api和自定义的api可编译通过(尽管仍然显示为红色)。


更多相关文章

  1. android系统源码目录system/framework下各个jar包的用途
  2. (六)Android开发进阶(转)
  3. Android(安卓)Studio编译FFmpeg
  4. 如何移植library到Android
  5. window 下 利用gradle编译volley源代码
  6. E/ServiceManager( 54): add_service('led',0x35) uid=10028 - P
  7. 【从源码看Android】01从Looper说起
  8. 将Android的源码附加到Eclipse中,可进行调试
  9. android4.0.3关于init.c和init.rc

随机推荐

  1. Android中jar包封装及调用中出现的问题及
  2. Android WIFI DEMO(扫描附近WIFI强度)
  3. 【Android】广播大全(二)
  4. Android Studio编译问题:ProcessException
  5. Android版本检测\自动更新
  6. 关于Android中是否可以使用全局变量的问
  7. android类似于Jfreechart的图表
  8. android PreferenceScreen使用笔记
  9. android 中spinner 三级联动
  10. Android 菜单资源