个人在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代码.
本文向大家介绍Android应用开发之代码混淆,包括了Android应用开发之代码混淆的使用技巧和注意事项,需要的朋友参考一下 混淆器(ProGuard) 混淆器通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和混淆。结果是一个比較小的.apk文件,该文件比較难进行逆向project。因此,当你的应用程序对安全敏感(要求高),比如当你授权应用程序的时候,混淆器是一种重
本文向大家介绍Android WebView 应用界面开发教程,包括了Android WebView 应用界面开发教程的使用技巧和注意事项,需要的朋友参考一下 WebView组件本身就是一个浏览器实现,Android5.0增强的WebView基于Chromium M37,直接支持WebRTC、WebAudio、WebGL。开发者可以直接在WebView中使用聚合(Polymer)和Material
本文向大家介绍使用Kotlin开发Android应用教程,包括了使用Kotlin开发Android应用教程的使用技巧和注意事项,需要的朋友参考一下 使用Kotlin开发Android应用 1、Kotlin介绍 [Kotlin](https://kotlinlang.org/) Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者。Java是世界上使用
应用开发 PDF版下载 第一步:创建应用 进入管理后台-服务商-应用管理-创建应用 应用的基本信息: 信息项 要求及说明 应用Logo 应用的Logo,小于5M,640 * 640,在授权页会被用于展示。 应用名称 应用的名称,建议包含品牌名,2-8个字内 AppID 应用ID,系统分配,用于调用第三方应用相关接口 功能分类 应用提供的服务类型,如客户关系、团队协同、文化建设等。一个应用只能拥有一
1.1. 应用开发 1.2. 应用概述 1.3. 工程结构 1.4. 开发者工具 1.4.1. 安装 1.4.2. 调试 1.4.3. 测试 1.5. 教程 1.1. 应用开发 应用开发包括如下介绍: 应用概述 工程结构 开发者工具 教程 1.2. 应用概述 RokidOS 的本地技能分为两类: 轻应用(LightApp) 本地应用(NativeApp) 轻应用,直接通过语音交互的守护进程(vui
刚刚将一个应用程序从V12升级到V13-仅在帮助中进行文本更改。工作很好。 上传给开发人员。它不会发布新的APK,说: “无法发布此配置,原因如下:版本12未提供给任何设备配置:所有可能接收版本12的设备都将接收版本13。” 它在说什么?V12是针对40K+设备发布的,我刚刚对其他三个应用程序做了完全相同的事情,没有任何问题,但这一个不会有。 不知道这是什么意思。我能做的就是把它存为草稿。
本文向大家介绍Android开发应用中Broadcast Receiver组件详解,包括了Android开发应用中Broadcast Receiver组件详解的使用技巧和注意事项,需要的朋友参考一下 BroadcastReceiver(广播接收器)是Android中的四大组件之一。下面就具体介绍一下Broadcast Receiver组件的用法。 下面是Android Doc中关于Broadcas
本文向大家介绍使用Kotlin开发Android应用的初体验,包括了使用Kotlin开发Android应用的初体验的使用技巧和注意事项,需要的朋友参考一下 昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢? Kotlin的简要介绍 在开发之前,很多同学一定有很多疑问,Kotlin到底有啥好处,怎么和现有的项目共存呢?Java那么