如何使内测应用集成蒲公英 Android SDK,实现自定义反馈信息功能

2016-08-01 16:09:21 +08:00
 ZCPgyer

SDK 的集成,主要可以带来以下便捷。「摇一摇」反馈,轻松截图,涂鸦,语音信息反馈,一目了然。 Crash 报告,全程追踪 Crash ,对 Crash 详细信息准确抓取,不让任何一个错误横行。版本管理,每一次应用的版本更新都会提示自动下载,同时表格化的展示版本更新详细信息。数据统计分析,全面的数据统计,详细的趋势分析,轻松明了展现内测过程的每一个细节。同时还可以自己设置个性化的 SDK ,更方便与应用内测。

此次,蒲公英 Android SDK 更新到了 2.4.0 ,新增加 feedback 自定义信息的功能。一起来看下吧。


注册应用获取 App ID

App ID :唯一标识一个应用的 ID ,在蒲公英上的每一个 App 都有一个唯一的 App ID ,开发者可以在应用管理页面首页查看。

导入 SDK

Eclipse 用户

下载蒲公英 Android SDK(包含异常上报,在线更新,摇一摇反馈等功能)。 将 jar 包复制到工程的 libs 目录下面。

Android Studio 用户

添加代码到 project 下的 build.gradle 文件中:

allprojects {

repositories {
    jcenter()
    maven { url "https://raw.githubusercontent.com/Pgyer/mvn_repo_pgyer/master" }
	}
}

然后在 module 下的 build.gradle 文件中添加依赖即可:

dependencies {
	compile 'com.pgyersdk:sdk:2.4.0'
}

Android Studio 工程示例代码

Android Studio 用户除了可以使用以上方法集成 SDK 外,也可以使用和 Eclipse 用户相同的方法来集成 SDK 。

配置 AndroidManifest

<!-- 必选-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 获取网络状态 -->
<uses-permission android:name="android.permission.INTERNET" /> <!-- 网络通信-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />  <!-- 获取设备信息 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取 MAC 地址-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 读写 sdcard , storage 等等 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 允许程序录制音频 -->

<!-- 可选-->
<uses-permission android:name="android.permission.READ_LOGS" /> <!-- 获取 logcat 日志 -->

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- 可选-->
<activity android:name="com.pgyersdk.activity.FeedbackActivity"/>

<!-- 必选-->
<meta-data
    android:name="PGYER_APPID"
    android:value="4b6e8877dfcc2462bedb37dcf66b6d87" >
</meta-data>
</application>

上报 Crash 异常

一、注册 Crash 接口(必选)

1.在 application 中集成,可以有机会捕捉更多的异常(推荐)

import com.pgyersdk.crash.PgyCrashManager;
import android.app.Application;

public class PgyApplication extends Application {

@Override
public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();

    PgyCrashManager.register(this);
	}
}

在 AndroidManifest.xml 注意修改 android:name=".PgyApplication"此处的名字对应上面继承 Application 的类名。

<application
	android:name=".PgyApplication"
	android:icon="@drawable/ic_launcher"
	android:label="@string/app_name"
	android:theme="@style/AppTheme" >
</application>

2.在 activity 中集成

import com.pgyersdk.crash.PgyCrashManager;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
    	setContentView(R.layout.activity_main);

    	PgyCrashManager.register(this);
	}
}

3.解除注册可以调用以下方法:

PgyCrashManager.unregister();

二、符号表配置(可选)

通过 progurad 工具混淆时,工程目录下会自动生成符号表文件 mapping.txt

在后台配置符号表文件。

上报 catch 异常

try 
{
} 
catch (Exception e) 
{	
	PgyCrashManager.reportCaughtException(MainActivity.this, e);            
}

摇一摇用户反馈

1.普通的应用在 Activity 中添加如下代码即可

import com.pgyersdk.feedback.PgyFeedbackShakeManager;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
    	setContentView(R.layout.activity_main);
	}

	@Override
	protected void onResume() {
    	// TODO Auto-generated method stub
    	super.onResume();

    	// 自定义摇一摇的灵敏度,默认为 950 ,数值越小灵敏度越高。
    	PgyFeedbackShakeManager.setShakingThreshold(1000);

    	// 以对话框的形式弹出
    	PgyFeedbackShakeManager.register(MainActivity.this);

    	// 以 Activity 的形式打开,这种情况下必须在 AndroidManifest.xml 配置 FeedbackActivity
    	// 打开沉浸式,默认为 false
    	// FeedbackActivity.setBarImmersive(true);
    	PgyFeedbackShakeManager.register(MainActivity.this, false);

	}

	@Override
	protected void onPause() {
    	// TODO Auto-generated method stub
    	super.onPause();
    	PgyFeedbackShakeManager.unregister();
	}
}

2.游戏还需要在 GLSurfaceView.Renderer 这个类的 public void onDrawFrame(final GL10 gl) 的方法中添加以下代码

public void onDrawFrame(GL10 gl) {
	PgyFeedbackShakeManager.setGLSurface(true);
	GLSurfaceUtils.getInstance().takeScreenShot(gl);
}

3.通过点击按钮的方式弹出反馈界面:

// 以对话框的形式弹出
PgyFeedback.getInstance().show(MainActivity.this);

// 以 Activity 的形式打开,这种情况下必须在 AndroidManifest.xml 配置 FeedbackActivity
// 打开沉浸式,默认为 false
// FeedbackActivity.setBarImmersive(true);
PgyFeedback.getInstance().showActiivty(MainActivity.this);

4.自定义反馈界面对话框 title

PgyerDialog.setDialogTitleBackgroundColor("#ff0000");
PgyerDialog.setDialogTitleTextColor("#ffffff");

5.自定义反馈界面 Activity

// 设置顶部导航栏和底部 bar 的颜色
FeedbackActivity.setBarBackgroundColor("#ff0000");

// 设置顶部按钮和底部按钮按下时的反馈色
FeedbackActivity.setBarButtonPressedColor("#ff0000");

// 设置颜色选择器的背景色
FeedbackActivity.setColorPickerBackgroundColor("#ff0000");

6.自定义反馈信息(不限制增加的数量)

PgyFeedback.getInstance().setMoreParam("tao","value");

将在用户反馈的详情界面看到自定义的数据,如下图:

检查更新

1.默认对话框的版本更新检查

PgyUpdateManager.register(this);

2.带回调的版本更新检查

PgyUpdateManager.register(MainActivity.this,
new UpdateManagerListener() {

  @Override
  public void onUpdateAvailable(final String result) {

    // 将新版本信息封装到 AppBean 中
    final AppBean appBean = getAppBeanFromString(result);
    new AlertDialog.Builder(MainActivity.this)
        .setTitle("更新")
        .setMessage("")
        .setNegativeButton(
                "确定",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(
                            DialogInterface dialog,
                            int which) {
                        startDownloadTask(
                                MainActivity.this,
                                appBean.getDownloadURL());
                    }
                }).show();
  }

  @Override
  public void onNoUpdateAvailable() {
  }
});

3.解除注册可以调用以下方法:

PgyUpdateManager.unregister();

result 的格式为:

混淆

-libraryjars libs/pgyer_sdk_x.x.jar
-dontwarn com.pgyersdk.**
-keep class com.pgyersdk.** { *; }

欢迎大家在内测自己应用的时候使用蒲公英 SDK 哦~

如果有什么问题或者不方便的地方欢迎大家在下面留言反馈~ε٩(๑> ₃ <)۶з

2980 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/296375

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX