美文网首页
Android-友盟-多渠道打包-移动统计

Android-友盟-多渠道打包-移动统计

作者: nansir | 来源:发表于2018-07-18 16:16 被阅读0次

    前言

    工作随笔,方便记起

    1.集成友盟移动统计SDK

    友盟SDK下载

    2.AndroidManifest文件中引入友盟的APPKEY(记得添加相应权限)
    <!-- 友盟APPKEY -->
      <meta-data
            android:name="UMENG_APPKEY"
            android:value="00000000000000000000000" />
    
    3.AndroidManifest文件中设置渠道号
      <!-- 渠道号 -->
      <meta-data
              android:name="UMENG_CHANNEL"
              android:value="${UMENG_CHANNEL_VALUE}" />
    
    4.在工程Module的build.gradle文件中
    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion COMPILE_SDK_VERSION
        buildToolsVersion BUILD_TOOLS_VERSION
    
        defaultConfig {
            applicationId "com.sir.app.test"
            minSdkVersion MIN_SDK_VERSION
            targetSdkVersion TARGET_SDK_VERSION
            versionCode 0
            versionName "1.0.0"
    }
    
    //添加签名文件配置(将signingConfigs{}放到了buildType{}的后面,导致编译的时候无法找到)
    signingConfigs {
        debug {
            try {
                storeFile file("D:\\test.jks")
                storePassword STORE_PASSWORD
                keyAlias KEY_ALIAS
                keyPassword KEY_PASSWORD
            } catch (ex) {
                throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")
            }
        }
        release {
            try {
                v2SigningEnabled false
                storeFile file("D:\\test.jks")
                storePassword STORE_PASSWORD
                keyAlias KEY_ALIAS
                keyPassword KEY_PASSWORD
            } catch (ex) {
                throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")
            }
        }
    }
    
    buildTypes {
        release {
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    
            //指定release APK名称
            applicationVariants.all { variant ->
                variant.outputs.all {
                        // 输出apk名称为 test_1.0_vivo.apk
                        def fileName = "test_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"
                        outputFileName = fileName
                    }
                }
            }
            debug {
                minifyEnabled false
                signingConfig signingConfigs.debug
            }
        }
        //指定渠道
        productFlavors {
            vivo {}
            oppo {}
            huawei {}
            xiaomi {}
            chuizi {}
            wandoujia {}
            yingyongbao {}
        }
        //通过脚本获取所有渠道
        //在Terminal控制台输入gradlew assembleRelease开始打包
        //包生成在build-->outputs-->apk文件夹
        productFlavors.all {
            //遍历替换所有渠道
            flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }
    
        //Terminal窗口输入
        //打包wandoujia渠道的release版本,执行如下命令
        //    gradlew assembleWandoujiaRelease
        //打包wandoujia渠道的debug版本,执行如下命令
        //    gradlew assembleWandoujiaDebug
        // 只打wandoujia渠道版会生成wandoujia渠道的Release和Debug版本
        //    gradlew assembleWandoujia
        //打全部Release版本
        //    gradlew assembleRelease
    }
    
    5.执行打包相关命令
    2.jpg
    6.APK生成位置
    1.jpg
    7.初始化友盟SDK
    public class MyApplication extends Application {
    
        @Override
        public void onCreate() {
            super.onCreate();
            //获取渠道号
            String channelName = AnalyticsConfig.getChannel(this);
     
          /**
           * 初始化common库
           * 参数1:上下文,必须的参数,不能为空
           * 参数2:友盟 app key
           * 参数3:友盟 channel 渠道号
           * 参数4:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;
           * 传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机
           * 参数5:Push推送业务的secret,需要集成Push功能时必须传入Push的secret,否则传空
           */
            UMConfigure.init(this,"000000000000000",channelName,UMConfigure.DEVICE_TYPE_PHONE,"");
        }
    }
    
    8.使用友盟移动统计

    即启动数据的统计(包括新增用户、活跃用户、启动次数、使用时长等基本数据)

    需要在BaseActivity的onResume方法中调用 MobclickAgent.onResume(Context),
    onPause方法中调用 MobclickAgent.onPause(Context),如下:

    @Override
    protected void onResume() {
        super.onResume();
        //Session启动、App使用时长等基础数据统计
        MobclickAgent.onResume(this);
    }
    
    @Override
    protected void onPause() {
        super.onPause();
        MobclickAgent.onPause(this);
    }
    

    相关文章

      网友评论

          本文标题:Android-友盟-多渠道打包-移动统计

          本文链接:https://www.haomeiwen.com/subject/lddopftx.html