所以我收到了一个有严格限制的项目,我需要为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代码
一些注意事项:
-
安卓制造商在自己的电池节省处理中添加了如下网站:https://dontkillmyapp.com/如果你的应用程序只在前台运行,你可能是安全的。
-
来自Termux回购关于Android 12的自述:
注意:Termux在Android 12上坏了。安卓操作系统会杀死任何超过32的进程(限制是所有应用程序的总和),也会杀死任何使用过多CPU的进程。
- 如果您打算发布独立的应用程序,则需要托管自己的软件包。来自Termux常见问题解答
是的,由于Termux是开源的,使用GNU GPL v3.0和某些组件的Apache-2.0许可证,只要满足许可证要求,您就可以自由地重用现有组件。
然而,许可证不包括";免费的";我们的托管能力的使用有些有限。您不能在自己的项目中使用我们的包存储库。请构建包并自己托管。
开始了解开发人员wiki页面上的信息:https://github.com/termux/termux-packages/wiki.
- 由于安全限制的增加,谷歌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/