這兩年一直在做無線的測試,興許還會繼續去做無線的測試,可是之前由于時間的原因一直都沒有非常細緻的了解到代碼層面。
最近抽出時間自己做了些app的開發,決定假設想把移動的測試做好做深入。有一定的app開發經驗非常的有必要,由于僅僅有這樣非常多東西才幹真正了解了。
還有一個方面。這本身也非常有趣。
眼下嘗試的一些東西都還比較基礎,準備持續的做下去。
實踐的過程也想陸續整理出來,做下筆記。也給别人一些參考,遇到非常多問題的時候也是到谷歌度娘的找答案。幫助非常多。
眼下很多其它關注android,ios的部分稍繼續。
基本上如今不論什麼一個有用的app都離不開埋點統計,否則應用撒出去就兩眼一抹黑了。也難以做營運和一些決策。
為了進一步了解這一塊,除了看現有産品的做法(公司内部平台)。也想自己動手寫一下,加深了解,于是選擇了業界用得比較多的友盟平台。
統計的次元非常多,隻是最主要的新增使用者和啟動次數。
關于這個。可能就須要涉及到Android的activity的生命周期和狀态改變。為了更好的了解,做了個簡單的代碼嘗試。
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.e(TAG,"enter onCreate”);
}
protectedvoid onStart() {
super.onStart();
Log.e(TAG,"onStart");
}
@Override
protectedvoid onResume() {
super.onResume();
Log.e(TAG,"onResume");
@Override
protectedvoid onPause() {
super.onPause();
Log.e(TAG,"onPause");
}
然後做了一些實驗:
1. 第一次啟動應用main activity有3個狀态觸發,onCreate。onStart,onResume

2. 按home鍵将應用切到背景,觸發onPause和onStop
3. 長按home鍵,找到應用,又一次切回前台,觸發onStart和onResume
後面看友盟的sample code後發現也是基于這個來統計活躍使用者的。好了,以下記錄下接入友盟統計的過程。
首先,須要在AndroidManifest.xml中加入權限和一些配置,主要是appkey,這個在友盟站點注冊好賬号之後加入應用就能夠擷取到,Channel ID是自己來定義。
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name=“android.permission.ACCESS_NETWORK_STATE" />
<uses-permissionandroid:name=“android.permission.READ_PHONE_STATE" />
……
<meta-dataandroid:value=“535f487******"android:name="UMENG_APPKEY"></meta-data>
<meta-dataandroid:value="Test001"android:name="UMENG_CHANNEL”/>
</application>
然後在activity裡面加入相應的代碼,MobclickAgent class。
import com.umeng.analytics.MobclickAgent;
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MobclickAgent.updateOnlineConfig(this);
}
protectedvoid onResume() {
super.onResume();
Log.e(TAG,"onResume");
MobclickAgent.onResume(mContext);
}
protectedvoid onPause() {
super.onPause();
Log.e(TAG,"onPause");
MobclickAgent.onPause(mContext);
}
須要把umeng的jar包加到project裡面。
可是在Eclipse裡面做完這一步之後發現還是遇到錯誤,一運作到MobclickAgent的語句就異常了,如以下。官方文檔僅僅是提到上面的步驟。
解決方式是把umeng的jar包放到project的libs檔案夾下。
接下來,App跑起來,幾分鐘之後就能夠看到資料了。
啟動次數這裡由于是通過onResume()統計的, 是以有一些細節須要注意,看是否須要調整。
能夠看到管道的結果。就是之前在AndroidManifest.xml裡面配置的。
裝置的一些資訊眼下不能檢視當天的結果。要第二天來看。還是比較準确的。
另外也試驗了下自己定義的Event。我的demo app裡面有兩段訪問HTTP接口的地方,分别通過Apache HttpClient和Android HttpClient。想統計下調用次數以及響應時間。
在調用前後埋上相應的代碼。
MobclickAgent.onEventBegin(this,"Android_http_visit”);
MobclickAgent.onEventEnd(this,"Android_http_visit");
整體來說,基本統計功能還不錯,開發也非常友善,比之前想象的要友善非常多。可是結合我們實際産品用的自研BI工具的資料分析。以及和朋友了解到大規模實際使用的情況,一些偏應用層面的功能還不是特别夠用。比方具體的使用者訪問路徑方面。