蒲公英致力于将内测分发做到极致。高效、简洁是平台一贯持有的产品风格,特有的 SDK 功能,仅需一行代码,就能够方便的管理应用内测过程。
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
上报 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 的类名。
-
在 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); }
}
-
解除注册可以调用以下方法:
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.** { *; }