1

我正在构建自己的视图来显示视频,并且我想将自定义视图基于内置的 Android VideoView。因此,我正在寻找 VideoView 的源代码。我在 Stackoverflow 和其他地方找到的大多数帖子都指向 grepcode。不幸的是,grepcode 上的代码似乎不是developer.android.com上记录的代码,而且不是很有用。例如,grepcode 上的 VideoView.java 引用了一个从 View 继承的 mContext 对象,但在developer.android.com sdk 的 View 中不可用。此外,VideoView 调用 MediaPlayer 的 resume 方法,该方法在标准 MediaPlayer 类中也不可用。我在哪里可以获得 developer.android.com 上记录的源代码?

谢谢,万斯

4

1 回答 1

1

首先,Android 基础框架是开源的, grepcode的源代码和github的源代码没有区别。它们都有优点和缺点,grepcode 中的源代码由 API 级别标记,因此易于导航特定版本的 API 类,其中 github 中的源代码对每次提交都有完整的更改历史记录,但查找/检索早期版本有点复杂特定的 API 类。

grepcode 上的 VideoView.java 引用了一个从 View 继承的 mContext 对象,但在 developer.android.com sdk 的 View 中不可用

mContext@hide在 android.view.View 中被标记,见github 中的 head 版本

VideoView 调用 MediaPlayer 的 resume 方法,该方法在标准 MediaPlayer 类中也不可用。

resume()@hide在 android.media.MediaPlayer 中被标记,请参阅github 中的早期版本grepcode 中的标记 2.2_r1.1

一般来说,谷歌提供给消费者开发者的开发API(android.jar)已经剥离了com.android.internal和API。@hide但是,安装在实际设备上的运行时 API (framework.jar) 应有尽有。

如果您想在自己的代码中使用这些内部和隐藏 API,解决方案是使用 java 反射或 inazaruk 在他的博客中解释的解决方法

希望这是有道理的。

于 2012-06-21T02:12:51.880 回答