小白编程之使用友盟自动更新

原创 2015年11月18日 22:31:34
在开发APP过程当中,为实现APP更新时及时提示用户更新,因此使用友盟更新   http://www.umeng.com/component_update  在实际使用过程中,发现非常方便,并且个人手机上发现有多款APP 使用的是相类似的更新提示Dialog,目测应该是属于友盟更新,为方便以后使用方便,特此将使用过程小白化记录。

-sdk下载
友盟自动更新  http://dev.umeng.com/auto-update/android-doc/introduction  

1.将下载的ZIP解压,将其中的libs文件夹合并到本地工程libs子目录下。
Eclipse用户右键工程根目录,选择Properties -> Java Build Path -> Libraries,然后点击Add External JARs... 选择指向jar的路径,点击OK,即导入成功。
android studio用户直接直接复制到 Libs 然后右键选择 Add As Libarry 即导入成功。

2.将SDK提供的res文件夹拷入工程目录下, 和工程本身res目录合并。请不要随便删除其中的文件。

3.配置AndroidManifest.xml

打开AndroidManifest.xml,添加SDK需要的权限到<manifest>标签下:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</pre><div><span style="font-family:Courier New;">android.permission.WRITE_EXTERNAL_STORAGE</span> 权限允许将下载的apk保存到sd卡中。<code>android.permission.ACCESS_NETWORK_STATE</code> 权限允许检查网络状态,从而根据不同网络环境决定何种下载策略,务必添加该权限。</div><div></div><div>4.添加APPKEY和渠道到<code><application></code>标签下:</div><div></div><pre class="html" name="code"><meta-data android:value="YOUR APP KEY" android:name="UMENG_APPKEY"/>
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>

YOUR APP KEY 即开发的APP上传友盟后,友盟提供的KEY 
UMENG_CHANNEL:用来标注应用推广渠道,不同渠道可以上传不同更新包,您可以使用20位以内的英文和数字为渠道定名,替换value中的"Channel ID"。如果不改动,将代表默认渠道。(特别提示:如果需要使用友盟自动更新多渠道更新,必须先集成友盟统计SDK

5.添加Service和Activity到<application>标签下:

<service
    android:name="com.umeng.update.net.DownloadingService"
    android:process=":DownloadingService" >
</service>
<activity 
    android:name="com.umeng.update.UpdateDialogActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" >
</activity>

包名可能会出现不一致的情况,在配置时检查一下
-----------------------------------------------------------------------------------------------------------------------
至此,自动更新的配置已经完成,为了使程序在启动是即可以自检是否有更新可用,需要在 应用程序入口Activity里的OnCreate()方法中调用

public void onCreate(Bundle  savedInstanceState) {
    super.onCreate(savedInstanceState);
    UmengUpdateAgent.update(this);


完成以上配置后,APP在启动后,当程序的VersionCode 低于友盟后台的VersionCode时,会在APP启动后提示用户更新,Android studio 用户的VersionCode 在Builde.Gradle 中配置





-----------------------------------------------------------------------------------------------------------------
以下为部分自定义功能,





 上图中,自定义了Button的样式,并且给TextView 添加了点击时的效果,因为在APP使用过程中,如果用户在APP 启动时没有选择升级,但是突然想要手动升级了,就需要调用一下的方法。

 tx= (TextView) findViewById(R.id.tx);
        tx.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                UmengUpdateAgent.setUpdateAutoPopup(false);
                UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() {
                    @Override

                    public void onUpdateReturned(int updateStatus, UpdateResponse updateInfo) {
                        switch (updateStatus) {
                            case UpdateStatus.Yes: // has update
                                UmengUpdateAgent.showUpdateDialog(getApplicationContext(), updateInfo);
                                break;
                            case UpdateStatus.No: // has no update
                                Toast.makeText(getApplicationContext(), "当前已是最新版本!", Toast.LENGTH_SHORT).show();
                                break;
                            case UpdateStatus.NoneWifi: // none wifi
                                Toast.makeText(getApplicationContext(), "没有wifi连接, 只在wifi下更新", Toast.LENGTH_SHORT).show();
                                break;
                            case UpdateStatus.Timeout: // time out
                                Toast.makeText(getApplicationContext(), "超时", Toast.LENGTH_SHORT).show();
                                break;
                        }
                    }

                });UmengUpdateAgent.forceUpdate(getApplicationContext());

            }
        });

其中,可以修改Toast的参数,来修改提示用户信息。
------------------------------------------------------------------------------------------------------------------
接下来简单说一下Dialog的自定义方法



在layout文件夹下的umeng_updata_dialog.xm就是提示框的XML文件,
 <LinearLayout
        android:id="@+id/umeng_update_frame"
        android:layout_width="280dp"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@drawable/umeng_update_dialog_bg"   //这一行为Dialog边框样式设置
        android:paddingBottom="8dp"
        android:orientation="vertical" >

点击后,打开drawable/emeng_updata_dialog_bg.xml文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:radius="8dp" />
    <solid  android:color="#FFFFFF"/>
</shape>
  
    对
<corners android:radius="8dp" />
参数修改,可以改变边角半径,参数为0则表示直角
 <!-- 填充的颜色 -->
   <solid android:color="#FFFFFF" />
  <!-- 设置矩形的四个角为弧形 -->
   <!-- android:radius 弧形的半径 -->
     <corners android:radius="8dip" />
android:radius为角的弧度,值越大角越圆。我们还可以把四个角设定成不同的角度,方法为:
 
 <corners
        android:bottomLeftRadius="20dp"
         android:bottomRightRadius="0dp"
         android:topLeftRadius="1dp"
         android:topRightRadius="20dp" />



至此,基本上关于友盟检查更新就已经配置完成,大致常用的参数简单修改的都已经完成了,关于APP更新的更多设置可以参考友盟官方文档
  点击打开链接

相关文章推荐

友盟自动更新demo

  • 2015年05月23日 17:34
  • 2.55MB
  • 下载

iOS 友盟 自动更新SDK集成指南

OS自动更新SDK集成指南 :http://dev.umeng.com/auto-update/ios/quick-start 1. 集成友盟iOS统计分析SDK 友盟自动更新功能在统计分析SDK...

友盟自动更新.docx

  • 2015年11月05日 13:04
  • 35KB
  • 下载

android 友盟集成app自动更新模块

  • 2016年03月26日 12:22
  • 10.75MB
  • 下载

利用友盟平台做的APP自动更新

今天在看公司代码时候,接触到了友盟平台,以前各种平台也接触过。一直没有独立尝试做过,今天就自己做了个小功能的APP,然后用友盟做自动更新。 http://www.umeng.com/ 首先去这...

友盟在线参数+自动更新升级SDK实现指定版本强制更新升级

项目上有这样的需求:对指定的版本要求强制升级,同时其他的版本可以选择性升级。 友盟的自动更新功能还是挺好用的,只不过对强制升级这块支持的还不到位。不过友盟的开发人员也给出了勉强可行的方案: 使用友盟在...
  • oLevin
  • oLevin
  • 2014年08月02日 00:14
  • 4484

友盟更新 自动更新替换方案

自动更新替换方案 这个服务因为目前面临N多非技术的挑战,导致我们很难再维护好这个服务: iOS的自动更新已经被苹果官方严格禁止了,苹果官方也数次联系友盟,要求我们及早把iOS的...

安卓自动更新,静默更新,替换友盟更新可以在通知栏里显示更新下载进度,几行代码快速实现Android下载更新

安卓自动更新,静默更新,可以在通知栏里显示更新下载进度,几行代码快速实现Android下载更新...

淘小白自动发货软件

  • 2013年03月19日 00:01
  • 1.82MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:小白编程之使用友盟自动更新
举报原因:
原因补充:

(最多只允许输入30个字)