Eclipse 集成

注意:


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



一.安装SDK


1.1 导入SDK

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


选择导入已存在的 Android 工程,点击 Next


选择刚才解压缩后的工程目录,点击 Finish


在APP工程目录点击右键,选择 Properties


在属性窗口中,右侧选择 Android,然后点击 Add 添加 Library 引用


选择前面导入的 SDK 工程,作为 APP 工程的 library,然后点击确定


点击 OK,完成APP工程对SDK工程的引用


修改APP工程的 project.properties 文件,添加 manifestmerger.enabled=true




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文件。