如何在WebView应用程序中本地运行PHP代码



所以我收到了一个有严格限制的项目,我需要为WebView应用程序运行存储在本地应用程序目录中的php文件。然而,我甚至不知道从哪里开始实施或集成

我在谷歌上看到以下应用程序,声称拥有php服务器、mysql等。

https://play.google.com/store/apps/details?id=com.sylkat.apache

所以我知道有可能在android应用程序中运行php文件。

我的想法是什么,

  • 在webview应用程序中拥有php服务器,将php文件添加到应用程序目录中
  • 配置webview以打开以下URL";本地主机">
  • Webview应用程序不需要MySQL的要求,只需处理php即可
  • Webview应用程序不需要担心存储,因为它不会保存任何存储

我在这个问题中没有寻求什么

  • 在playstore中使用其他应用程序,因为这将是一个独立的应用程序
  • 被指示将文件转换为其他格式,如html、javascript等
  • 建议与该问题无关的选项

我知道php是服务器端代码。

如果你想在现代安卓设备上运行PHP代码,这是你面临的一系列挑战。

我搜索并发现了一些暗示PHP可以在Android上运行的项目

虽然我不能谈论任何闭源代码项目,但有一些开源项目,DroidPHP和最近的MyServer和lampTermux。但是需要一些历史/背景知识来理解这些项目所代表的内容。

PHP是用C/C++编写的。虽然安卓系统确实通过安卓NDK支持C/C++,但缺少的是PHP服务器希望在安卓系统不支持的恒功率Posix兼容环境中运行。

第一个DroidPHP似乎被作者放弃了,它使用Busybox,它提供了一个与POSIX兼容的环境,但需要超级用户/root权限,这需要"扎根"Android设备。请注意,"生根"通常会使设备保修失效。

多年来,安卓生态系统拥有数十亿用户,提高了每个版本的安全性,减少了任何不良行为者的攻击面。

另外两个github项目使用Termux,它提供了一个类似POSIX的环境,可以与root一起使用,也可以在没有root的情况下以更有限的方式使用。

嘿,听起来很棒,所以我可以使用Termux来运行我的PHP代码

一些注意事项:

  1. 安卓制造商在自己的电池节省处理中添加了如下网站:https://dontkillmyapp.com/如果你的应用程序只在前台运行,你可能是安全的。

  2. 来自Termux回购关于Android 12的自述:

注意:Termux在Android 12上坏了。安卓操作系统会杀死任何超过32的进程(限制是所有应用程序的总和),也会杀死任何使用过多CPU的进程。

  1. 如果您打算发布独立的应用程序,则需要托管自己的软件包。来自Termux常见问题解答

是的,由于Termux是开源的,使用GNU GPL v3.0和某些组件的Apache-2.0许可证,只要满足许可证要求,您就可以自由地重用现有组件。

然而,许可证不包括";免费的";我们的托管能力的使用有些有限。您不能在自己的项目中使用我们的包存储库。请构建包并自己托管。

开始了解开发人员wiki页面上的信息:https://github.com/termux/termux-packages/wiki.

  1. 由于安全限制的增加,谷歌Play商店不再支持Termux。因此,如果Android应用程序是商业发布的,考虑到Termux(及其操作要求)目前不兼容,将您的项目迁移到Java/Kotlin甚至WebView中的JavaScript将允许在Google Play商店中获得支持

如果你关注嵌入式尝试问题线程,你会发现嵌入是一个涉及的过程。

来源:https://www.reddit.com/r/termux/comments/p3exkr/how_can_i_make_an_android_apk_app_based_on_termux/

最新更新