新版友盟+360 加固打多渠道包

新版的友盟不需要再去配置多渠道了,文檔也更簡(jiǎn)單了.友盟文檔,對(duì)著文檔引入就可以了.大體步驟如下:

  • 1.在友盟新建應(yīng)用,獲取AppKey
    1. 集成 sdk,推薦自動(dòng)集成

maven依賴配置

在工程build.gradle配置腳本中buildscript和allprojects段中添加【友盟+】sdk 新maven倉(cāng)庫(kù)地址。如下圖。

代碼:

復(fù)制代碼到剪切板

  1. maven { url 'https://dl.bintray.com/umsdk/release' }
maven1
maven2

在工程App 對(duì)應(yīng)build.gradle配置腳本dependencies段中添加基礎(chǔ)組件庫(kù)和統(tǒng)計(jì)SDK庫(kù)依賴:

代碼:

復(fù)制代碼到剪切板

  1. compile 'com.umeng.umsdk:analytics:8.0.0'
  2. compile 'com.umeng.umsdk:common:2.0.0'
maven3

在Android Studio 3.1及以上版本開(kāi)發(fā)環(huán)境下,指定引用最新版本依賴寫(xiě)法”latest.integration”可能導(dǎo)致下載庫(kù)超時(shí),此時(shí)需要指定具體版本號(hào)。

    1. 集成配置,主要是一些權(quán)限和混淆
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
-keep class com.umeng.** {*;}
-keepclassmembers class * {
   public <init> (org.json.JSONObject);
}
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
    1. 選擇想要集成的功能, 可以自選,下面主要集成渠道和統(tǒng)計(jì)功能
  //加入渠道名稱,上傳給友盟,在 Application 里初始化
        UMConfigure.init(this, "友盟 AppKey",
            Utils.getUMChannelName(this), UMConfigure.DEVICE_TYPE_PHONE, "")
        UMConfigure.setLogEnabled(true)

獲取渠道的方法,和渠道有關(guān),方法如下:

  /**
     * 獲取渠道名
     *
     * @param ctx 此處習(xí)慣性的設(shè)置為activity,實(shí)際上context就可以
     * @return 如果沒(méi)有獲取成功,那么返回值為空
     */
    public static String getUMChannelName(Context ctx) {
        if (ctx == null) {
            return null;
        }
        String channelName = null;
        try {
            PackageManager packageManager = ctx.getPackageManager();
            if (packageManager != null) {
                //注意此處為ApplicationInfo 而不是 ActivityInfo,因?yàn)橛衙嗽O(shè)置的meta-data是在application標(biāo)簽中,而不是某activity標(biāo)簽中,所以用ApplicationInfo
                ApplicationInfo applicationInfo = packageManager.getApplicationInfo(ctx.getPackageName(), PackageManager.GET_META_DATA);
                if (applicationInfo != null) {
                    if (applicationInfo.metaData != null) {
                        channelName = applicationInfo.metaData.getString("UMENG_CHANNEL");
                    }
                }
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return channelName;
    }
  • 5.在App中每個(gè)Activity的onResume方法中調(diào)用 MobclickAgent.onResume(context),onPause方法中調(diào)用 MobclickAgent.onPause(context)。
@Override
public void onResume() {
    super.onResume();
    MobclickAgent.onResume(this);
}
@Override
public void onPause() {
    super.onPause();
    MobclickAgent.onPause(this);
}
注意:

確保在所有的Activity中都調(diào)用 MobclickAgent.onResume和onPause方法(如果是在AUTO頁(yè)面采集模式下,則需要注意,所有Activity中都不能調(diào)用MobclickAgent.onResume和onPause方法,詳見(jiàn)后續(xù)頁(yè)面采集章節(jié)),這兩個(gè)調(diào)用不會(huì)阻塞應(yīng)用程序的主線程,也不會(huì)影響應(yīng)用程序的性能。

注意:如果您的Activity之間有繼承或者控制關(guān)系,請(qǐng)不要同時(shí)在父和子Activity中重復(fù)添加nPause和nResume方法,否則會(huì)造成重復(fù)統(tǒng)計(jì),導(dǎo)致啟動(dòng)次數(shù)異常增高。(例如:使用TabHost、TabActivity、ActivityGroup時(shí))。

當(dāng)應(yīng)用在后臺(tái)運(yùn)行超過(guò)30秒(默認(rèn))再回到前臺(tái),將被認(rèn)為是兩次獨(dú)立的Session(啟動(dòng)),例如:用戶回到home,或進(jìn)入其他程序,經(jīng)過(guò)一段時(shí)間后再返回之前的應(yīng)用。即被認(rèn)為是兩個(gè)獨(dú)立的Session。
  • 6.加固
    配置簽名
    image.png

    配置多渠道,需要哪些配置哪些,統(tǒng)計(jì)平臺(tái)這里選擇友盟,渠道編號(hào)自定義
    image.png

    在設(shè)置中設(shè)置好輸入路徑,在應(yīng)用加固中上傳文件,就可以完成加固,最終會(huì)得到一個(gè)沒(méi)有渠道的包和其他渠道的包.所有的包都需要重新簽名才可以安裝.在工具包中簽名 APK,就完成了打多渠道包和加固,可以一次選擇一個(gè)或者多個(gè) apk 文件簽名。渠道打包這一項(xiàng),設(shè)置好多渠道,可以直接選擇渠道打包,打出來(lái)的所有包再簽名一次就可以了。
    image.png

    最好對(duì)著友盟文檔來(lái)配置,這樣不容易出錯(cuò).
    demo
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容