首先,编译自己的sdk
我自己使用的是LineageOS源码,按照 sdk/docs/howt_build_SDK.txt
文档的说明,只需要下面3个命令即可编译出sdk
. build/envsetup.sh
lunch sdk-eng
make sdk
或者为了加快编译速度,使用make -j8 sdk
但是,在我的环境下面,上面的命令编译并不成功,错误信息忘了,我用下面的方法进行编译
brunch potter 我的测试机型是potter
make sdk
上面的命令依然会报错,但是在 out/target/common/obj/PACKAGING/android_jar_intermediates
目录下面,会生成 android.jar
和 android--stubs-src.jar
两个文件,将这个两个文件替换到Android Studio使用的sdk的对应平台目录下面,我使用的是api25,目录为 platforms/android-25/
,即可使用自己添加的api,也可以将hide的api释放出来,SystemProperties类,这个类使用起来还是很方便的。
使用过程中的问题
由于需要使用自己的api,因此在 build.gradle
文件里,需要将compileSdkVersion和targetSdkVersion的值都修改为编译的api版本,我这里是25,因为只能使用25版本,因此不能使用比25版本高的特性,比如androidx,自己项目里引用的一些依赖如果也使用了androidx,也是不可以的,因此需要将这些依赖去除,我这里去除的有XUI、butterknife。
来源:oschina
链接:https://my.oschina.net/u/222749/blog/4699557