接入说明


1.1 导入SDK

 

接入 aar 包

添加aar包支持

 

或者接入 jar 包

 

接入jar包时需要将res目录下的资源文件拷贝到本地工程对应目录下。

 



1.2 SDK所需权限

 

其中INTERNETACCESS_WIFI_STATE为必选权限 ;

WRITE_EXTERNAL_STORAGE 为可选权限,填写上后会将apk包下载到 SD卡上 ;

如果必选权限有缺失,会 toast 提示:Missing necessary permissions !

 



1.3 AndroidManifest配置

 



1.4 调用更新

调用更新时传入的布尔值,一般传入false;如果传入true,意思是无视跳过此版本,即用户点击了跳过此版本后下次调用依旧会提示更新。

 

我们会获取 manifest 中的 UMENG_CHANNEL,来区分渠道,如果您的应用没有接入友盟或者您的渠道是在java代码中动态设置的,请在调用更新之前使用

来设置渠道号。

 



1.5 状态监听

如果您需要知道调用后是否会弹出更新,可以添加监听:

安装调用的是系统安装,如果系统不存在自带的安装器,可以添加监听获知:

update.setInstallLinsener(new Update.InstallCallback() {
    @Override
    public void installSucess() {
         // 调起安装
    }

    @Override
    public void installFail() {
         // 安装器不存在    
    }
});




1.6 版本兼容

如果您的targetSdkVersion 大于等于 24 ,在7.0以上的设备上,安装路径的获取会有所变化,需要在Manifest文件中额外添加:

 

<provider
          android:name="android.support.v4.content.FileProvider"
          android:authorities="${applicationId}.fileprovider"
          android:exported="false"
          android:grantUriPermissions="true">
  <meta-data
             android:name="android.support.FILE_PROVIDER_PATHS"
             android:resource="@xml/db_update_paths" />
</provider>

如果您使用eclipse编译,会识别不出${applicationId}这个参数,可将其替换成自身包名。

 

另外要注意的是 android.permission.WRITE_EXTERNAL_STORAGE 这个权限在 6.0 以上是需要动态获取的。




混淆配置

-dontwarn com.dangbei.downloader.**
-keep class com.dangbei.downloader.** {*;}

-dontwarn com.dangbei.update.**
-keep class com.dangbei.update.** {*;}

-keep public class **.R$*{
    public static final int *;
}

 

注意

 

打包时尽量不要混淆R文件,要确保资源文件打入到apk中,不要被第三方工具删除。

另外要注意 版本兼容。