- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我知道开发免费和付费版本的应用程序的最佳方法是拥有一个包含程序主要部分的库项目。免费和付费项目将使用此库项目。这允许免费和付费项目拥有不同的资源。
但是,我的问题是我们如何限制免费应用程序的功能(或将其扩展到付费应用程序)?例如,我的免费应用程序只能访问数据库表中的最新行,而付费应用程序可以访问所有行。
实现此目的的一种方法是在资源中的某处设置一个 bool 标志,您将其设置为 true 表示付费,false 表示免费。在运行时,库项目检查 bool 标志并相应地改变行为。然而,这似乎很容易破解任何潜在的攻击。有没有更好的方法?
使用一个免费应用程序然后使用应用程序内付费解锁专业功能是否更容易?
最佳答案
恕我直言,在这种情况下,Java/Android 并不容易。理想情况下,您应该拥有一个代码库,并且能够随意编译付费或免费版本。免费版本将禁用关键方法/类,因此没有人可以修改数据库或 xml 来启用应用程序的全部功能。
一种方法是使用条件编译,Java 也不支持。然而,有一些 Ant 任务可以做到这一点,例如http://prebop.sourceforge.net/doc.html .您可以像这样在代码中添加一些内容:
/* $if paid_version$ */
public void paid_method() {
}
/* $endif$ */
如果您正在构建的 ant 目标没有定义变量 paid_version,则上述代码将被删除。
如何设置 prebop 完全是另一个话题,它很复杂但值得拥有一个单一的代码库。
2013 年 5 月更新:基于 Gradle 的新 Android 构建系统使构建付费和免费 APK 变得更加容易。参见 Android Tools关于“构建变体”主题的网站。简而言之,您可以像这样构建源代码:
/src/main/
/src/paid/
/src/free/
所有共享代码都在/src/main
,付费代码在/src/paid
,免费代码在/src/free
.构建系统将为您创建付费和免费 APK。但是,仍然缺少的一项功能是在源代码本身中进行条件编译的能力。在撰写本文时,Gradle 构建工具仍处于测试阶段,因此希望它会添加到最终版本中。
关于Android 免费和付费功能不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11158164/
前言 俗话说得好“工欲善其事,必先利其器”,合理的选择和使用可视化的管理工具可以降低技术入门和使用的门槛。今天大姚给大家分享一款.NET Avalonia开源、免费、跨平台、快速的Git可视化管理工
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
正在学习有关 C 语言链接列表的教程。我已编译此代码并通过 valgrind 运行它。它显示了 4 次分配和 0 次释放,这是我理解的。我需要知道如何正确调用 free() 来释放分配。 代码示例:l
正如标题所说,我需要一个搜索引擎...用于mysql 搜索。我的网站是基于 PHP 的。 我打算使用 sphinx,但我的托管公司不支持全文索引! 所以一个没有全文的搜索引擎! 它应该是相当强大的,并
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 2 年前。
我正在寻找稳定和成熟的免费/开源库来比较两个图像。 我找到了这个,但我想知道你是否使用更好的! Similar images finder - .NET Image processing in C#
我有一个通用链表实现,其中包含一个指向数据的 void* 的节点结构和一个包含对头的引用的列表结构。现在这是我的问题,链表中的一个节点可能通过其 void* 持有对另一个链表的引用。当我释放包含较小列
前言 在日常工作中PDF文档的处理往往受限于其固有的格式,使得用户在编辑、合并、剪裁等方面面临诸多不便。今天大姚给大家分享一个.NET开源、免费、功能强大的 PDF 处理工具:PDF 补丁丁(PDF
前言 最近发现DotNetGuide技术社区交流群有不少小伙伴在学习Avalonia,今天大姚给大家分享一款开源、免费、美观的 Avalonia UI 原生控件库:Semi Avalonia。
前言 今天大姚给大家分享一款开源(MIT License)、免费、现代化风格的WPF UI控件库:ModernWpf。 项目介绍 ModernWpf是一个开源项目,它为 WPF 提供了一组现代化
LiveCharts2 LiveCharts2是一个.NET开源(MIT License)、简单、灵活、交互式且功能强大的.NET图表、地图和仪表,现在几乎可以在任何地方运行如:Maui、Uno P
前言 今天大姚给大家分享一款.NET开源(MIT License)、免费、实用的多功能原神工具箱,旨在改善桌面端玩家的游戏体验:胡桃工具箱。 工具箱介绍 胡桃工具箱是一款.NET开源(MIT
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 3年前关闭。 Improve this qu
当我这样做时,我的 meteor 应用程序运行的免费服务器的规范是什么。 meteor deploy myapp.meteor.com 规范方面 Storage size Max bandwidth
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
如果可能,我可以使用任何网络服务免费存储少量数据(考虑 XML 或 JSON)? 我想我想创建一个小型待办事项应用程序,只是探索/学习(最好是免费的),它还可以将数据备份到云端,以便他们可以在智能手机
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 2年前关闭。 Improve this qu
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我是一名优秀的程序员,十分优秀!