android studio 使用系统源码编译出来的api
16lz
2021-01-26
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可编译通过(尽管仍然显示为红色)。
更多相关文章
- android系统源码目录system/framework下各个jar包的用途
- (六)Android开发进阶(转)
- Android(安卓)Studio编译FFmpeg
- 如何移植library到Android
- window 下 利用gradle编译volley源代码
- E/ServiceManager( 54): add_service('led',0x35) uid=10028 - P
- 【从源码看Android】01从Looper说起
- 将Android的源码附加到Eclipse中,可进行调试
- android4.0.3关于init.c和init.rc