当渠道需要在Application中调用有参方法

本文就以荔枝的SDK接入时,需要在application中实现registerApp(application: android.app.Application, appId: kotlin.String?, adChannel: kotlin.String?)方法为例。
A.在插件工程中的操作:
• 在java包下新建MainApplication类
• 在MainApplication中调用读取清单文件中application中的信息,在从此信息中读取meta-data信息
package com.rsdk.framework;
import android.app.Application;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import com.yibasan.lizhifm.lzgamelib.LzGameManager;
@SuppressWarnings(“unused”)
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
ApplicationInfo appInfo = null;
try {
//通过包管理器下的getApplicationInfo方法尝试获取appInfo
appInfo = this.getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
通过getString方法依据键获取值*****
String appID = appInfo.metaData.getString(“lizhigame_AppID”);
LzGameManager.Companion.getInstance().registerApp(this,appID, appInfo.metaData.getString(“lizhigame_adChannel”));
}
}
注意:在meta-data中,依据键获取值时候,在这个案例中,会引发长数字的问题:
使用get(keyName).toString得到"5.0819312E18"。(怀疑自动抛弃精度问题)
使用getInt得到0,
使用getString得到null。
所以,我们有两种办法:
法一:在清单文件的meta-data中把值传入成""+“空格”+长数字。
• 在Sample moudle中的AndroidManifest清单文件中加入application的注册(值为application的位置)
• 在标签内写入标签,并在标签内,以键值对的格式写入参数数据
法二:在清单文件中的meta-data中把值传入成 lizhi_+长数字。
这种方法在java类中获取时候,得用字符串裁剪去除多余的前缀。
注:replace方法只是伪替代,并没有对原有字符串进行真正修改。
B.在Start中的操作:
• 进入SDK管理

修改脚本可视化配置:

修改前端参数配置,点击添加客户端参数,输入需要的数据,适当加上备注:
• 进入子平台参数配置,把新建的参数按格式配上:
• 之后正常打包操作即可。可通过反编译查询是否将参数打入包中。下面是反编译和再出包工具的使用方法:
反编译:

  1. 打开终端,进入 apktool 工具目录,cd /Users/Project/devtools/apktool-2.4.0
  2. 输入前半段命令 java -jar apktool_2.4.0.jar d ,最后一个 d 后面有一个空格,命令输入完后不要按回车键
  3. 在 访达 中选中需要反编译的 APK,将其复制或直接拖入终端,最后完整命令如:java -jar apktool_2.4.0.jar d /Users/rayjoy/Downloads/blhx_2.0.0.10_45_20190516_115405_27d58.apk ,参数 d 后面跟的是 apk 的路径。
  4. 最后按回车对 apk 包进行反编译。
  5. 反编译完成,终端执行 open /Users/Project/devtools/apktool-2.4.0命令,打开目录。
  6. 反编译后的 apk 以目录形式存在,目录名为 apk 的名称。
    重新编译:
  7. 输入前半段命令 java -jar apktool_2.4.0.jar b ,最后一个 b 后面有一个空格,命令输入完后不要按回车键
  8. 在 访达 中选中需要重新编译的 APK,将其复制或直接拖入终端,最后完整命令如:java -jar apktool_2.4.0.jar d /Users/rayjoy/Downloads/blhx_2.0.0.10_45_20190516_115405_27d58.apk ,参数 b 后面跟的是 apk 的路径。
  9. 编译成功之后,在原来的文件夹下能看到有一个dist的文件夹,里面的apk就是母包资源
发布了7 篇原创文章 · 获赞 0 · 访问量 106

猜你喜欢

转载自blog.csdn.net/qq_33581012/article/details/104050270
今日推荐