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. 使用统计功能添加如下信息:
2 | < meta-data android:value = "MyAppKey" android:name = "UMENG_APPKEY" /> |
3 | < meta-data android:value = "eoeAndroid" android:name = "UMENG_CHANNEL" /> |
提示:
UMENG_APPKEY
的值可在友盟添加App获取;
UMENG_CHANNEL
是市场的渠道号,用于统计用户通过哪个市场下载应用,可通过友盟提供的渠道号填写。
第三步:开始使用统计功能
1. 鉴于程序内可能有多个Activity,在此建议新建一个
基类
,让所有Activity继承这个类,增加代码的可重用性:
01 | public class BaseActivity extends Activity { |
04 | protected void onCreate(Bundle savedInstanceState) { |
05 | super .onCreate(savedInstanceState); |
06 | MobclickAgent.onError( this ); |
10 | protected void onPause() { |
12 | MobclickAgent.onPause( this ); |
16 | protected void onResume() { |
18 | MobclickAgent.onResume( this ); |
2. 定义好基类后,在以后生成新 Activity 过程中,可直接
继承
基类:
1 | public class MyActivity extends BaseActivity { |
4 | protected void onCreate(Bundle savedInstanceState) { |
5 | super .onCreate(savedInstanceState); |
6 | setContentView(R.layout.activity_splash); |
第四步:使用自动更新功能
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. 开始调用更新函数,详细信息可见注释:
01 | public class UpdateActivity extends BaseActivity { |
03 | private Button btnChecknew; |
05 | private Context mContext = this ; |
08 | protected void onCreate(Bundle savedInstanceState) { |
09 | super .onCreate(savedInstanceState); |
10 | setContentView(R.layout.activity_update); |
13 | UmengUpdateAgent.update( this ); |
14 | UmengUpdateAgent.setUpdateOnlyWifi( false ); |
15 | UmengUpdateAgent.setUpdateAutoPopup( true ); |
16 | UmengUpdateAgent.setDownloadListener( null ); |
17 | UmengUpdateAgent.setDialogListener( null ); |
19 | UmengUpdateAgent.setUpdateListener( new UmengUpdateListener() { |
21 | public void onUpdateReturned( int updateStatus,UpdateResponse updateInfo) { |
22 | switch (updateStatus) { |
24 | UmengUpdateAgent.showUpdateDialog(mContext, updateInfo); |
32 | OnNotice( "连接超时,请稍候重试" ); |
38 | private void initview() { |
39 | btnChecknew = (Button) findViewById(R.id.wgupdate_btn_check_new); |
40 | btnChecknew.setOnClickListener( new View.OnClickListener() { |
43 | public void onClick(View arg0) { |
45 | UmengUpdateAgent.forceUpdate(mContext); |