代码之家  ›  专栏  ›  技术社区  ›  Fakebear

如何在Android中读取没有缓存的文件?

  •  1
  • Fakebear  · 技术社区  · 14 年前

    我正在安卓平台上开发一个测试应用程序。测试SD卡的写入/读取速度。我用C语言编写,带有ndk接口。

    首先,我编写一个for循环来创建256个文件,每个文件中有512个随机字节。这部分工作得很好。我打开带有标志o_creat_o_wronly_o_sync和模式0666的文件。在调用写入之后,我执行sync()以确保数据写入卡。

    然后我再写一个2级for循环来读取这些文件以测试速度。我使用o_rdwr_o_sync打开文件。然后调用read()。

    问题是:如果这是我第一次运行读部分的话。读取第一个循环比读取后要花更多的时间。我确信这是因为在第一次循环之后,程序读取缓存而不是真正的物理卡。

    我试过直接读旗。但它与eival有错误。在打开的手册页中,它说可能是因为这个功能不是由平台实现的。

    在安卓系统中,你知道如何在没有缓存的情况下阅读吗?

    1 回复  |  直到 14 年前