PHP 开发 Android 应用 PHPDroid

GPL
PHP
Android
2016-04-11
eechen

个人在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代码.

加载中

评论(35)

a676774305
a676774305
你好,phpdroid还能更新下么,我是phpdroid的粉丝.
安浪
安浪
可以,一直在努力装逼。我扶你
移动设备JAVA代码搬砖侠
一看作者,果然是eechen的
花中笑
魅蓝Note 和htc g21(刷小米) 装了两个版本的都跑不起来啊
徐舟
徐舟
https://www.oschina.net/question/253880_2236467
张亦Miki
张亦Miki
too simple , sometimes naive.
沉默的钢管
沉默的钢管
卧槽,楼主你怎么这么叼
eechen
eechen 软件作者
#PHPDroid# 基于PHP7+WebView开发Android本地应用.已测试过小米/华为/魅族机型,ARM架构Linux应该都没有问题.
护目评论
护目评论
@eechen #PHPDroid#,鸡肋一个,我没听说有哪个应用会用这种东西做,还“相当成熟稳定?”,其他不说,怎么接收消息推送都成问题,讲道理,作为一个有智商的人,还不如用react native和xamarin。好歹人家是真正能做出可以用的东西,各种成熟的类库和工具链,而且还同时支持android和iOS,你能做什么,给新人挖坑?
护目评论
护目评论
@eechen #PHPDroid#就是一个抄袭老外的东西,连代码都没改一行,这臭不要脸居然说是自己的,还天天吹捧,要不要脸啊?要不要脸啊?要不要脸啊?

PHPDroid 更新,PHP 开发 Android 应用

PHPDroid 更新了,集成最新PHP7+Swoole+BusyBox+QRencode 开发 Android 应用。 下载地址: phpdroid_20160703.apk(5.8M) phpdroid_20160703.7z(4.7M) apk里包含PHP-7.0.8和高性能网络编程扩展...

2016/07/04 00:39

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

下载PHPDroid: 基于WebView和PHP内置HTTP服务器开发Android应用

基于Android上的PHP(比如我打包的PHPDroid),寥寥几行PHP代码,就能实现一个支持无线局域网用浏览器访问的Android手机的Shell,用于执行命令和PHP代码. 个人在Ubuntu上使用交叉编译工具链 arm-...

2016/04/09 10:34
10.2K
16
PHP开发Linux桌面应用和Android应用思路

Node-Webkit把Node.JS跟Chromium Webkit融合在一起,共用一套V8,用于开发桌面应用,但自带一套Webkit环境,会让最终应用很大.PHP从5.4开始内置了一个小巧的CLI HTTP Server,加上自带的SQLite数据...

2015/09/05 15:56
4.4K
10
64位Ubuntu 14.04上使用musleabi最小化交叉编译Android版PHP7

musl-cross-compilers(25MB) https://bitbucket.org/GregorR/musl-cross/downloads 下载: php-7.0.6-arm-linux.xz(1.1MB) CC=arm-linux-musleabi-gcc \ CXX=arm-linux-musleabi-g++ \ AR=arm...

2016/05/22 15:26
1K
3

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部