android - 如何获得 android 应用程序的最低硬件要求

标签 android android-hardware android-memory

我和一些团队成员开发了一个安卓应用程序,可以通过移动设备收集现场数据。

现在此应用程序将投入生产。所以一般人都会使用这个应用程序。 我们还需要编写一个文档来解释应用程序中引入的所有内容以及运行此应用程序所需的最低硬件要求。

现在我怎么知道最低硬件要求是多少?

在我的应用程序中基本上有四个 TextFields、三个 SpinnerDatesEditTexts 和两个 ImageViews.

那么我怎么知道运行这个应用程序所需的最低内存要求。

我已经在一个移动设备上尝试过这个应用程序,其中几乎所有的内存都被其他应用程序用完了。我的应用程序无法拍摄照片。当我删除一些应用程序时,我的应用程序运行良好。

这就是为什么我想知道运行我的应用程序所需的最低内存要求。

最佳答案

最低要求取决于并且主要包括以下几点的测试和文档:

  1. API 级别:支持的最低 android 版本,开发人员最了解它。 android 中的 API 之间发生了许多重大变化。支持 v4 和 v7 兼容库确实有很大帮助,但它们并没有涵盖所有方面。

  2. 设备功能:记下您的应用使用的所有功能。 (比如有触摸屏、有摄像头、加速度计、网络连接等)。幸运的是,您可以在 App manifest (uses-feature) 中声明,Play Store 将过滤掉不支持的设备。

  3. RAM:使用 DDMS/Android Studio在模拟器和真实设备上查看实时内存使用情况。尽量使用尽可能多的ram,通过触发App的各种功能,让它长时间运行。以最小和最大使用量作为估计。 TraceView 等 DDMS 工具还可以让您查看堆、线程上的对象分配,并进行方法分析。运行Monkey Tool长时间给应用程序带来压力。

  4. CPU 速度:如果应用程序进行密集计算、数据转换等,您可能希望在此类计算代码中编写一些时间戳日志。确保您设置 CPU 速度,以便无论需要完成什么计算,都可以在足够的时间内完成,而不会使设备滞后太多。同样在视觉渲染的情况下,(游戏)良好的帧速率是主要因素。在这种情况下,您可以对真实设备的帧速率进行基准测试,并选择高端芯片组。您还可以为多核设备推荐用户。

  5. CPU/GPU 兼容性:另一个重要的细节是,如果应用具有 C/C++ 代码,则该代码可能无法在某些 CPU 类型(MIPS、ARM 或 x86)上运行.使用 OpenGL ES 版本和可用扩展的应用程序也是如此。设备确实有不同的 cpu/图形芯片组。

  6. 磁盘:估计应用安装后的大小,注意App的最低磁盘要求是存储应用本身所需的空间,这样至少可以启动,并且不包括缓存、数据库或它在使用时创建的用户内容。

  7. 显示尺寸:虽然始终建议使用响应式和灵活的 UI,但您的应用可能仅适用于某些屏幕尺寸。因此,可以考虑兼容的屏幕尺寸。

  8. 您无法控制的内容:请记住,您无法控制其他应用程序用户可能运行的内容,因此,可以安全地声明您的应用程序需要设备上有这么多 free 内存,假设最好的情况,声明设备至少安装了这么多内存。例如,您注意到您的应用程序在最大化时占用 200 mb,因此要求仅为 512mb+ 设备。此外,您无法控制用户将拥有的 sd 卡大小,因此应用程序应及时告知用户磁盘已满时无法运行。

最后,良好的测试可以将估算值转化为实际基准。最好将要求建立在基准上,而不是仅根据估计值。

更新:

Is there any API or class by android which give the information what is the minimum memory requirement depending on how may fields I am using in my application and what the permission I am taking bt the mobile phone.

  1. API 无法准确预测运行时间。您的代码中会有许多 ifelse,加上用户输入,您无法预测对象创建和执行的确切路径。您只能使用 DDMS 等工具从外部监控运行时。

  2. 与 Apple 不同,Android 是一个开放系统,制造商可以自由选择的设备硬件的可能性是巨大的。再加上他们在设备 ROM 中所做的自定义。没有通用的 API 可以跟踪所有这些。只需坚持android API和标准规范,避免使用隐藏API等。

关于android - 如何获得 android 应用程序的最低硬件要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15358025/

相关文章:

java - htaccess 及其允许使用我的应用程序访问 android 用户的 url 的用法

android - 重复的 zip 条目 [classes.jar :android/support/design/widget/CoordinatorLayout$Behavior. 类]

android - 使用安卓应用程序控制外设

android - 使用耳机按键事件

android-studio - Android Studio 2.1.2 'Dump Java Heap' 不工作(Mac OS El Capitan)

android - 实现 Firebase 实时数据库时,我应该创建一个契约(Contract)类吗?

android - 如何以编程方式重命名 SD 卡中的音频文件?

java - 带有用于 QR 扫描的 zxing 库的 NullPointerException(android 应用程序)

android - OutOfMemoryError - 使用位图破坏堆大小

android - 应用程序可以使用的最大 RAM 量是多少?