http://www.eoeandroid.com/thread-309340-1-1.html
友盟统计分析是移动终端上不可多得的佳品,鉴于在开发中使用到,随笔写下使用过程。
友盟SDK下载(包含统计功能和自动更新功能):
第一步:导入SDK
1. 解压文件,libs 文件夹内的文件直接复制到eclipse工程同名文件夹内;
2. 将 res 内所有文件复制到eclipse工程内,合并res资源,所有资源前缀均为 umeng_ 。
第二步:添加权限及相关信息
1. 使用统计功能添加如下权限:
1 |
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> |
2 |
<uses-permission
android:name="android.permission.INTERNET"></uses-permission> |
3 |
<uses-permission
android:name="android.permission.READ_PHONE_STATE"></uses-permission> |
4 |
<uses-permission
android:name="android.permission.READ_LOGS"
/> <!--
用于读取日志信息 --> |
2. 使用统计功能添加如下信息:
1 |
<application>...... |
2 |
<meta-data
android:value="MyAppKey"
android:name="UMENG_APPKEY"
/> |
3 |
<meta-data
android:value="eoeAndroid"
android:name="UMENG_CHANNEL"
/> |
4 |
......</application> |
提示:UMENG_APPKEY 的值可在友盟添加App获取; UMENG_CHANNEL 是市场的渠道号,用于统计用户通过哪个市场下载应用,可通过友盟提供的渠道号填写。
第三步:开始使用统计功能
1. 鉴于程序内可能有多个Activity,在此建议新建一个基类,让所有Activity继承这个类,增加代码的可重用性:
01 |
public
class
BaseActivity extends
Activity { |
02 |
03 |
@Override |
04 |
protected
void
onCreate(Bundle savedInstanceState) { |
05 |
super.onCreate(savedInstanceState); |
06 |
MobclickAgent.onError(this); //捕捉未捕捉异常,通过调用这个方法,可以收集引起程序异常退出的错误信息,如不用可注释 |
07 |
} |
08 |
/**
在重载函数中为统计代码 **/ |
09 |
@Override |
10 |
protected
void
onPause() { |
11 |
super.onPause(); |
12 |
MobclickAgent.onPause(this); |
13 |
} |
14 |
15 |
@Override |
16 |
protected
void
onResume() { |
17 |
super.onResume(); |
18 |
MobclickAgent.onResume(this); |
19 |
} |
2. 定义好基类后,在以后生成新 Activity 过程中,可直接继承基类:
1 |
public
class
MyActivity extends
BaseActivity { |
2 |
3 |
@Override |
4 |
protected
void
onCreate(Bundle savedInstanceState) { |
5 |
super.onCreate(savedInstanceState); |
6 |
setContentView(R.layout.activity_splash); |
7 |
} |
8 |
9 |
} |
第四步:使用自动更新功能
1. 使用自动更新功能添加如下权限:
1 |
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> |
2. 使用自动更新添加如下信息:
1 |
<service
android:name="com.umeng.common.net.DownloadingService" |
2 |
android:process=":DownloadingService"
> |
3 |
</service> |
3. 开始调用更新函数,详细信息可见注释:
01 |
public
class
UpdateActivity extends
BaseActivity { |
02 |
/**
用户手动检测更新交互按钮 **/ |
03 |
private
Button btnChecknew; |
04 |
|
05 |
private
Context mContext = this; |
06 |
07 |
@Override |
08 |
protected
void
onCreate(Bundle savedInstanceState) { |
09 |
super.onCreate(savedInstanceState); |
10 |
setContentView(R.layout.activity_update); |
11 |
initview(); |
12 |
/**
开始调用自动更新函数 **/ |
13 |
UmengUpdateAgent.update(this);
//从服务器获取更新信息 |
14 |
UmengUpdateAgent.setUpdateOnlyWifi(false);
//是否在只在wifi下提示更新,默认为
true |
15 |
UmengUpdateAgent.setUpdateAutoPopup(true);
//是否自动弹出更新对话框 |
16 |
UmengUpdateAgent.setDownloadListener(null);
//下载新版本过程事件监听,可设为
null |
17 |
UmengUpdateAgent.setDialogListener(null);
//用户点击更新对话框按钮的回调事件,直接
null |
18 |
//从服务器获取更新信息的回调函数 |
19 |
UmengUpdateAgent.setUpdateListener(new
UmengUpdateListener() { |
20 |
@Override |
21 |
public
void
onUpdateReturned(int
updateStatus,UpdateResponse updateInfo) { |
22 |
switch
(updateStatus) { |
23 |
case
0:
//
有更新 |
24 |
UmengUpdateAgent.showUpdateDialog(mContext,
updateInfo); |
25 |
break; |
26 |
case
1:
//
无更新 |
27 |
OnNotice("当前已是最新版."); |
28 |
break; |
29 |
case
2:
//
如果设置为wifi下更新且wifi无法打开时调用 |
30 |
break; |
31 |
case
3:
//
连接超时 |
32 |
OnNotice("连接超时,请稍候重试"); |
33 |
break; |
34 |
} |
35 |
} |
36 |
}); |
37 |
} |
38 |
private
void
initview() { |
39 |
btnChecknew
= (Button) findViewById(R.id.wgupdate_btn_check_new); |
40 |
btnChecknew.setOnClickListener(new
View.OnClickListener() { |
41 |
|
42 |
@Override |
43 |
public
void
onClick(View arg0) { |
44 |
//UmengUpdateAgent.setUpdateAutoPopup(false); |
45 |
UmengUpdateAgent.forceUpdate(mContext);
//先前用户可能忽略更新,“强制”弹出更新对话款 |
46 |
} |
47 |
}); |
48 |
|
49 |
} |
50 |
|
51 |
} |
本文介绍如何在Android应用中集成友盟统计分析SDK及自动更新功能,包括权限配置、统计信息设置、统计功能使用及自动更新实现。
4599

被折叠的 条评论
为什么被折叠?



