我在Android Studio中制作了一个媒体播放器,该播放器使用服务来控制播放。
现在一切正常,即使我的logcat说启动时跳过了123帧,我也没有注意到任何延迟。
我在某处阅读,如果该消息不超过跳过300+帧,则可以忽略此消息,但是现在我不太确定,因为我现在读到即使跳过1帧也是很多。
我还比较了商店中的mp3播放器和ram的使用情况,发现大多数媒体播放器的内存使用率都低于10mb。
但是我的文件几乎超过了 50mb ,我不知道为什么,但是如果您看到详细信息,您会发现有些进程具有相同的名称和很多' sandboxed_processes '
所以我的问题是,我的应用程序几乎消耗50mb的内存以及这些“ sandboxed_processes ”是什么意思是否可以。
答案 0 :(得分:0)
问题1:
这取决于您的应用程序正在使用和需要多少资源。您应该认真对待内存,并且应该使用尽可能少的内存。垃圾收集器将帮助您回收分配的内存,但您应考虑所创建对象的任何实例的寿命,并考虑其设计,以最大程度地减少结构。最后但并非最不重要的一点是,Studio允许您分析应用程序的内存分配,因此请使用它:)。
问题2:
来自官方documentation 的应用沙箱
Android平台利用了基于Linux用户的优势 保护以识别和隔离应用程序资源。这样可以隔离应用 彼此隔离,并保护应用程序和系统免受恶意应用程序的侵害。 为此,Android为每个Android分配一个唯一的用户ID(UID) 应用程序并在其自己的进程中运行它。
Android使用此UID设置内核级应用程序沙箱。 内核在以下位置加强了应用程序与系统之间的安全性: 通过标准Linux设施(例如用户和 分配给应用程序的组ID。默认情况下,应用无法互动 彼此之间并且对操作系统的访问受到限制。对于 例如,如果应用程序A尝试执行恶意操作,例如 读取应用程序B的数据或未经许可拨打电话( 是一个单独的应用程序),则操作系统可以防止 此行为是因为应用程序A没有适当的用户 特权。沙盒非常简单,可审核,并且基于数十年的历史 UNIX风格的用户将进程和文件权限分开。
由于应用程序沙箱位于内核中,因此此安全模型 扩展到本机代码和操作系统应用程序。所有的 内核上方的软件,例如操作系统库, 应用程序框架,应用程序运行时以及所有应用程序都在运行 在应用程序沙箱中。在某些平台上,开发人员 限于特定的开发框架,一组API或 语言以加强安全性。在Android上,没有 对应用程序如何编写的限制 加强安全;在这方面,本机代码与 解释代码。