Android SDK 集成指南

注册应用获取 App ID

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

App ID

导入SDK

Eclipse用户

下载蒲公英 Android SDK(包含异常上报,在线更新,摇一摇反馈等功能)。

将 jar 包复制到工程的 libs 目录下面。

加入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.1.2'
}

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日志 -->

示例代码截图

示例代码

上报 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();

        String appId = "myappid";  //蒲公英注册或上传应用获取的AppId
        PgyCrashManager.register(this,appId);
    }
}

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

<application
    android:name=".PgyApplication"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.pgyer.pgyersdk.test.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</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);

        String appId ="myappid"; //蒲公英注册或上传应用获取的AppId
        PgyCrashManager.register(this,appId);
    }
}

二、符号表配置(可选)

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

符号表

在后台配置符号表文件

符号表

上报 catch 异常

try 
{
} 
catch (Exception e) 
{
    // 如何调用之前没有调用过带参数appId的方法,请先调用Pgy.init(MainActivity.this,appId);
    PgyCrashManager.reportCaughtException(MainActivity.this, e);            
}

摇一摇用户反馈

  1. 普通的应用在 Activity 中添加如下代码即可
import com.pgyersdk.feedback.PgyFeedbackShakeManager;

public class MainActivity extends Activity {

    String appId ="myappid";//蒲公英注册或上传应用获取的AppId
    @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();
        PgyFeedbackShakeManager.register(MainActivity.this, appId);
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        PgyFeedbackShakeManager.unregister();
    }
}
  1. 游戏还需要在 GLSurfaceView.Renderer 这个类的 public void onDrawFrame(final GL10 gl) 的方法中添加以下代码
public void onDrawFrame(GL10 gl) {
    PgyFeedbackShakeManager.setGLSurface(true);
    GLSurfaceUtils.getInstance().takeScreenShot(gl);
}
  1. 通过点击按钮的方式弹出反馈界面:
PgyFeedback.getInstance().show(MainActivity.this, appId);
  1. 自定义反馈界面对话框title
PgyerDialog.setDialogTitleBackgroundColor("#ff0000");
PgyerDialog.setDialogTitleTextColor("#ffffff");

检查更新

  1. 默认对话框的版本更新检查
   String appId ="myappid"; //蒲公英注册或上传应用获取的AppId
   PgyUpdateManager.register(this, appId);
  1. 带回调的版本更新检查
   String appId ="myappid"; //蒲公英注册或上传应用获取的AppId
   PgyUpdateManager.register(MainActivity.this, appId,
   new UpdateManagerListener() {

      @Override
      public void onUpdateAvailable(final String result) {
         // 调用sdk的默认下载
         String downloadUrl = "apk下载地址";
         startDownloadTask(MainActivity.this,downloadUrl);
      }

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