Android Studio 集成

注意:


1.Testin SDK支持Android2.2以上系统,安装前先下载SDK
2.游戏unity插件和cocos引擎暂时不支持摇一摇功能


一.安装SDK

解压SDK,并将 SDK 工程导入 Eclipse,点击 File,选择 New,选择 Import Module


选 SDK 的文件夹,点击 Next、Finish


右击当前工程,选择 Open Module Settings


选择 Dependencies,点击 “+”,选择 Module dependency


选择要嵌入的 SDK,点击 OK


确认 SDK 已经添加进来,点击 OK




1.2 配置Mainifest

在Manifest中添加以下权限:

INTERNET:允许应用使用网络上报数据

ACCESS_NETWORK_STATE:允许获取网络状态

ACCESS_WIFI_STATE:获取网卡信息

READ_PHONE_STATE:读取设备ID作为设备标识

READ_LOGS:获取系统日志

GET_TASKS:获取任务堆栈

<?xml version="1.0" encoding="utf-8"?>
 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="3" android:versionName="1.0" package="com.testin.demo">  
  <uses-permission android:name="android.permission.INTERNET"/>  
  <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.READ_LOGS"/>  
  <uses-permission android:name="android.permission.GET_TASKS"/>  
  <application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".DemoApp"> 
    <activity android:label="@string/app_name" android:name=".MainActivity"> 
      <intent-filter> 
        <action android:name="android.intent.action.MAIN"/>  
        <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
    </activity>  
    <!-- 设置AppKey -->  
    <meta-data android:name="TESTIN_APPKEY" android:value="Your_AppKey"/>  
    <!-- 设置渠道信息 -->  
    <meta-data android:name="TESTIN_CHANNEL" android:value="Channel_ID"/> 
  </application> 
</manifest>

如果想获得更丰富的位置相关服务,请在manifest文件中添加权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

如您想了解更多关于权限信息,请查看官方文档Android Manifest documentation


二.初始化SDK


在你的 Activity 基类(或所有的 Activity)中,添加


Import com.testin.agent.TestinAgent;


在Activity的onCreate()方法中,添加


TestinAgent.init(this,"279c8c7a996a03f452e6804a1f23a5e5","your channel ID");


chanel id:应用所发布的渠道名称,自定义字符串,如应用宝可以写yingyongbao, 也可以为空


初始化方法默认不开启摇一摇功能,需要通过以下方式配置:

@Override protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
TestinAgentConfig config = new TestinAgentConfig.Builder(context) 
                          .withAppKey(app_key)     // 您的应用的 AppKey,如果已经在 Manifest 中配置则此处可略 
                          .withAppChannel(cnl)     // 发布应用的渠道,如果已经在 Manifest 中配置则此处可略 
                          .withUserInfo(userinfo)    // 用户信息-崩溃分析根据用户记录崩溃信息
                          .withDebugModel(true)    // 输出更多SDK的debug信息
                          .withErrorActivity(true)    // 发生崩溃时采集Activity信息
                          .withCollectNDKCrash(true) //  收集NDK崩溃信息
                          .withOpenCrash(true)    // 收集崩溃信息开关
                          .withOpenEx(true)     // 是否收集异常信息
                          .withReportOnlyWifi(true)    // 仅在 WiFi 下上报崩溃信息 
                          .withReportOnBack(true)    // 当APP在后台运行时,是否采集信息
                          .withQAMaster(true)    // 是否收集摇一摇反馈 
                          .withCloseOption(false)   // 是否在摇一摇菜单展示‘关闭摇一摇选项’
                          .withLogcat(true)  // 是否系统操作信息
                          .build(); 
              TestinAgent.init(config); 
}


三.摇一摇

3.1 如何使用摇一摇

3.2 打开/关闭摇一摇

1.查询摇一摇开启状态:getShakeStatus(),调用返回摇一摇开启状态,false=关闭,true=开启

/* 	 
** Get shake status if open qamaster function
** @param ctx 
*/ 	
public static boolean getShakeStatus(Context ctx)


2.设置摇一摇开启状态:setShakeStatus(),此接口实现应与应用本身**功能联动,例如,在app的应用设置中增加“开启/关闭摇一摇反馈”,关闭时setShakeStatus(ctx,false),开启时setShakeStatus(ctx,true)

/*
* * Set shake status if open qamaster function 
* * @param ctx 	 
* @param enable 	 
*/ 	
public static void setShakeStatus(Context ctx, boolean enable)


注意:在集成SDK时,默认的初始化语句TestinAgent.init(this,"279c8c7a996a03f452e6804a1f23a5e5","your channel ID")不会开启摇一摇功能,需要按照上述方式设置QAMaster=true,才可打开摇一摇功能


四.用户操作步骤


在你的 Activity 基类(或所有的 Activity)中添加3个回调:

package your.package.name;   
 
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
Import com.testin.agent.TestinAgent;
 
public class BaseActivity extends Activity{
    @Override
    protected void onResume() {
        super.onResume();
        //注:回调 1
        TestinAgent.onResume(this);
    }
  @Override
    protected void onPause() {
        super.onPause();
        //注:回调 2
        TestinAgent.onPause(this);
    } 
    @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        //注:回调 3
        TestinAgent.onDispatchTouchEvent(this, event);
        return super.dispatchTouchEvent(event);
    }
}


五.用户数据


可设置一些用于调试的 key value 数据,随着问题一起上报到 Testin 缺陷管理

TestinAgent.addExtraInfo("key", "value");



六.Android符号化配置

SDK

符号化是通过映射符号翻译堆栈信息,方便开发者理解错误堆栈。开发者提供您的应用程序的符号文件,Testin的服务器可以自动进行符号化。有关介绍,请参见 符号化 

设置混淆

1、对于Android应用程序,开发人员必须使用混淆的ProGuard的工具,它们的功能名称,以减少应用程序的大小,并防止他人逆向工程的应用程序源的选项。为了与人类可读的名称替换混淆的名称,开发者使用Proguard的映射文件。

2、在混淆打包时,请在混淆文件proguard.cfg或proguard-project.txt中添加:

-libraryjars /libs/tncrash.jar
-dontwarn com.testin.agent.**
-keep  class  com.testin.agent.** {*;}

3、为了得到行号信息,请确保您保留的文件名和行号在您的ProGuard.CFG设置文件。


-keepattributes SourceFile, LineNumberTable

(如果使用Android Studio,请在在gradle配置文件中proguardFiles getDefaultProguardFile这一项指明的所有文件中添加以上两项)

上传mapping.txt文件

1、编译成功后,找到项目中proguard目录下的mapping.txt文件(Android Studio下目录为\app\build\outputs\mapping\release);

2、在网站的应用设置页面的符号化文件上传页,选择对于的版本上传文件。


NDK

如果您的应用包含Native代码,通常编译后会生成.so文件。对于上报的NDK错误,通常是一些地址码。开发者需要上传包含debug信息的.so文件到网站,从而把堆栈信息转化为可读的信息。有关介绍,请参见Andriod SDK及NDK使用指南

上传.so符号化文件

1、编译成功后,找到项目中obj目录,并将so文件压缩成zip格式;

2、在网站的应用设置页面的符号化文件上传页,上传zip文件。