下載地址 :
[百度云](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