PHP 开发 Android 应用 PHPDroid

码农软件 · 软件分类 · 手机开发包 · 2019-05-04 22:29:03

软件介绍

个人在Ubuntu上使用交叉编译工具链 arm-linux-musleabi 或 arm-none-linux-gnueabi 按照  DroidPHP  的教程构建了适用于Android(ARM架构)和树莓派Raspbian(ARM架构基于Debian的Linux发行版)的PHP解释器(cli,cli-server).


从图中可以看到,PHP进程的内存(RSS)内存占用才5MB,WebView的内存占用将近80MB.

内容包括:
main: 这个目录里面是项目源代码,主要就是MainActivity.java和assets数据.
phpdroid.apk: 应用示例,大小不到6MB,包含PHP,Swoole,BusyBox,QRencode.

这里需要说明的是,BusyBox并不是PHP必备的东西,
打包它只是为了方便PHP能够调用里面常用的GNU/Linux命令,
去掉BusyBox后APK包还能缩小600KB.

需要强调的是,包里的PHP是路径无关的,运行也不需要root权限,
只要维持assets/php/的目录结构,放到你的应用里也能正常运行.
PHP的版本是7.1.0.

网站根目录位于assets/php/www.
PHPer在PC上开发时,只需执行:
php -S 127.0.0.2:8181 -t /path/to/assets/php/www
然后打开浏览器的手机模式访问 127.0.0.2:8181 就可以了.

PHPDroid基本工作原理:
Java启动PHP内置的HTTP服务器,然后开一个WebView访问这个PHP驱动的HTTP服务.
其中,WebView用于实现人机交互,可以用传统的HTML/CSS/jQuery技术进行图形界面编程.
PHP则负责跟本地文件系统,SQLite数据库,网络进行交互.

需要强调的是,PHPDroid追求的不是像Java App那样能够访问Android系统提供的API. PHPDroid的优势在于用传统的Web开发技术HTML/CSS/JS/PHP/SQL就能开发基于WebView的本地WebApp. PHPDroid内置的本地PHP不能访问Android提供给Java的API,但可以操作本地文件系统(应用目录)和SQLite以及进行网络交互. 比如获取一个新闻列表,WebView通过AJAX访问本地PHP,PHP再通过cURL等访问远程服务器. 远程服务器返回JSON,里面包含新闻的标题,摘要,缩略图网址,本地PHP转成数组后循环输出到WebView. 可见这个本地PHP既是WebView的服务器端,又是远程服务器的客户端,是WebView和远程服务器数据交互的中转站. 把WebView和本地PHP看做一个整体,那它就是一个不能调用Android API的本地WebApp. 毕竟Android是Linux内核,一切皆文件的思想还是在那里的, 只要有权限,PHP读取一些系统数据(比如/proc/cpuinfo)并没有问题.

比如基于Android上的PHP(比如我打包的PHPDroid),寥寥几行PHP代码,
就能实现一个支持无线局域网用浏览器访问的Android手机的Shell,用于执行命令和PHP代码.

本文地址:https://codercto.com/soft/d/5038.html

Pro HTML5 Programming

Pro HTML5 Programming

Peter Lubbers、Brian Albers、Frank Salim / Apress / 2010-9-1 / USD 49.99

HTML5 is here, and with it, web applications take on a power, ease, scalability, and responsiveness like never before. In this book, developers will learn how to use the latest cutting-edge HTML5 web ......一起来看看 《Pro HTML5 Programming》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具