Android 关于查看内部internal api

2017-08-09  本文已影响172人  水言

在查看源码的时候,发现部分源码是红色的,无法查看,比如:

部分代码无法查看

这个PhoneWindow的全称是:com.android.internal.policy.PhoneWindow;
无法查看这个类的具体内容,出于好奇,就直接去本地sdk的源码下查看:

MT4KE784P(KX_6F50LF6AO8.png

发现这个类是有的,那打不开的原因是什么?
一开始考虑是不是环境配置什么的有问题,于是去百度。
百度到的结果都是关于:
Android Studio 查看不到SDK源码解决办法

于是,打开本地的对应的配置文件,我本地用的是:compileSdkVersion 25
所以对应的配置如下:

    <jdk version="2">
      <name value="Android API 25 Platform" />
      <type value="Android SDK" />
      <version value="java version &quot;1.8.0_76-release&quot;" />
      <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

上一篇 下一篇

猜你喜欢

热点阅读