友盟各个插件的使用方法
2015-08-21 17:05
357 查看
使用友盟提供的功能之前需要获取应用的AppKey
确保在所有的Activity中都调用
请不要同时在父和子Activity中重复添加onPause和onResume方法,否则会造成重复统计,导致启动次数异常增高
当应用在后台运行超过30秒(默认)再回到前端,将被认为是两个独立的session(启动),例如用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。可通过接口:
调用Process.kill或者System.exit之类的方法杀死进程之前调用MobclickAgent.onKillProcess(Context context)方法,用来保存统计数据。
包含Activity、Fragment、View的应用
使用
使用
计算事件,统计数值型变量的值得分布,如事件持续时间、每次付款金额等,可以调用如下方法:
需要在程序的入口
流量优化与体验优化,开发者可以设置只在特定网络环境(如WiFi)下进行更新,优先使用本地已下载过的安装包,为用户节省宝贵流量。还能设置版本更新检测的时间间隔,防止频繁弹出更新提示。
按渠道更新,Android平台发布渠道众多,更新繁琐,友盟自动更新支持不同渠道更新不同升级包,有效提升运营效率。
增量更新,Android平台SDK在2.0版本后支持增量更新,默认下载增量包,节省时间和流量。
多样展现:开发者可以自定义各种UI样式。
右上角选中应用
点击"组件"
点击右侧菜单“自动更新”
自定义反馈:
自定义布局页面
设置用户信息
一:应用统计
开发文档:http://dev.umeng.com/analytics/android-doc/integrationsession统计
在每个Activity的onResume方法中调用MobclickAgent.onResume(Context), onPause方法中调用
MobclickAgent.onPause(Context)
确保在所有的Activity中都调用
MobclickAgent.onResume()和
MobclickAgent.onPause()方法
请不要同时在父和子Activity中重复添加onPause和onResume方法,否则会造成重复统计,导致启动次数异常增高
当应用在后台运行超过30秒(默认)再回到前端,将被认为是两个独立的session(启动),例如用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。可通过接口:
MobclickAgent.setSessionContinueMillis(long interval)来自定义这个间隔(参数单位为毫秒)
调用Process.kill或者System.exit之类的方法杀死进程之前调用MobclickAgent.onKillProcess(Context context)方法,用来保存统计数据。
@Override public void onResume() { super.onResume(); MobclickAgent.onResume(this); } @Override public void onPause() { super.onPause(); MobclickAgent.onPause(this); }
页面统计
只有Activity的应用:只需添加session统计的代码即可包含Activity、Fragment、View的应用
使用
onResume和
onPause方法统计时长, 这和基本统计中的情况一样(针对Activity)
public void onResume() { super.onResume(); MobclickAgent.onResume(this); //统计时长 } public void onPause() { super.onPause(); MobclickAgent.onPause(this); }
使用
onPageStart和
onPageEnd方法统计页面(针对页面,页面可能是
Activity也可能是
Fragment或
View)
public void onResume() { super.onResume(); MobclickAgent.onPageStart("MainScreen"); //统计页面 } public void onPause() { super.onPause(); MobclickAgent.onPageEnd("MainScreen"); }
行为的统计
计数事件,统计发生的次数MobclickAgent.onEvent(Context context, String eventId);
计算事件,统计数值型变量的值得分布,如事件持续时间、每次付款金额等,可以调用如下方法:
MobclickAgent.onEventValue(Context context, String id, Map<String,String> m, int du)
//示例:统计一次音乐播放,包括音乐类型,作者和播放时长,可以在音乐播放结束后这么调用: int duration = 12000; //开发者需要自己计算音乐播放时长 Map<String, String> map_value = new HashMap<String, String>(); map_value.put("type", "popular"); map_value.put("artist", "JJLin"); MobclickAgent.onEventValue(this, "music", map_value, duration);
在线参数
在线参数使您可以在网站上动态配置预设好的参数的参数值。例如: 动态修改应用的欢迎语,修改应用中开关选项的"on"或"off",以及类似游戏中虚拟物品的价格等。需要在程序的入口
Activity中添加
MobclickAgent.updateOnlineConfig( mContext ); String value = MobclickAgent.getConfigParams( mContext, "xxxx" );
错误统计
在try-catch捕获到异常后使用public static void reportError(Context context, String error) //或 public static void reportError(Context context, Throwable e)
二:自动更新
优点
快速集成,只需添加一行代码即可集成自动更新组件。开发者在需要发布新版本时,在后台上传最新的安装包、填写更新内容,旧版本的用户即可收到升级提示。//只需在需要的地方添加 UmengUpdateAgent.update(this);
流量优化与体验优化,开发者可以设置只在特定网络环境(如WiFi)下进行更新,优先使用本地已下载过的安装包,为用户节省宝贵流量。还能设置版本更新检测的时间间隔,防止频繁弹出更新提示。
按渠道更新,Android平台发布渠道众多,更新繁琐,友盟自动更新支持不同渠道更新不同升级包,有效提升运营效率。
增量更新,Android平台SDK在2.0版本后支持增量更新,默认下载增量包,节省时间和流量。
多样展现:开发者可以自定义各种UI样式。
原理
友盟自动更新服务首先将用户终端上的应用版本信息(version code)与友盟服务器上开发者上传的应用版本信息进行比较。如果服务器的应用版本更高,则会提示用户有新的应用版本(提示如下图所示,开发者可自定义界面)。用户选择更新之后,友盟自动更新则开始下载新版本应用,然后安装此应用。上传App
右上角选中应用
点击"组件"
点击右侧菜单“自动更新”
手动更新
UmengUpdateAgent.setUpdateAutoPopup(false); UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() { @Override public void onUpdateReturned(int updateStatus,UpdateResponse updateInfo) { switch (updateStatus) { case UpdateStatus.Yes: // has update UmengUpdateAgent.showUpdateDialog(mContext, updateInfo); break; case UpdateStatus.No: // has no update Toast.makeText(mContext, "没有更新", Toast.LENGTH_SHORT).show(); break; case UpdateStatus.NoneWifi: // none wifi Toast.makeText(mContext, "没有wifi连接, 只在wifi下更新", Toast.LENGTH_SHORT).show(); break; case UpdateStatus.Timeout: // time out Toast.makeText(mContext, "超时", Toast.LENGTH_SHORT).show(); break; } } }); UmengUpdateAgent.update(this);
自定义更新
修改自定义文件:umeng_update_dialog.xml三:用户反馈
使用默认的反馈功能//跳转到友盟默认的反馈页面 mFeedbackAgent.startFeedbackActivity(); //回复通知 mFeedbackAgent.sync();
自定义反馈:
自定义布局页面
设置用户信息
UserInfo info = agent.getUserInfo(); if (info == null) info = new UserInfo(); Map<String, String> contact = info.getContact(); if (contact == null) contact = new HashMap<String, String>(); String contact_info = contactInfoEdit.getEditableText() .toString(); contact.put(KEY_UMENG_CONTACT_INFO_PLAIN_TEXT, contact_info); contact.put("email", "*******"); //contact.put("qq", "*******"); //contact.put("phone", "*******"); //contact.put("plain", "*******"); info.setContact(contact); // optional, setting user gender information. info.setAgeGroup(1); info.setGender("male"); //info.setGender("female"); agent.setUserInfo(info); new Thread(new Runnable() { @Override public void run() { boolean result = fb.updateUserInfo(); } }).start();
相关文章推荐
- c++ 四大函数练习
- 日期 12 小时制 24 小时制
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
- 线程6:互斥量,解决线程冲突
- CodeForces 6C - Alice, Bob and Chocolate
- 分析运行结果,说明原理。(没有分析结果不得分) import java.util.ArrayList; class Data { int
- nginx 作为web服务器
- 项目功能
- 编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。
- 多台计算机之间利用ssh实现无密码登录
- C#中抽象类与接口的区别
- iOS中的通信模式解析
- powerdesigner显示注释
- 011折半插入排序
- 微信JSAPI支付(JAVA版)
- git图示所有分支的历史
- smarty基本语法之判断,循环语句
- iOS 自定义提示框
- js算法:分治法-棋盘覆盖
- 微信教程基础