Android Studio中如何查看无法跳转的指定SDK类源码?
这个类属于Wear OS系统服务的私有API,不在公开的Android SDK中,所以常规的跳转和全局搜索找不到,试试下面这些方法:
用Android Studio自动反编译
复制类的完整路径com.google.wear.services.watchfaces.FavoriteOperationException,在AS里新建一个临时scratch文件(File > New > Scratch File),手动写上import com.google.wear.services.watchfaces.FavoriteOperationException;,把光标移到类名上按Ctrl+B(Windows/Linux)或Cmd+B(Mac),AS会自动反编译该类的字节码,生成可读的源码。添加系统私有jar包到项目依赖
从对应版本的Wear OS系统镜像中提取包含该类的jar包(比如wear-services.jar或framework.jar),放到项目的libs目录,然后在Module级的build.gradle中添加依赖:implementation files('libs/xxx.jar')重新同步项目后,就能通过全局搜索找到这个类,查看反编译后的内容。
本地反编译工具解析
下载JD-GUI这类本地反编译工具,找到Android SDK中对应Wear OS版本的系统镜像jar包(路径一般在$ANDROID_SDK_HOME/system-images/android-[版本号]/wear/[镜像类型]/system/framework下),把jar包拖进工具里,就能直接浏览该类的反编译源码。浏览AOSP源码树
这个类大概率属于Wear OS的开源组件,你可以在AOSP源码树中搜索完整类名,相关代码通常在packages/apps/Wearable或frameworks/base/wear目录下,找到对应的.java文件就能查看原始源码。
内容的提问来源于stack exchange,提问作者Makc

