蒲公英Android安卓SDK是一款蒲公英运用内测专家的安卓SDK,咱们的SDK,你们自己的气焰。蒲公英SDK为你豫备了多种自界说的方式,让你手机反映的方式愈加贴近你的产物。
Android SDK 集成指南
册运用取患上 App ID
App ID:仅有标识一个运用的 ID,在蒲公英上的每一个 App 都有一个仅有的 App ID,开拓者可能在运用规画页面首页魔难。
软件截图1
导入SDK
EcliPSe用户
下载蒲公英 Android SDK(搜罗颇为上报,在线更新,摇一摇反映等功能)。
将 jar 包复制到工程的 libs 目录下面。
软件截图2
Android Studio用户 削减代码到project下的build.gradle文件中:
allprojects{ repositories{ jcenter() maven{url"https: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-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><!--取患上收集形态--> <uses-permissionandroid:name="android.permission.INTERNET"/><!--收集通讯--> <uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/><!--取患上配置装备部署信息--> <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/><!--取患上MAC地址--> <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!--读写sdcard,storage等等--> <uses-permissionandroid:name="android.permission.RECORD_AUDIO"/><!--应承挨次录制音频--> <!--可选--> <uses-permissionandroid:name="android.permission.READ_LOGS"/><!--取患上logcat日志--> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <!--可选--> <activityandroid:name="com.pgyersdk.activity.FeedbackActivity"/> <!--必选--> <meta-data android:name="PGYER_APPID" android:value="4b6e8877dfcc2462bedb37dcf66b6d87"> </meta-data> </application>
上报 Crash 颇为
一、注册Crash接口(必选)
在 application 中集成,可能有机缘捉拿更多的颇为(推选)
importcom.pgyersdk.crash.PgyCrashManager; importandroid.app.Application; publicclassPgyApplicationextendsApplication{ @Override publicvoidonCreate(){ https://TODOAuto-generatedmethodstub 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 中集成
importcom.pgyersdk.crash.PgyCrashManager; publicclassMainActivityextendsActivity{ @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); PgyCrashManager.register(this); } }
3. 破除了注册可能调用一下措施:
PgyCrashManager.unregister();
二、标志表配un置(可选)
经由 progurad 工具混合时,工程目录下会自动天生标志表文件 mapping.txt
软件截图3
在布景配置装备部署标志表文件
软件截图4
上报 catch 颇为
try { } catch(Exceptione) { PgyCrashManager.reportCaughtException(MainActivity.this,e); }
摇一摇用户反映
艰深的运用在 Activity 中削减如下代码即可
importcom.pgyersdk.feedback.PgyFeedbackShakeManager; publicclassMainActivityextendsActivity{ @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protectedvoidonResume(){ https://TODOAuto-generatedmethodstub super.onResume(); https://自界说摇一摇的锐敏度,默以为950,数值越小锐敏度越高。 PgyFeedbackShakeManager.setShakingThreshold(1000); https://以对于话框的方式弹出 PgyFeedbackShakeManager.register(MainActivity.this); https://以Activity的方式掀开,这种情景下必需在AndroidManifest.xml配置装备部署FeedbackActivity https://掀开沉浸式,默以为false https://FeedbackActivity.setBarI妹妹ersive(true); PgyFeedbackShakeManager.register(MainActivity.this,false); } @Override protectedvoidonPause(){ https://TODOAuto-generatedmethodstub super.onPause(); PgyFeedbackShakeManager.unregister(); } }
游戏还需要在 GLSurfaceView.Renderer 这个类的 public void onDrawFrame(final GL10 gl) 的措施中削减如下代码
publicvoidonDrawFrame(GL10gl){ PgyFeedbackShakeManager.setGLSurface(true); GLSurfaceutils.getInstance().takeScreenShot(gl); }
经由点击按钮的方式弹出反映界面:
https://以对于话框的方式弹出 PgyFeedback.getInstance().show(MainActivity.this); https://以Activity的方式掀开,这种情景下必需在AndroidManifest.xml配置装备部署FeedbackActivity https://掀开沉浸式,默以为false https://FeedbackActivity.setBarI妹妹ersive(true); PgyFeedback.getInstance().showActiivty(MainActivity.this);
自界说反映界面临话框title
PgyerDialog.setDialogTitleBackgroundColor("#ff0000"); PgyerDialog.setDialogTitleTextColor("#ffffff");
自界说反映界面Activity
https://配置顶部导航栏以及底部bar的颜色 FeedbackActivity.setBarBackgroundColor("#ff0000"); https://配置顶部按钮以及底部按钮按下时的反映色 FeedbackActivity.setBarButtonPressedColor("#ff0000"); https://配置颜色抉择器的靠山物 FeedbackActivity.setColorPickerBackgroundColor("#ff0000");
自界说反映信息(不限度削减的数目)
PgyFeedback.getInstance().setMoreParam("tao","value");
将在用户反映的概况界面看到自界说的数据,如下图:
软件截图5
魔难更新
默认对于话框的版本更新魔难
PgyUpdateManager.register(this);
带回调的版本更新魔难
PgyUpdateManager.register(MainActivity.this, newUpdateManagerListener(){ @Override publicvoidonUpdateAvailable(finalStringresult){ https://将新版本信息封装到AppBean中 finalAppBeanappBean=getAppBeanFromString(result); newAlertDialog.Builder(MainActivity.this) .setTitle("更新") .setMessage("") .setNegativeButton( "判断", newDialogInterface.OnClickListener(){ @Override publicvoidonClick( DialogInterfacedialog, intwhich){ startDownloadTask( MainActivity.this, appBean.getDownloadURL()); } }).show(); } @Override publicvoidonNoUpdateAvailable(){ } });
破除了注册可能调用一下措施:
PgyUpdateManager.unregister();
result的格式为:
软件截图6
混合
-libraryjarslibs/pgyer_sdk_x.x.jar -dontwarncom.pgyersdk.** -keepclasscom.pgyersdk.**{*;}
Android SDK 罕有下场
传的crash是那些?
Java运行时不被Try Catched住从而导致JVM停止运行的颇为。
甚么是Java的复原标志文件?
在运用Progurad工具妨碍代码混合时会可能天生的mapping文件。
为甚么要上传Java复原标志文件?
产物宣告的装置包艰深是经由混合处置的,这样就会导致上报的颇为货仓中的类名以及措施名是一种不可读的方式(好比a.b()),咱们需要经由Java复原标志表复原回真正的可读的类名以及措施名(好比:MyClass.myMehtod())。
kill -九、exit等会被当成Crash上报吗?
不会。
try catch的颇为会被当成Crash上报吗?
不会。
App无照应颇为(ANR)是否捉拿?
不能。
弹出反映页面时截图为甚么不展现?
请确认在AndroidManifest.xml文件是否削减了android.permission.WRITE_EXTERNAL_STORAGE权限。
反映页面截图奈何样展现的不因此后的Activity界面?
当运用中运用了TabActivity、GroupActivity等搜罗多个Activity的会集类时,不要在其OnResume()削减PgyFeedbackShakeManager.register(MainActivity.this, Constants.APPID);在其中的子Activity的OnResume()削减即可。
游戏反映上传的截图为甚么是玄色的?
请在onDrawFrame措施中削减:
PgyFeedbackShakeManager.setGLSurface(true); GLSurfaceUtils.getInstance().takeScreenShot(gl);
若何自界说更新揭示对于话框?
PgyUpdateManager.register(MainActivity.this, Constants.APPID,new UpdateManagerListener() { @Override public void onUpdateAvailable(String result) { https:// 弹出自界说对于话框 } });
奈何样样测试app的更新功能已经个别使命?
app集成sdk后打包上传到蒲公英,然后手机扫二维码装置,当统一个app有新的版本再次上传到蒲公英时,手机上掀开从前装置的这个app就会揭示有新版本更新。
备注:集成sdk后,更正AndroidManifest.xml的android:versionCode值小于上传到蒲公英上的最新版本的android:versionCode值,就能赶快测试更新功能。
为甚么我下载了历史版本,掀开运用不会揭示更新?
1.有可能你的历史版本不集成sdk的更新功能。
2.你不更正versioncode,仅仅依靠自增的buildno来操作版本,这样你是不措施立马检测到新版本的,由于sdk并无奈知道你下载的apk对于应的buildno,以是当地只能保存最新的buildno,当你有新的版本再次上传时,sdk就能凭证buildno来比力检测到新版本。
自界说更新装置apk时揭示“剖析包侵蚀”
public void onUpdateAvailable(final String result) { https:// 调用sdk的默认下载,apk下载地址为result字符串中downloadURL对于应的值 String downloadUrl = "apk下载地址"; startDownloadTask(MainActivity.this,downloadUrl); }
请魔难apk下载地址是否精确,这里不是apk的单页短链接而是result概况的downloadURL对于应的值。