android – 为什么Google建议将库复制到树中?

Google的instructions for using the Play Service API(例如)说:

copy the /extras/google/google_play_services/libproject/google-play-services_lib library project into the source tree where you maintain your Android app projects.

Note: You should be referencing a copy of the library that you copied to your source tree—you should not reference the library from the Android SDK directory.

这对我来说似乎很难看 – 为什么不从SDK目录中引用它?这有什么技术原因吗?或者是否可以明确控制何时升级

最佳答案
我想指出这完全是Eclipse的限制,它确实很难看.

问题是该库除源代码外还包含资源. Eclipse只能处理打包为jar文件的库,为了Android开发的目的,它不能包含资源.

因此,为了将库的资源编译到应用程序中,必须将库的源代码与资源一起添加到项目中.

如果您将构建移动到Maven,并使用“理解”Maven的IDE,那么您可以将包含资源的库编译为“apklib”,并以类似于jar文件的方式将其视为外部库.

新的基于Gradle的构建系统是基于Maven原语构建的,但是使用了不同的格式,’aar’.希望它最终还能支持apklib,以便Maven构建和Gradle构建可以互操作.

我刚刚完成了将Android应用程序转换为Maven构建的练习,包括使用一些apklibs.我可以告诉你,带有m2eclipse插件的Eclipse不能正确处理apklib. IntelliJ和新的Google Android Studio(基于IntelliJ)都可以毫无问题地处理apklib.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...