友盟Umeng统计、更新功能使用教程

来源:互联网 发布:2011年nba总决赛 知乎 编辑:程序博客网 时间:2024/06/02 20:52

http://www.eoeandroid.com/thread-309340-1-1.html


友盟统计分析是移动终端上不可多得的佳品,鉴于在开发中使用到,随笔写下使用过程。


友盟SDK下载(包含统计功能和自动更新功能):


第一步:导入SDK
1. 解压文件,libs 文件夹内的文件直接复制到eclipse工程同名文件夹内;
2. 将 res 内所有文件复制到eclipse工程内,合并res资源,所有资源前缀均为 umeng_ 。


第二步:添加权限及相关信息
1. 使用统计功能添加如下权限

1<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
2<uses-permissionandroid:name="android.permission.INTERNET"></uses-permission>
3<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"></uses-permission>
4<uses-permissionandroid:name="android.permission.READ_LOGS"/> <!-- 用于读取日志信息 -->


2. 使用统计功能添加如下信息

1<application>......
2<meta-dataandroid:value="MyAppKey"android:name="UMENG_APPKEY"/>
3<meta-dataandroid:value="eoeAndroid"android:name="UMENG_CHANNEL"/>
4......</application>




提示:UMENG_APPKEY 的值可在友盟添加App获取; UMENG_CHANNEL 是市场的渠道号,用于统计用户通过哪个市场下载应用,可通过友盟提供的渠道号填写。


第三步:开始使用统计功能

1. 鉴于程序内可能有多个Activity,在此建议新建一个基类,让所有Activity继承这个类,增加代码的可重用性:

01publicclass BaseActivity extendsActivity {
02 
03        @Override
04        protectedvoid onCreate(Bundle savedInstanceState) {
05                super.onCreate(savedInstanceState);
06                MobclickAgent.onError(this);  //捕捉未捕捉异常,通过调用这个方法,可以收集引起程序异常退出的错误信息,如不用可注释
07        }
08        /** 在重载函数中为统计代码 **/
09        @Override
10        protectedvoid onPause() {
11                super.onPause();
12                MobclickAgent.onPause(this);
13        }
14 
15        @Override
16        protectedvoid onResume() {
17                super.onResume();
18                MobclickAgent.onResume(this);
19        }



2. 定义好基类后,在以后生成新 Activity 过程中,可直接继承基类:

1publicclass MyActivity extendsBaseActivity {
2 
3        @Override
4        protectedvoid onCreate(Bundle savedInstanceState) {
5                super.onCreate(savedInstanceState);
6                setContentView(R.layout.activity_splash);
7}
8 
9        }




第四步:使用自动更新功能

1. 使用自动更新功能添加如下权限
1<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>


2. 使用自动更新添加如下信息

1<serviceandroid:name="com.umeng.common.net.DownloadingService"
2android:process=":DownloadingService">
3</service>


3. 开始调用更新函数,详细信息可见注释

01publicclass UpdateActivity extendsBaseActivity {
02/** 用户手动检测更新交互按钮 **/      
03privateButton btnChecknew;
04         
05        privateContext mContext = this;
06 
07        @Override
08        protectedvoid 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(newUmengUpdateListener() {
20                        @Override
21                        publicvoid onUpdateReturned(intupdateStatus,UpdateResponse updateInfo) {
22                            switch(updateStatus) {
23                            case0:// 有更新
24                                UmengUpdateAgent.showUpdateDialog(mContext, updateInfo);
25                                break;
26                            case1:// 无更新
27                                OnNotice("当前已是最新版.");
28                                break;
29                            case2:// 如果设置为wifi下更新且wifi无法打开时调用
30                                break;
31                            case3:// 连接超时
32                                    OnNotice("连接超时,请稍候重试");
33                                break;
34                            }
35                        }
36                });
37        }
38        privatevoid initview() {
39                btnChecknew = (Button) findViewById(R.id.wgupdate_btn_check_new);
40                btnChecknew.setOnClickListener(newView.OnClickListener() {
41                         
42                        @Override
43                        publicvoid onClick(View arg0) {
44                                //UmengUpdateAgent.setUpdateAutoPopup(false);
45                                UmengUpdateAgent.forceUpdate(mContext);//先前用户可能忽略更新,“强制”弹出更新对话款
46                        }
47                });
48                 
49        }
50         
51}


3 0
原创粉丝点击