Android消息推送有很多种方式,通过百度查询和简单的筛选,最终选择了用MQTT来实现这个功能(以下运行环境为WINDOWS 32系统)

一、软件准备

MQTT:mosquitto-1.3.5-install-cygwin.exe

Android:Eclipse环境直接解压即可

PHP:php-5.6.4-Win32-VC11-x86.zip

Apache:httpd-2.4.10-win32-VC11.zip

VC环境:vcredist_x86.exe

二、安装

(1)安装MQTT

     安装MQTT其实很简单,只要简单的直接执行可执行文件即可

     测试进入MQTT的根目录 例:D:\Program Files\cygwin\mosquitto 双击mosquitto.exe 打开出现一个命令行窗口 。

     命令行窗口出现后不要关掉,如果关掉mosquitto 程序也跟着关掉了。若觉得奇怪直接进入任务管理器查看mosquitto是否运行。

(2)安装Android集成环境

    在安装了Java运行环境的前提下解压压缩包可以直接使用。

(3)安装VC11环境只要直接将可执行文件运行即可安装。

(4)Apache安装 Apache 下载后是zip包,解压到后放在合适的位置就可以了,这里我们将它放在C盘的apache24目录;

(5)下载后也是zip包,同样解压到合适位置,我们这里也将其放在C盘的php55目录;

三、配置

  mosquitto无需配置,Android运行环境不是我们今天的重点,如果还是不知道的话就直接百度“Java运行环境安装及配置”。

  下面主要讲解PHP和Apache环境的配置及整合

  参考文献:javascript:void(0)

php.ini;将C:\php和C:\php\ext加入环境变量PATH中;
2.用记事本打开C:\apache24\conf\httpd.conf 
    修改 37行 ServerRoot "c:/Apache24" => ServerRoot "c:/Apache24"(这里输入的是你解压apache安装包的位置
#ServerName www.example.com:80 => ServerName www.example.com:80 (去掉前面的#)
DocumentRoot "c:/Apache24/htdocs" => DocumentRoot "c:/Apache24/htdocs" (这里跟我解压Apache的目录一样,不用改)
<Directory "c:/Apache24/htdocs"> => <Directory "c:/Apache24/htdocs"> (还是一样不用改) 
 DirectoryIndex index.html => DirectoryIndex index.html index.php index.htm (我们添加了index.php index.htm)
ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"  => ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/" (依然一样不用改
<Directory "c:/Apache24/cgi-bin"> => <Directory "c:/Apache24/cgi-bin"> (依然一样不用改

C:\apache24\conf\httpd.conf 最后一行添加)
让apache支持php
        添加 LoadModule php5_module "c:/php55/php5apache2_4.dll" (请确认c:/php55/有php5apache2_4.dll,如果你下载的是我提供的连接肯定是有的)

添加 AddType application/x-httpd-php .php .html .htm

        b.告诉apache php.ini的位置
添加 PHPIniDir "c:/php55" 

httpd.conf 配置完成,保存httpd.conf 。
3.将apache安装到系统服务中
    在cmd中执行:c:\apache24\bin\httpd -k install
4.开启几个常用php扩展,用记事本打开C:\php55\php.ini
    修改 721行 将; extension_dir = "ext" => extension_dir = "ext" (去掉extension前面的分号)
    修改 873行 将;extension=php_mbstring.dll => extension=php_mbstring.dll(去掉extension前面的分号,这是php多字节字符串扩展) 

去掉extension前面的分号)
    修改 876行 将;extension=php_mysqli.dll => extension=php_mysqli.dll(去掉extension前面的分号)
启动
    启动apache,两种启动方式:1.在windows服务中启动;2.双击c:\apache24\bin\ApacheMonitor.exe启动;
两种启动方式:1.在windows服务中MySQL56启动;2.Mysql Notifier启动。

测试
    Http://localhost:8080/index.php

 

我所认为的难点在于PHP和Apache的配置和整合。所以在这上面花了较多的时间。

 

四、导入

这样下来所有的软件已经准备好了,由此可以导入代码运行整个项目。

android mq推送 安卓mqtt推送_Apache

将Android项目 :

android mq推送 安卓mqtt推送_Apache_02

导入Eclipse即可运行,注意jar包的位置记得更改,这个工程可能有一些瑕疵。

将PHP项目放在apache的\Apache24\htdocs 我的是D:\httpd-2.4.10-win32-VC11\Apache24\htdocs

五、运行

1、开启mosquitto 方式如上面的测试方法,记住命令行窗口不能关。

2、运行Android程序

3、运行Apache  进入\Apache24\bin  双击

android mq推送 安卓mqtt推送_android mq推送_03

即可运行

4、访问http://localhost:8080/PhpMQTTClient/

android mq推送 安卓mqtt推送_php_04

5、输入参数

android mq推送 安卓mqtt推送_android mq推送_05

6、完成推送

android mq推送 安卓mqtt推送_Apache_06