这有点不正统,但我想知道是否有一种方法可以访问存储在Android应用程序apk的src树中的文件。我正在尝试使用i-jetty(Android版的jetty实现),而不是将其作为单独的应用程序使用,并手动下载我的war文件,我宁愿把i-jetty烘焙进来。
但是,为了使用(容易地)标准HTML/JSP,我需要能够给它一个文档根目录,最好是在应用程序的APK文件中。我知道Android专门阻止你访问(免费)实际系统上的东西,所以这可能是不可能的,但我认为它可能访问apk中的某些东西。解决此问题的一个选项是将所有文件存储在res目录中,然后在启动时将其复制到SD卡,但这不允许我在卸载时自动删除这些文件。
为了让你了解我的尝试,目前,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文件(servlet是我手动添加到服务器的,并且能够保存在src树中),并将其存储在assets文件夹中。当应用程序启动时,我将war文件复制到SD卡。当应用程序关闭时,我会删除副本。当然,如果应用程序被杀了,而不是优雅地退出,我没有机会删除它,但这不是一个巨大的交易。