在Android中修改外部库的最佳做法是什么?

问题描述 投票:0回答:3

我正在使用外部库来创建自定义的实时流应用程序。

这是我正在使用的库:

https://github.com/cine-io/cineio-broadcast-android/tree/master/cineio-broadcast-android-sdk

我对该库所遇到的(几个)问题之一是,如果有这个问题,它将迫使手机使用FRONT相机。 我宁愿强迫使用后置摄像头(或选择其他选项)。

实际上,该库中用于管理广播的类确实具有内置的公共方法来在初始化时选择摄像机,并且它的方法是私有的,因此我无法对其进行扩展。

我的解决方案是在本地下载该库,然后将其编译为Gradle中的本地项目(我是usnig Android Studio)。 然后,我直接修改项目中的库文件。 有用。

但是我担心这不是一个很好的做法。 我可以预见的一个问题是该库将被升级-而且由于我将在本地进行更改,因此很难利用该库的新版本。

问题:修改外部库是否有最佳实践? 是我在做什么,还是有更好的方法?

请随时提供有关该问题的反馈,以便我根据需要进行改进或澄清。

java android android-studio libraries
3个回答
2
投票

我会分叉库并将您的提交推送到您的分叉。 这样,您以后就可以将原始库中的更改合并到您的fork中。


2
投票

GitHub具有出色的协作模型,可让您轻松分叉任何OSS项目 。 您可以随意修改它,也可以选择以请求请求的形式将更改推回。

一旦您准备好构建代码,就可以使用完全免费的连续集成/分发工具链,该工具链是从您选择的基于云的CI服务器( CodeshipDrone.ioTravis-CI等构建的 ,一个免费的Artifactory实例,用于您的SNAPSHOT(中间生成结果),以及Bintray作为发行平台( 内置在Android Studio中,供其他人重复使用)。

这是完整堆栈的视频演示 ,这是Artifactory / Bintray部分的文档


0
投票

您可以使用反射( https://stackoverflow.com/a/11484158 ),但这不是一个好方法。 我认为在您的情况下,最好从源代码编译模块而不是对其进行更新。

© www.soinside.com 2019 - 2024. All rights reserved.