在查看源码的时候,发现部分源码是红色的,无法查看,比如:
部分代码无法查看这个PhoneWindow的全称是:com.android.internal.policy.PhoneWindow;
无法查看这个类的具体内容,出于好奇,就直接去本地sdk的源码下查看:
发现这个类是有的,那打不开的原因是什么?
一开始考虑是不是环境配置什么的有问题,于是去百度。
百度到的结果都是关于:
Android Studio 查看不到SDK源码解决办法
于是,打开本地的对应的配置文件,我本地用的是:compileSdkVersion 25
所以对应的配置如下:
<jdk version="2">
<name value="Android API 25 Platform" />
<type value="Android SDK" />
<version value="java version "1.8.0_76-release"" />
<homePath value="D:\AndroidStudio\sdk" />
<roots>
<annotationsPath>
<root type="composite">
<root type="simple" url="jar://$APPLICATION_HOME_DIR$/plugins/android/lib/androidAnnotations.jar!/" />
</root>
</annotationsPath>
<classPath>
<root type="composite">
<root type="simple" url="jar://D:/AndroidStudio/sdk/platforms/android-25/android.jar!/" />
<root type="simple" url="file://D:/AndroidStudio/sdk/platforms/android-25/data/res" />
</root>
</classPath>
<javadocPath>
<root type="composite">
<root type="simple" url="file://D:/AndroidStudio/sdk/docs/reference" />
</root>
</javadocPath>
<sourcePath>
<root type="composite">
<root type="simple" url="file://D:/AndroidStudio/sdk/sources/android-25" />
</root>
</sourcePath>
</roots>
<additional jdk="1.8" sdk="android-25" />
</jdk>
如上文百度的博客所说,没有问题,那就奇怪了。
接着查看发现查资料发现internal对应的是内部api,的确是不向开发者开放的。
在确保本地sdk中已经下载了对应的源码情况下:
1.我们可以去本地直接查看,好吧这个比较傻。
2.你也可以按两下Shift ,打开Search EveryWhere 通过它可以打开这些internal的类 。
普通开发当然是不需要用到内部api,但是你强行要在项目中使用internal的那些api可以参考:
使用内部(com.android.internal)和隐藏(@hide)API
参考:
http://blog.csdn.net/zxw136511485/article/details/53018549
http://blog.csdn.net/fwt336/article/details/53465832
网友评论