我需要将所有文件从assets文件夹复制到android缓存,以便更快地加载这些数据。主要原因是在应用程序启动期间加载一次。在整个应用程序生命周期中,我可以从缓存中访问所需的文件,这可能会更快。我在互联网上搜索但没有发现任何东西。怎么做?
答案 0 :(得分:3)
通过在某些Context
上调用IntentService
来获取一个Android“缓存目录”,例如JobIntentService
或Service
。将一堆内容从资产复制到文件系统上的文件中需要一些时间,因此具有后台线程的InputStream
可能是合适的。进行实际复制是一个问题:
AssetManager
FileOutputStream
getCacheDir()
,例如getCacheDir()
然而,请理解“缓存”不是一些神奇的小精灵粉尘,你在应用程序上传播,以使其更快。例如,getFilesDir()
并不比getExternalCacheDir()
或getExtenalFilesDir()
或Log
快,因为它们都指向相同的硬件(在大多数设备上)。文件系统上的文件可以比资产更快地访问,因为资产存储在APK中,需要一些工作才能从APK中读取它们。所以,这可能会有所帮助。
但是,由于您尚未使用方法跟踪或import React, { Component } from 'react';
class App extends Component {
render () {
return (
<div className="app">
<h2>Welcome to React</h2>
</div>
)
}
}
export default App;
语句或任何内容来确定您的时间花在哪里,因此完全有可能您将完成这项工作并且不会获得任何净改进。例如,my main book作为APK以及其他格式发布。这本书有200多个章节,全部以HTML格式存储在资产中。我没有发现加载HTML特别慢。由于您在这些页面中所做的事情的性质,使用文件而不是资产可能会对您有所帮助,但这可能对您有所帮助。
但您的性能问题也可能来自: