首页 > 应用开发 > IT综合 > 干货| 如何在自有App中引入小游戏?
之前有跟大家分享过ios系统上引入FinClip SDK,并将小程序游戏运行到自有App 中,这周就继续分享如何在Android系统中引入FinClip SDK。
近期FinClip官方正在举行小游戏支持的功能内测,有兴趣的朋友可以去看看。手动指引:小游戏内测活动 https://www.finclip.com/blog/chan-pin-nei-ce/
实现效果:在自有 App 中实现小程序游戏运行; 使用技术: FinClip (即可使用); 测试机:Android; 测试Demo:
在 Android 项目中引入 FinClip SDK ,实现小程序游戏在 App 中运行,操作如下:




maven {
url "
credentials {
username "applet"
password "123321"
}}classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61"
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:3.5.2"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61"
}}allprojects {
repositories {
google()
jcenter()
maven {
url "
credentials {
username "applet"
password "123321"
}
}
}}task clean(type: Delete) {
delete rootProject.buildDir}implementation 'com.finogeeks.lib:finapplet:x.y.z' //x.y.z须替换为具体的版本号
注意:SDK 中的动态库是被加固过的,被加固过的动态库在编译打包时不能被压缩,否则加载的时候会报错。
packagingOptions {
// libsdkcore.so、libfin-yuvutil.so是被加固过的,不能被压缩,否则加载动态库时会报错
doNotStrip "*/x86/libsdkcore.so"
doNotStrip "*/x86_64/libsdkcore.so"
doNotStrip "*/armeabi/libsdkcore.so"
doNotStrip "*/armeabi-v7a/libsdkcore.so"
doNotStrip "*/arm64-v8a/libsdkcore.so"
doNotStrip "*/x86/libfin-yuvutil.so"
doNotStrip "*/x86_64/libfin-yuvutil.so"
doNotStrip "*/armeabi/libfin-yuvutil.so"
doNotStrip "*/armeabi-v7a/libfin-yuvutil.so"
doNotStrip "*/arm64-v8a/libfin-yuvutil.so"}-keep class com.finogeeks.** {*;}// 服务器信息集合List<FinStoreConfig> storeConfigs = new ArrayList<>();// 服务器1的信息FinStoreConfig storeConfig1 = new FinStoreConfig( "SDK Key信息", // SDK Key "SDK Secret信息", // SDK Secret "服务器1的地址", // 服务器地址 "服务器1的数据上报服务器地址", // 数据上报服务器地址 "/api/v1/mop/", // 服务器接口请求路由前缀 "", "加密方式" // 加密方式,国密:SM,md5: MD5(推荐));storeConfigs.add(storeConfig1);// 服务器2的信息FinStoreConfig storeConfig2 = new FinStoreConfig( "SDK Key信息", // SDK Key "SDK Secret信息", // SDK Secret "服务器2的地址", // 服务器地址 "服务器2的数据上报服务器地址", // 数据上报服务器地址 "/api/v1/mop/", // 服务器接口请求路由前缀 "", "加密方式" // 加密方式,国密:SM,md5: MD5(推荐));storeConfigs.add(storeConfig2);FinAppConfig config = new FinAppConfig.Builder() .setFinStoreConfigs(storeConfigs) // 服务器信息集合 .build();
// SDK初始化结果回调,用于接收SDK初始化状态FinCallback<Object> callback = new FinCallback<Object>() {
@Override public void onSuccess(Object result) {
// SDK初始化成功
}
@Override public void onError(int code, String error) {
// SDK初始化失败
Toast.makeText(AppletApplication.this, "SDK初始化失败", Toast.LENGTH_SHORT).show();
}
@Override public void onProgress(int status, String error) {
}};FinAppClient.INSTANCE.init(this, config, callback);
if (FinAppClient.INSTANCE.isFinAppProcess(this)) {
return;}package com.example.finogeeks.appletdemo;import android.os.Process;import android.support.multidex.MultiDexApplication;import android.text.TextUtils;import android.widget.Toast;import com.example.finogeeks.appletdemo.api.ApiOpenPage;import com.example.finogeeks.appletdemo.api.ApiOpenPageForResult;import com.example.finogeeks.appletdemo.api.DrawModule;import com.example.finogeeks.appletdemo.util.ProcessUtilKt;import com.finogeeks.lib.applet.client.FinAppClient;import com.finogeeks.lib.applet.client.FinAppConfig;import com.finogeeks.lib.applet.interfaces.FinCallback;/**
* 应用的{@link android.app.Application}
*/public class AppletApplication extends MultiDexApplication {
@Override public void onCreate() {
super.onCreate();
if (FinAppClient.INSTANCE.isFinAppProcess(this)) {
// 小程序进程不执行任何初始化操作
return;
}
// 服务器信息集合
List<FinStoreConfig> storeConfigs = new ArrayList<>();
// 服务器1的信息
FinStoreConfig storeConfig1 = new FinStoreConfig(
"SDK Key信息", // SDK Key
"SDK Secret信息", // SDK Secret
"服务器1的地址", // 服务器地址
"服务器1的数据上报服务器地址", // 数据上报服务器地址
"/api/v1/mop/", // 服务器接口请求路由前缀
"",
"加密方式" // 加密方式,国密:SM,md5: MD5(推荐)
);
storeConfigs.add(storeConfig1);
// 服务器2的信息
FinStoreConfig storeConfig2 = new FinStoreConfig(
"SDK Key信息", // SDK Key
"SDK Secret信息", // SDK Secret
"服务器2的地址", // 服务器地址
"服务器2的数据上报服务器地址", // 数据上报服务器地址
"/api/v1/mop/", // 服务器接口请求路由前缀
"",
"加密方式" // 加密方式,国密:SM,md5: MD5(推荐)
);
storeConfigs.add(storeConfig2);
FinAppConfig config = new FinAppConfig.Builder()
.setFinStoreConfigs(storeConfigs) // 服务器信息集合
.build();
FinAppClient.INSTANCE.init(this, config, new FinCallback<Object>() {
@Override public void onSuccess(Object result) {
}
@Override public void onError(int code, String error) {
Toast.makeText(AppletApplication.this, "SDK初始化失败", Toast.LENGTH_SHORT).show();
}
@Override public void onProgress(int status, String error) {
}
});
}}FinAppClient.INSTANCE.getAppletApiManager().startApplet(this, "5e0dc1f574193e00010d73c1");

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70023421/viewspace-2929801/ ,如需转载,请注明出处,否则将追究法律责任。