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 用户除了可以使用以上方法集成 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 哦~
如果有什么问题或者不方便的地方欢迎大家在下面留言反馈~ε٩(๑> ₃ <)۶з
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.