在原生Android应用中,我有各种产品。 每个产品在html文件(index.html,图像,详细信息页面,javascript)中都有相关的描述性产品信息。
选择产品后,我想在WebView中显示相关的html内容。我不想在应用程序本身中永久嵌入HTML文件。
方法:我打算按需下载产品HTML包(zip?)。因此,如果您选择产品X,则将下载并使用其HTML zip。
- 要下载还是不下载?
下载HTML文件的原因是它们将从本地目录更快地呈现,但我可以直接从服务器呈现它,如果它也足够快。
(我还想保护HTML文件,这样除了我的应用程序本身之外没有人可以指向它们)
下载位置
哪个是下载这些HTML zip内容的最佳位置,并在那里解压缩?如何在本地目录中显示HTML文件?
有更好的方法吗?
答案 0 :(得分:0)
我不想在应用程序本身中永久嵌入HTML文件
在首次运行下载.zip
文件并在应用程序的app目录中解压缩,这样您就不必每次都下载它。
要下载还是不
你是对的,当你有大量的文件时,从服务器上按需下载html文件不是一个好方法。这意味着你在服务器上为每个html文件命中。您还可能遇到延迟时间或连接性问题。
下载位置
所有应用程序(root或不是)都有一个默认数据目录,即/data/data/<package_name>
。默认情况下,应用程序数据库,设置和所有其他数据都会显示在此处。如果某个应用程序希望存储大量数据,或者出于其他原因希望“对内部存储感觉良好”,则SDCard(Android/data/<package_name>
)上会有相应的目录。
除此之外,所有应用程序都可以将数据存储在SDCard的任何位置,因为没有任何限制 - 许多应用程序都这样做。他们可以自由地使用目录名称(并且他们会再次这样做),这通常使得很难确定卡上所有“垃圾”的用途,以及可以删除的内容。
参考:Where Android apps store data?
如何显示本地目录的HTML文件?
您可以访问默认目录,如:
PackageManager m = getPackageManager();
String s = getPackageName();
try {
PackageInfo p = m.getPackageInfo(s, 0);
s = p.applicationInfo.dataDir;
} catch (PackageManager.NameNotFoundException e) {
Log.w("yourtag", "Error Package name not found ", e);
}