【问题标题】:Borrowing code from another android application从另一个 android 应用程序借用代码
【发布时间】:2013-01-10 16:34:57
【问题描述】:

所以我正在尝试让自己成为一个学习android的小闹钟应用程序。只是为了做一些我一直想做的事情,让它成为我自己的。抛开动机不谈,在编写了界面和一堆其他功能之后,我决定借用一些安卓闹钟源的代码,如果不是大部分的话。

我已经引入了所有 res 的东西,并且我已经将所有 src 文件包含在它们原来的 com.android.alarmclock 命名空间下,这样它们仍然可以正确地相互引用。但是它拒绝为新文件生成 R 文件。

当我清理和重建所有这些时,它仍然会为我的包 (com.nathantempelman.alarmapp) 中的内容生成一个构建文件和一个 R 文件,但我仍然在所有 android AlarmClock 文件上遇到错误。

我是否应该更改闹钟文件,以便它们以某种方式从我的包中引用 R?还是我在更新阻止另一个 R 构建的 AndroidManifest 文件时错过了什么?

或者完全是别的什么?尝试将另一个应用程序的源代码拖入我的应用程序是一个愚蠢的想法吗?我应该在外部项目中打开它并尝试以某种方式引用它吗?

如果有人遇到类似情况,我很想听听一些想法。 感谢阅读。

【问题讨论】:

    标签: android eclipse


    【解决方案1】:

    这不是它的做法。您希望您的 Alarmapp 扩展 ALarmClock 或扩展您想要或需要的 ALarmCLock 类或接口。

    如果不重构和捆绑所有松散的部分,您就不能像这样拖入源代码,因此 alarmApp 扩展了 AlarmClock。

    看看here希望对你有帮助

    【讨论】:

    • 我知道继承和接口是如何工作的,但这对这个不起作用。我编写的代码甚至不是警报内容,它有点像首页。我想借用整个闹钟应用程序,向其中添加我喜欢的东西,并让我的应用程序的首页有一个按钮可以打开它。我的问题只是让它在同一个项目空间中构建,以便我可以使用它。我对整个生成的文件和 R 的东西还是有点模糊。不确定应用程序中的每个活动是否需要自己的 R,或者它们应该共享一个大资源文件或什么。对此有任何想法吗?
    • 您只需要一个资源文件,R.java 文件不同。 stackoverflow.com/questions/2048415/magic-behind-r-java-file 如果您只是想盗版一些代码,您需要自己将其构建到您的活动/类文件中。从其他代码中获得有关各种实现技术的想法比实际尝试使用它更容易。
    【解决方案2】:

    我尝试了库方法,但没有奏效。最后,我只是把小项目放到大项目中,结合字符串xml和android manifest,改变android manifest中activity的intent类,把所有相关的图片都拖进去。相当多的工作最后,但它可以做到。

    快速清单:

    • 拼接安卓清单文件 - 如果包名不同,请确保清单顶部的包名仅在两个包相同的情况下扩展

    • 确保所有资源都能顺利完成

    • 拼接 strings.xml、styles.xml 和其他任何常见的内容 两个项目之间

    我想我会发布这个以防其他人最终尝试做同样的事情。祝你好运

    【讨论】:

    • 我赞赏你的坚持,但你所做的只是为了重新发明轮子而绕过所有面向对象的东西。虽然它有效,但你仍然做错了。但话说回来,这就是学习的全部意义所在。
    • 相反,我做所有这些工作是为了避免重新发明轮子。我并没有自大到相信我可以编写比经验丰富的谷歌开发团队更好的闹钟,所以我从他们的时钟应用程序中借用了相关部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多