Android接入百度自动更新SDK
2015-11-07 18:49
549 查看
一:前言
公司的app,上传到百度应用市场,然后说必须要接入百度的自动更新sdk才能上架,于是从百度官网上去下载jar包,下载的时候必须要带上数据统计,如果使用自动的jar包,还需要带上广告联盟,坑爹啊,有木有。我下载下来把其他无关的jar包根so文件删掉了.把百度的demo也进行精简了一下.只留下了自动更新必须要用到的.
二:效果图如下
![](https://img-blog.csdn.net/20151107184845417)
三:代码如下
AutoUpdateActivity.java 代码删的就剩下整个Activity了,其实调用百度sdk还挺简单的,一句话就能搞定,然后再监听回调函数.
autoupdate_main.xml AutoUpdateActivity加载的布局文件.
四.注意事项
1.需要引用另外一个项目,另外一个项目里面必须有两个百度的jar包.BDAutoUpdate_APPX_SDK_20150826.jar跟need_lib.jar
2.需要在AndroidManifest.xml中配置appid,appkey,还有弹窗显示的Activity.
3.appid跟appkey是官网申请的 http://app.baidu.com/value/sdkservice?f=9
4.如果你打包的项目对代码有混淆,记得忽略百度的jar包混淆.
推荐下自己创建的android QQ群:202928390 欢迎大家的加入.
点击下载源码
推荐一个Android开发者公众号,每周都有原创干货
公司的app,上传到百度应用市场,然后说必须要接入百度的自动更新sdk才能上架,于是从百度官网上去下载jar包,下载的时候必须要带上数据统计,如果使用自动的jar包,还需要带上广告联盟,坑爹啊,有木有。我下载下来把其他无关的jar包根so文件删掉了.把百度的demo也进行精简了一下.只留下了自动更新必须要用到的.
二:效果图如下
三:代码如下
AutoUpdateActivity.java 代码删的就剩下整个Activity了,其实调用百度sdk还挺简单的,一句话就能搞定,然后再监听回调函数.
/** * 百度自动更新 * @author ansen * @create time 2015-11-07 */ public class AutoUpdateActivity extends Activity implements View.OnClickListener { private TextView txt_log; private ProgressDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.autoupdate_main); findViewById(R.id.btn_ui).setOnClickListener(this); findViewById(R.id.btn_silence).setOnClickListener(this); findViewById(R.id.btn_as).setOnClickListener(this); findViewById(R.id.btn_noui).setOnClickListener(this); txt_log = (TextView) findViewById(R.id.txt_log); dialog = new ProgressDialog(this); dialog.setIndeterminate(true); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_ui://UI更新 txt_log.setText(""); dialog.show(); BDAutoUpdateSDK.uiUpdateAction(this, new MyUICheckUpdateCallback()); break; case R.id.btn_silence: txt_log.setText(""); BDAutoUpdateSDK.silenceUpdateAction(this); break; case R.id.btn_as: txt_log.setText(""); dialog.show(); BDAutoUpdateSDK.asUpdateAction(this, new MyUICheckUpdateCallback()); break; case R.id.btn_noui: txt_log.setText(""); dialog.show(); BDAutoUpdateSDK.cpUpdateCheck(this, new MyCPCheckUpdateCallback()); break; } } @Override protected void onDestroy() { dialog.dismiss(); super.onDestroy(); } private class MyUICheckUpdateCallback implements UICheckUpdateCallback { @Override public void onCheckComplete() { dialog.dismiss(); } } private class MyCPCheckUpdateCallback implements CPCheckUpdateCallback { @Override public void onCheckUpdateCallback(AppUpdateInfo info, AppUpdateInfoForInstall infoForInstall) { if(infoForInstall != null && !TextUtils.isEmpty(infoForInstall.getInstallPath())) { txt_log.setText(txt_log.getText() + "\n install info: " + infoForInstall.getAppSName() + ", \nverion=" + infoForInstall.getAppVersionName() + ", \nchange log=" + infoForInstall.getAppChangeLog()); txt_log.setText(txt_log.getText() + "\n we can install the apk file in: " + infoForInstall.getInstallPath()); BDAutoUpdateSDK.cpUpdateInstall(getApplicationContext(), infoForInstall.getInstallPath()); }else if(info != null) { BDAutoUpdateSDK.cpUpdateDownload(AutoUpdateActivity.this, info, new UpdateDownloadCallback()); }else { txt_log.setText(txt_log.getText() + "\n no update."); } dialog.dismiss(); } } private class UpdateDownloadCallback implements CPUpdateDownloadCallback { @Override public void onDownloadComplete(String apkPath) { txt_log.setText(txt_log.getText() + "\n onDownloadComplete: " + apkPath); BDAutoUpdateSDK.cpUpdateInstall(getApplicationContext(), apkPath); } @Override public void onStart() { txt_log.setText(txt_log.getText() + "\n Download onStart"); } @Override public void onPercent(int percent, long rcvLen, long fileSize) { txt_log.setText(txt_log.getText() + "\n Download onPercent: " + percent + "%"); } @Override public void onFail(Throwable error, String content) { txt_log.setText(txt_log.getText() + "\n Download onFail: " + content); } @Override public void onStop() { txt_log.setText(txt_log.getText() + "\n Download onStop"); } } }
autoupdate_main.xml AutoUpdateActivity加载的布局文件.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dip" android:orientation="vertical" android:gravity="center" tools:context="${packageName}.${activityClass}" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <Button android:id="@+id/btn_ui" android:layout_width="match_parent" android:layout_height="40dip" android:text="UI更新"/> <Button android:id="@+id/btn_silence" android:layout_width="match_parent" android:layout_height="40dip" android:text="静默更新" /> <Button android:id="@+id/btn_as" android:layout_width="match_parent" android:layout_height="40dip" android:text="百度助手更新" /> <Button android:id="@+id/btn_noui" android:layout_width="match_parent" android:layout_height="40dip" android:text="无UI更新" /> </LinearLayout> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/txt_log" android:layout_width="match_parent" android:layout_height="wrap_content" /> </ScrollView> </LinearLayout>
四.注意事项
1.需要引用另外一个项目,另外一个项目里面必须有两个百度的jar包.BDAutoUpdate_APPX_SDK_20150826.jar跟need_lib.jar
2.需要在AndroidManifest.xml中配置appid,appkey,还有弹窗显示的Activity.
<!-- 百度自动更新SDK Appid配置,AppKey配置--> <meta-data android:name="BDAPPID" android:value="3067515"/> <meta-data android:name="BDAPPKEY" android:value="f3Os4GAOqxgm79GqbnkT9L8T"/> <!-- 百度自动更新SDK --> <activity android:name="com.baidu.autoupdatesdk.ConfirmDialoigActivity" android:exported="false" android:screenOrientation="sensor" android:theme="@style/bdp_update_dialog_style_fullscreen"/>
3.appid跟appkey是官网申请的 http://app.baidu.com/value/sdkservice?f=9
4.如果你打包的项目对代码有混淆,记得忽略百度的jar包混淆.
推荐下自己创建的android QQ群:202928390 欢迎大家的加入.
点击下载源码
推荐一个Android开发者公众号,每周都有原创干货
相关文章推荐
- Android接入百度自动更新SDK
- Android开发大神博客汇总
- Android HandlerThread例子
- Android 四大组件之service
- Android之SqlLite数据库使用
- Android应用程序编译过程简述
- Android 计时器 Chronometer的简单实用
- 使用git来打包Android源码
- 值得你关注的Android6.0上的重要变化(一)
- pulltorefresh上拉加载,没有更多数据的时候显示“加载完成”,不回调刷新接口的实现
- Android -> 如何避免Handler引起内存泄露
- Android开发--Handler引起的内存泄露
- 模拟Android软件试用到期提示注册
- Android签名有关问题
- android开发的一些概念
- Android存储-file存储
- 通过android API函数操作数据库
- Android DrawerLayout和NavigationView 的使用方法
- Android View 绘制过程
- Android(9)相对布局及其属性和练习