java - 使用或不使用targetsdkVersion 23

标签 java android api

我的compilesdkversion是23,我的targetSdkversion是23。

我发现瞄准 23 比 21 更困难且更慢(我没有尝试过 22)。也许看起来是这样,因为我总是必须征求用户的许可才能使用“位置”和“读取联系人”等服务。每次我测试它并授予许可时,与使用直接且更快的 21 相比,加载服务需要多花一秒钟的时间。

在我的 Android 设备(6.0 Marshmallow)上测试 targetSdkVersion @ 21 效果非常好,我认为它不会,因为它不是最新版本。

所以我只是很难在版本 21 和 23 之间进行选择。是 21 更好,因为它更直接、更高效,还是 23 更好,因为用户应该能够选择是否允许应用使用某个特定版本服务?或者也许这些都不重要,可以根据您的喜好选择或选择? :S

我只是觉得 23 真的很荒谬。我没有“可选”服务,因此我不认为请求用户允许使用他们的位置来查找他们在 map 上的位置有什么意义。用户第一次下载应用程序时应该会想到这一点。

感谢您的阅读,如果我的英语不好(第二语言),请原谅我

最佳答案

如果您愿意,您可以继续以 API 21 为目标,但这样做会严重限制您利用 Android 中新功能的能力。

通过拒绝以最新的 API 版本为目标,您选择了新平台功能的应用。 API 23 中最明显的一个是运行时权限,但通过将自己限制为 21,您也会错过后续版本中引入的任何内容。例如,Android N 正在引入多窗口模式。

这里真正的影响是对您的用户。虽然运行时权限对开发人员来说需要更多工作,但与安装时权限相比,绝大多数用户更喜欢运行时权限,因为它使他们可以更好地控制自己的设备和数据。

最后,请记住,即使您拒绝支持运行时权限,拥有运行 API 23+ 的设备的用户仍然可以撤销您的应用程序请求的权限。如果他们这样做,您将从任何需要这些权限的方法中获取默认数据,并且您的应用程序可能不会按照您期望的方式运行。

关于java - 使用或不使用targetsdkVersion 23,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37794977/

相关文章:

api - 如何在 flutter 中获得估计的旅行时间和距离

c++ - 对 RTSP 服务器进行编程以将 RTP 发送给第三方

java - 始终使用 dagger 2 初始化依赖关系,无需任何注入(inject)或提供

java - 无法获取 java 代码将用户输入的数据分配给 Joptionpane 中的对象字段

android - 处理 Android 系统托盘中已关闭的 Firebase 通知

java - 如何获取多个膨胀 View 的ID?

java - 如何防止在数据库中快速连续创建重复条目? (日本公共(public)事务局)

java - 使用 Maven 在 jar 中包含依赖项

android - 使用 getOrientation() 函数获取设备角度

iPhone 光线传感器 vs 相机测量光线强度