如何統計你的應用的用戶量以及用戶的地域分布情況?

下載地址 :

[百度云](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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容