如何统计你的应用的用户量以及用户的地域分布情况?

下载地址 :

[百度云](http://yun.baidu.com/share/link?shareid=2047821926&uk=2685299068)

背景 :

为了为以后提升用户体验 , 因此对安卓客户端的信息进行统计

原理 :

客户端 : 
    1. 安卓客户端启动初始化的时候 , 获取安卓设备的信息 (时间/IP/MAC/版本号)
    2. 使用HTTP将数据POST到服务器端的AndroidLog.php中
服务端 : 
    1. AndroidLog.php获取到POST数据之后 , 对数据进行格式化处理 , 使得数据便于观察和统计
    2. 将数据逐条根据一个可逆的算法进行加密 , 然后保存到文件AndroidLog.txt中
管理 : 
    1. 利用Python脚本获取服务端的日志信息数据 , 
       然后逐行进行解密 , 然后将明文保存在本地文件AndroidLog.txt中

存在的问题 :

1. 安全问题 : 直接将安卓客户端的日志信息暴露在web目录下 , 尽管进行了加密 , 但是总归是不安全的
    解决方案 : 
            储存 : 利用php将数据加密后插入数据库
            获取 : 从数据库获取数据 , 进行显示
2. 数据分析问题 : 
    目前只有获得到的原始数据 , 还并没有数据的统计分析的功能
3. IP转地址 : 
    暂时使用ip138.com的开发API , 目前该平台处于公测阶段 , 
    所有查询免费 , 等该平台公测结束 , 则需要修改AndroidLog.php
    重写getLocationOfIP($ip)函数

提升部分 :

1. 目前数据的呈现是以为 : txt 形式 , 不具有美观性和直观性
    以后希望可以使用 html 进行数据的呈现 , 最好可以能以图表的形式呈现(依据百度统计)
2. 如果可以使用数据库进行数据的存储 , 则可以在管理员的管理界面中添加此功能 , 
    然后进行分析和管理 , 就不需要使用txt文件和python脚本

管理方式 :

1. 只需要分析数据 : 双击运行decrypt.py , 即可自动从服务器获取数据并解密 , 
    保存在本地AndroidLog.txt文件中

目录结构 :

http://www.xxx.com/AndroidLog.php---------服务端 : 运行的执行记录功能的php
http://www.xxx.com/AndroidLog.txt---------服务端 : 保存的安卓日志信息
AndroidLog.py-----------------------------管理员电脑上 : 获取日志信息 , 
                                            保存在本地AndroidLog.txt中

配置方法 :

注意 : 所有必须的配置在代码中都以 四个注释符 开头 , 例如 : 
    1.AndroidLog.java   ////
    2.AndroidLog.php     ////
    3.AndroidLog.py   ####
服务端 : 
    1. 配置php中的加密算法的密码 , 然后将AndroidLog.php放置在服务器的任意目录中 , 
        例如 : http://www.xxx.com/AndroidLog.php
    2. 注册ip138公测接口账号 : 
        2.1. 地址为 : http://user.ip138.com/ip/
        2.2. 购买IP查询包 , 目前该平台处于公测状态 , 可以免费使用
        2.3. 复制在该平台的到的token值 , 将token设置到php的$token变量中
安卓客户端 : 
    1. 在Android的Manifest.xml中添加这一行代码(申请网络使用权限) : 
            <!-- 网络使用权限 -->
            <uses-permission android:name="android.permission.INTERNET" />
    2. 修改android_log.java中String android_php_path的值 , 将其修改为AndroidLog.php的URL地址
        然后在Android目录中添加AndroidLog.java , 然后实例化并调用start()方法即可
        如 : 在MainActivity中的Oncreate方法中添加 : new AndroidLog(this).start();
获取日志信息 :
    1. 修改AndroidLog.py中url这个变量的初始值 : http://www.xxx.com/AndroidLog.txt
        注意 : 这个txt文件必须和php文件在同一个目录 , 
            因为php文件记录的日志就保存在php文件的同级目录下
    2. 修改AndroidLog.py中解密算法的密码 , 要保证和php中加密算法的密码相同
    2. 在命令行中切换入 AndroidLog.py 中 , 键入 python AndroidLog.py , 
        当显示 "读取完毕 , 请查看AndroidLog.txt" , 此时说明脚本运行完毕 , 
            然后在脚本的同级目录下就可发现 : AndroidLog.txt
        查看记录即可

环境要求 : (以下环境测试无BUG)

php5.6 (php需要开启文件写入权限 , 一般php都是开启的 , 不必过多调整)
python2.7
android4.4
展开阅读全文

没有更多推荐了,返回首页