so库动态加载 | 功能更新

一登 · 2015 / 11 / 24    更新日志

article

一登向 安卓开发者 提供 so 库动态加载功能。用户无需将 SDK 中的 so 库集成到工程,通过调用接口即可实现动态加载。好处是减少应用体积,实现动态更新人脸库,让开发者无感知实现更新。

Manifest 配置:

在Manifest添加如下代码:

<service android:name="com.isnc.facesdk.soloader.DownloadService"/>  

接口调用如下:

SoDownloadManager.checkSoAndDownload(Context context, ProgressCallback progressCallback);  

示例如下:

// 调用含有SoLoaderCallback回调参数的登录绑定接口,若应用还未加载so库则会触发回调方法。
SuperID.faceLogin(this, new SuperID.SoLoaderCallback() {  
            @Override
            public void soLoader() {
                doDownload();
            }
        });
private void doDownload() {  
        ProgressDialog mProgressDialog = new ProgressDialog(this);
        mProgressDialog.setMessage("刷脸升级包下载");
        mProgressDialog.setIndeterminate(false);      mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        mProgressDialog.setCancelable(true);
        mProgressDialog.setCancelable(false);
        mProgressDialog.show();
        SoDownloadManager.checkSoAndDownload(this, new SoDownloadManager.ProgressCallback() {
            @Override
            public void getProgress(int progress) {
            //progress为下载进度0~100
                mProgressDialog.setProgress(progress);
                if (progress == 100) {
                        //加载成功
                    mProgressDialog.dismiss();
                } else if (progress == -100){
                        //加载失败
                    mProgressDialog.dismiss();
                }
            }
        });
    }

其他接口方法:

判断 so 库是否已经加载,请调用SoDownloadManager.isSoExists(this);