日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Android SDK接入(Maven集成)

更新時(shí)間:

本文介紹如何通過(guò)Maven集成方式添加依賴接入性能分析服務(wù)的Android SDK。

說(shuō)明
  • 性能分析服務(wù)的Android SDK接入可采用Maven集成和本地集成兩種方式添加依賴。推薦使用Maven集成方式添加依賴,可大幅簡(jiǎn)化接入操作。

  • 如需使用本地集成方式添加依賴,操作方法請(qǐng)參見Android SDK接入(本地集成)

前提條件

使用限制

  • 僅支持Android 4.2及以上版本。

  • 僅支持arm64-v8a/armeabi-v7a/x86/x86_64架構(gòu)。

  • 僅支持gradle 3.0.0及以上版本。

  • 僅支持以下網(wǎng)絡(luò)庫(kù)版本:

    • okhttp2:2.0.0-2.7.5

    • okhttp3: 3.0.0-3.14.7

    • okhttp4: 4.0.0-4.8.1

接入概述

  1. 準(zhǔn)備:獲取應(yīng)用信息AppKey/AppSecret/PackageName;獲取公鑰。

  2. 應(yīng)用插件:添加插件依賴;應(yīng)用插件。

  3. 添加依賴:采用Maven方式集成SDK。SDK功能變更歷史參見:Android SDK發(fā)布說(shuō)明

  4. 接入服務(wù):添加自定義Application,以及SDK初始化代碼。

  5. 混淆配置:如App對(duì)代碼進(jìn)行亂序混淆,則修改混淆配置文件。

  6. 編譯:常見編譯問(wèn)題排查。

準(zhǔn)備

獲取應(yīng)用信息AppKey/AppSecret/PackageName

1:登錄移動(dòng)研發(fā)平臺(tái) EMAS控制臺(tái),打開工作空間概覽頁(yè)面。

2:在我的應(yīng)用區(qū)域,單擊Android應(yīng)用圖標(biāo),打開指定Android應(yīng)用的編輯配置頁(yè)面。

3:在編輯配置頁(yè)面,查詢指定應(yīng)用的AppKey/AppSecret/PackageName

各參數(shù)說(shuō)明如下:

參數(shù)

說(shuō)明

AppKey

用于唯一標(biāo)識(shí)App。由系統(tǒng)生成,8位數(shù)字。

AppSecret

用于認(rèn)證App。由系統(tǒng)生成,32位字符串。

PackageName

用于標(biāo)識(shí)App的名稱。由用戶自定義。

截屏2021-02-08 下午3

獲取公鑰

4:在編輯配置頁(yè)面,單擊下載Android配置按鈕,下載指定應(yīng)用的配置文件:aliyun-emas-services.json

5:打開Android配置文件,查詢appmonitor.rsaSecret字段內(nèi)容,即為性能分析公鑰。

1605495739150-3cef02d5-dc19-466d-b89b-3c7bd4ed865f

重要

  • 為避免在日志中泄漏參數(shù)appkey/appsecret/rsaSecret或App運(yùn)行過(guò)程中產(chǎn)生的數(shù)據(jù),建議線上版本關(guān)閉SDK調(diào)試日志。

  • 由于所有用戶使用統(tǒng)一的SDK接入,在接入過(guò)程中需要在代碼中設(shè)置appkey/appsecret/rsaSecret參數(shù),而此類參數(shù)與計(jì)量計(jì)費(fèi)密切相關(guān),為防止惡意反編譯獲取參數(shù)造成信息泄漏,建議您開啟混淆,并進(jìn)行App加固后再發(fā)布上線。

應(yīng)用插件

1:在build.gradle項(xiàng)目文件的buildscript{}代碼段添加插件依賴。

重要

此處僅添加插件依賴,應(yīng)用依賴須添加至build.gradle項(xiàng)目文件的dependencies{}代碼段。具體說(shuō)明請(qǐng)參見添加依賴

buildscript {
    repositories {
        google()
        jcenter()
    }
dependencies {
    classpath 'com.android.tools.build:gradle:${gradle-version}'//配置項(xiàng)
    classpath 'com.aliyun.ams:alicloud-android-networkmonitor-plugin:1.3.0-open'
}

配置說(shuō)明如下:

配置項(xiàng)

說(shuō)明

gradle-version

用于指定實(shí)際開發(fā)環(huán)境的gradle版本。

【示例】classpath 'com.android.tools.build:gradle:4.8.1'

2:在build.gradle項(xiàng)目文件中添加代碼段應(yīng)用插件。

apply plugin: 'com.aliyun.emas.networkmonitor'

添加依賴

build.gradle項(xiàng)目文件中:

1:在repositories{}代碼段添加阿里云Maven倉(cāng)庫(kù)地址。

repositories {
    maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }
}

2:在android{}代碼段設(shè)置應(yīng)用包名和.so庫(kù)。

android {
    ......
    defaultConfig {
        applicationId "com.xxx.xxx" //配置項(xiàng)
        ......
        ndk {
            //選擇要添加的對(duì)應(yīng)cpu類型的.so庫(kù),當(dāng)前支持四種
            abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64' //配置項(xiàng)
        }
        ......
    }
    ......
}

配置說(shuō)明如下:

參數(shù)

說(shuō)明

applicationId

用于指定App的PackageName。

【數(shù)據(jù)類型】字符串

【是否必選】是

【是否可為空】否

【默認(rèn)值】無(wú)

ndk

用于指定App的架構(gòu),添加對(duì)應(yīng)CPU類型的.so庫(kù)。

【數(shù)據(jù)類型】枚舉型

【取值范圍】

  • arm64-v8a

  • armeabi-v7a

  • x86

  • x86_64

【是否必選】是

【是否可為空】否

【默認(rèn)值】無(wú)

【大小寫敏感】否

3:在dependencies{}代碼段添加SDK依賴。

dependencies {
    ......
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "com.squareup.okhttp3:okhttp:${okhttp3version}"http://配置項(xiàng)

    //線上測(cè)試
    implementation 'com.aliyun.ams:alicloud-android-ha-adapter:1.2.3.0-open'
    implementation 'com.aliyun.ams:alicloud-android-apm:1.1.3.0-open'
    ......
}

配置說(shuō)明如下:

參數(shù)

說(shuō)明

okhttp3version

用于設(shè)置本地開發(fā)環(huán)境可支持的網(wǎng)絡(luò)庫(kù)版本。

【示例】implementation "com.squareup.okhttp3:okhttp:4.8.1"

接入服務(wù)

1、預(yù)初始化SDK

預(yù)初始化SDK可以在Appcalition.onCreate函數(shù)中完成。

public class MyApplication extends Application {
   @Override
   public void onCreate() {
     super.onCreate();  
     AliHaAdapter.getInstance().preStart(this);
   }
}

2、開啟性能分析

在同意隱私協(xié)議之后,可以開啟崩潰分析。

private void startHa() {
  AliHaConfig config = new AliHaConfig();
  config.appKey = "xxxxxxxx"; //配置項(xiàng)
  config.appVersion = "x.xx"; //配置項(xiàng)
  config.appSecret = "xxxxxxxxxxxx"; //配置項(xiàng)
  config.channel = "mqc_test"; //配置項(xiàng)
  config.userNick = null; //配置項(xiàng)
  config.application = this; //配置項(xiàng)
  config.context = getApplicationContext(); //配置項(xiàng)
  config.isAliyunos = false; //配置項(xiàng)
  config.rsaPublicKey = "xxxxxxx"; //配置項(xiàng)
  AliHaAdapter.getInstance().addPlugin(Plugin.apm);
  AliHaAdapter.getInstance().start(config);
}

配置說(shuō)明如下:

參數(shù)

說(shuō)明

appKey

用于指定App的AppKey。

【數(shù)據(jù)類型】字符串

【是否必選】是

【是否可為空】否

【默認(rèn)值】無(wú)

appVersion

用于設(shè)置App的版本號(hào)。

【數(shù)據(jù)類型】字符串

【格式要求】自定義

【取值范圍】任意長(zhǎng)度

說(shuō)明

該參數(shù)值將在控制臺(tái)顯示為下拉列表選項(xiàng),建議短小凝練。

【是否必選】是

【是否可為空】否

【默認(rèn)值】無(wú)

【大小寫敏感】是。例如,vx.x和Vx.x不是一個(gè)版本。

【字符類型】英文大小寫、數(shù)字

說(shuō)明

該參數(shù)不支持中文字符、特殊字符。

appSecret

用于指定App的AppSecret。

【數(shù)據(jù)類型】字符串

【是否必選】是

【是否可為空】否

【默認(rèn)值】無(wú)

channel

用于設(shè)置渠道標(biāo)識(shí),上報(bào)至服務(wù)端,進(jìn)行渠道區(qū)分。

【數(shù)據(jù)類型】字符串

【取值范圍】任意長(zhǎng)度

【是否必選】否

【是否可為空】是

【默認(rèn)值】無(wú)

【字符類型】英文大小寫、數(shù)字

說(shuō)明

該參數(shù)不支持中文字符、特殊字符。

userNick

用于設(shè)置用戶昵稱,上報(bào)至服務(wù)端,進(jìn)行用戶區(qū)分。后續(xù)可能依據(jù)該參數(shù),進(jìn)行數(shù)據(jù)檢索。

【數(shù)據(jù)類型】字符串

【取值范圍】任意長(zhǎng)度

【是否必選】否

【是否可為空】是

【默認(rèn)值】無(wú)

【字符類型】英文大小寫、數(shù)字。

說(shuō)明

該參數(shù)不支持中文字符、特殊字符。

【命名規(guī)范】自定義

application

用于指定本應(yīng)用。

重要

該參數(shù)不能指向其他應(yīng)用。

【數(shù)據(jù)類型】對(duì)象

【是否必選】是

【是否可為空】否

【默認(rèn)值】無(wú)

context

用于指定App的上下文對(duì)象,設(shè)置getApplicationContext();即可。

【數(shù)據(jù)類型】對(duì)象

【是否必選】是

【是否可為空】否

【默認(rèn)值】無(wú)

isAliyunos

用于判斷App所在平臺(tái)是否為YunOS。

【數(shù)據(jù)類型】布爾型

【取值范圍】false/true

【是否必選】否

【是否可為空】是

【默認(rèn)值】false

rsaPublicKey

用于指定性能分析公鑰。

【數(shù)據(jù)類型】字符串

【是否必選】是

【是否可為空】否

【默認(rèn)值】無(wú)

3、在AndroidManifest.xml中添加代碼段注冊(cè)Application。

<application
        android:name=".MyApplication"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
</application>

混淆配置

如App對(duì)代碼進(jìn)行亂序混淆,則在混淆配置文件中添加代碼段:

-keep class com.taobao.monitor.impl.**{*;}
-keep class com.taobao.monitor.adapter.**{*;}
-keep class com.taobao.application.common.**{*;}
-keep class com.facebook.drawee.generic.RootDrawable{*;}
-keep class com.facebook.drawee.drawable.FadeDrawable{*;}
-keep class androidx.fragment.app.Fragment{*;}
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

編譯

如同時(shí)使用其他阿里云產(chǎn)品,可能會(huì)因?yàn)橐蕾囍写嬖赨TDID沖突,造成編譯失敗。解決辦法參見:SDK UTDID沖突解決方案

樣例代碼

性能分析服務(wù)Android SDK接入工程樣例請(qǐng)參見Demo工程

功能驗(yàn)證

Android SDK接入操作完成后,可操作App,查看性能分析服務(wù)控制臺(tái)顯示數(shù)據(jù),進(jìn)行功能驗(yàn)證。

1:手機(jī)端:?jiǎn)?dòng)App。(2分鐘后)控制臺(tái):查看概覽頁(yè)簽的啟動(dòng)速度是否顯示數(shù)據(jù)。

2:手機(jī)端:在App中跳轉(zhuǎn)幾個(gè)頁(yè)面。(2分鐘后)控制臺(tái):查看概覽頁(yè)簽的加載時(shí)間是否顯示數(shù)據(jù)。

說(shuō)明

數(shù)據(jù)從App采集到控制臺(tái)顯示,存在大約2分鐘延遲。

如數(shù)據(jù)顯示正常,則Android SDK接入成功;否則,可能的原因是:SDK接入失敗、SDK未獲取數(shù)據(jù)、數(shù)據(jù)發(fā)送失敗、后端問(wèn)題,請(qǐng)聯(lián)系我們解決。