我参与了Android应用程序的开发,该应用程序是用于Web服务的相当“厚实”的移动客户端。它与服务器进行大量通信,但也具有许多内部逻辑。因此,我决定使用Google Guava
库的某些功能来简化开发过程。这是我非常感兴趣的功能列表:不可变集合,基本utils,集合扩展,函数式编程糖和习语(common.collect
和common.base
),基元实用程序(common.primitives
),哈希实用程序(common.hash
),并发实用程序(futures和AsyncFunction
)。我
不想
在Android中使用的东西:(common.cache
请参见下面的问题),common.eventbus
(我们对此有更好的Android特定库,例如Otto),common.io
(我们可以使用okio
现在适用于Android)。
我读到,使用Guava for Android会大大减慢编译过程,并降低整个运行时性能: Android上的GuavaCache的性能很差 (在这种情况下,这是合理的,不需要为Android使用Guava的缓存),并且 添加了Google番石榴到Android项目-大大减慢了构建速度
那么,是不是有效的在Android项目使用番石榴库或该库的设计使用 仅 用于服务器端开发,我应该用标准的解决方案去?任何解释将不胜感激。
(太大了,无法发表评论,所以我发布了一个答案。)就我个人而言,我在每个Java项目中都使用整个Guava库,并且在我没有出现 严重且正确分析的
性能问题时。例如,如果确实有内存问题,例如在Android环境中,则可以使用ProGuard仅获取您真正需要的Guava的这些部分。
此外,有很多使用Guava的Android应用程序
-不仅是小型应用程序,例如Google Search和Youtube,它们直接来自Google。
(您还应该看到兼容性说明。)
问题内容: 我已经多次听到您不应该执行或出于性能方面的考虑,但是无法深入了解有关它的更多信息。 我可以想象数据库随后将 所有 列都用于操作,这可能会导致性能下降,但是我不确定。有人有关于该主题的更多信息吗? 问题答案: 1.关于count(*)vs. count(其他) SQL是声明性的,您可以指定所需的 内容 。这不同于指定 如何 获得所需的东西。这意味着数据库引擎可以自由地以其认为最有效的方式
问题内容: 例如,这是个好主意吗? 如果您在同一台服务器上有两个虚拟主机,一个虚拟主机,一个虚拟主机,并且使用不同的Apache DocumentRoots,则这将避免当include的来源未知并且可以在任何目录中时,不必包含绝对路径。 (注意:以下部分中的文件路径是相对于Web根目录的。实际上,它们类似于,其中Web根目录在哪里) 例如:我有一个/core/init.php,它是使用来自网站(,
问题内容: 目前,我正在阅读Spring,用于AOP的示例之一是记录方法调用的开始和结束。 我还读到使用AOP会影响性能。 对于这种类型的日志记录,使用Spring AOP是个好主意吗?我的理解是,Spring使用动态AOP最好将静态AOP(如AspectJ)用于这种类型的AOP。 当前,我工作的公司的编码策略需要大量的日志记录,并且我想减少必须编写的日志记录代码量并提高代码的可读性。 我在树错树
问题内容: 我公司在另一个国家/地区拥有一个开发团队,他们坚持使用Vue在我们现有平台的基础上构建新模块。我们的主要平台是基于React与Redux构建的单页面应用程序。 仅基于团队技能的混合框架是一个好主意吗?这两个框架是否可行? 问题答案: 如果主要原因是“我已经知道Vue”,那么我会拒绝。 如果他们已经知道Vue,应该很容易学会反应。 我认为这两个框架可以协同工作,您可以在使用Vue构建的R
beedb是我开发的一个Go进行ORM操作的库,它采用了Go style方式对数据库进行操作,实现了struct到数据表记录的映射。beedb是一个十分轻量级的Go ORM框架,开发这个库的本意降低复杂的ORM学习曲线,尽可能在ORM的运行效率和功能之间寻求一个平衡,beedb是目前开源的Go ORM框架中实现比较完整的一个库,而且运行效率相当不错,功能也基本能满足需求。但是目前还不支持关系关联,
问题内容: 在Android Exceptions中使用printStackTrace()是个坏主意吗? 问题答案: 是的,这是一个坏主意。相反,您应该使用专门为这些目的设计的Android内置日志类:http : //developer.android.com/reference/android/util/Log.html 它为您提供了记录调试消息,警告,错误等的选项。 使用以下命令记录错误: