Android Studio查看API19的android.jar时IAlarmManager无法识别的问题
问题解答
为什么IAlarmManager无法被识别?
IAlarmManager是Android系统内部的AIDL接口,属于非公开的隐藏API。官方提供的Android SDK(包括API19版本的android.jar)只包含对外公开的SDK接口,系统内部的隐藏类、AIDL这类非公开代码都会被剔除,所以Android Studio找不到这个符号。
如何查看IAlarmManager的代码?
- 下载API19对应的AOSP源码(分支为
android-4.4_r1),在frameworks/base/core/java/android/app/路径下找到IAlarmManager.aidl文件,里面就是该接口的定义。 - 从API19版本的Android ROM里提取
framework.jar,用jadx这类反编译工具打开,就能查看IAlarmManager的具体实现代码。 - 在Android Studio中关联AOSP源码后,就能直接跳转查看该接口的代码。
是否需要调整Android Studio设置?
默认设置解决不了识别问题,得做额外操作:
- 关联AOSP源码:打开Android Studio的
File > Project Structure > SDK Location,把源码路径指向你下载的API19对应AOSP源码目录,关联后IDE就能识别隐藏API并支持代码跳转。 - 替换android.jar:先备份SDK目录里
platforms/android-19/android.jar,再下载包含隐藏API的同版本android.jar替换原文件,重启Android Studio后就能识别IAlarmManager。
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

