有没有办法访问Android源代码树中的文件?

时间:2010-04-10 19:42:23

标签: android jetty

这有点不正统,但我想弄清楚是否有办法访问存储在Android应用程序apk的src树中的文件。我正在尝试使用i-Jetty(Android的Jetty实现)而不是将其用作单独的应用程序并手动下载我的war文件,我宁愿只是在i-jetty中烘焙。

但是,为了使用(轻松)标准的html / jsp,我需要能够为它提供一个文档根目录,最好是在我的应用程序的apk文件中。我知道Android专门用来阻止你(自由地)访问实际系统上的东西,所以这可能是不可能的,但我认为可能有可能访问apk中的内容。解决此问题的一个选择是将所有文件存储在res目录中,然后在启动时将它们复制到sdcard,但这不允许我在卸载时自动删除文件。

为了让您了解我尝试过的内容,目前,html文件存储在org.webtext.android中

Context rootContext = new Context(server_, "/", Context.SESSIONS);
rootContext.setResourceBase("org/webtext/webapp");

返回404错误。

final URL url = this.getClassLoader().getResource("org/webtext/webapp");
Context html = new WebAppContext(url.toExternalForm(), "/");

发生NullPointerException,因为getResource调用没有返回任何URL。

任何想法都将不胜感激!

谢谢,

克里斯

编辑如果有人发现这个寻找类似的答案,我从来没有找到一个好的答案。我对下面建议的内容稍作讨厌。我创建了一个只有html / jsp内容的war文件(我手动添加到服务器的servlets并且能够保存在src树中)并将其存储在assets文件夹中。当应用程序启动时,我将war文件复制到sdcard。当应用关闭时,我删除了副本。当然,如果应用程序被杀死而不是优雅地退出,我没有机会删除它,但这不是一个大问题。

1 个答案:

答案 0 :(得分:1)

您可以考虑创建Context的子类,该子类支持使用assets/AssetManager目录中加载文件。