最近更新时间:2024.04.26 14:46:34
首次发布时间:2023.02.10 17:13:21
本文为您介绍 Android 加载 SDK 的初始化和基本使用。
您已完成加载 SDK 的集成准备。
请完成 Applog 和 Fresco 的初始化,代码示例如下所示:
注意
setLogEnable
设为false
并删除setLogger
配置。@Override public void onCreate() { super.onCreate(); initAppLog(); // 如果您需要使用日志上报扩展功能,则请按照以下顺序初始化 AppLog,并在已获得用户授权并进入业务场景后调用 AppLog.start() 接口手动启动。如果无需使用日志上报请注释或删除 Applog 相关代码。 initFresco(); // 初始化 BDFresco } private void initAppLog() { // 开始初始化 Applog,如果无需使用日志上报扩展功能,请注释或删除 Applog 相关代码 final com.bytedance.applog.InitConfig config = new com.bytedance.applog.InitConfig("your_appid", "your_channel"); // appid和渠道,channel 不能为空 config.setUriConfig (UriConstants.DEFAULT); // 国内上报地址,国外则有SINGAPORE,AMERICA,SINGAPORE_ALI,REGION_DEFAULT(=SINGAPORE) config.setLogEnable(true); // 是否在控制台输出日志,可用于观察用户行为日志上报情况,上线请关闭该能力 config.setLogger(new ILogger() { @Override public void log(String s, Throwable throwable) { Log.d("AppLog------->: ",""+s);//指定为 debug 包才会打印日志 } }); config.setH5CollectEnable (false);//关闭内嵌 H5 页面的无埋点事件 AppLog.setEncryptAndCompress(true); // 加密开关。false 为关闭加密,上线时建议设置为 true config.setAutoStart(false); AppLog.init(this, config); // Applog 初始化结束 } private void initFresco() { String aid = "xxx"; // App ID,应用管理获取 String deviceId = "xxx"; // 设备 ID,根据实际业务填写 String versionName = "0.0.1"; // App 版本号,根据实际业务填写 String versionCode = "1"; // App 版本 code,根据实际业务填写 String channel = "debug"; // 渠道,根据实际业务填写 String appName = "Sample"; // App 名称,业务方 app 名,根据实际业务填写 List<String> encodedAuthCode = new ArrayList<>(); encodedAuthCode.add("xxxxxxxxxxxxxxxxxxxxxxxxx"); com.bytedance.fresco.cloudcontrol.InitConfig initConfig = new com.bytedance.fresco.cloudcontrol.InitConfig( this, aid, appName, channel, versionName, versionCode, deviceId, InitConfig.CHINA, //国内版本设置为 CHINA;新加坡地区设置为 SINGAPORE; "M2ZmYzkzZjUtN2", // 传入获取的 Token 值 encodedAuthCode // 传入获取的授权码 List<String> ); // 注意须保持以下顺序! // 初始化云控及授权 CloudControl.init(initConfig); // TTNet FrescoTTNetFetcher frescoTTNetFetcher = new FrescoTTNetFetcher(initConfig); // 统计功能 Set<RequestListener> listeners = new HashSet<>(); listeners.add(new FrescoTraceListener()); // 开启用户感知日志上报。该能力依赖 Applog,若未完成初始化与启动 Applog,则无法使用该功能 DraweeConfig.Builder draweeConfigBuilder = DraweeConfig.newBuilder().addGlobalControllerListener(new FrescoControllerListener()); // 开启大图监控日志上报。该能力依赖 Applog,若未完成初始化与启动 Applog,则无法使用该功能 FrescoMonitor.setExceedTheLimitBitmapMonitorEnabled(true); // 设置网络库 ImagePipelineConfig.Builder builder = ImagePipelineConfig.newBuilder(this) .setNetworkFetcher(frescoTTNetFetcher) .setRequestListeners(listeners) // HEIF功能配置 .setImageDecoderConfig(ImageDecoderConfig.newBuilder().addDecodingCapability( HeifDecoder.HEIF_FORMAT, new HeifDecoder.HeifFormatChecker(),new HeifDecoder.HeifFormatDecoder(false)).build());// true表示优先使用硬解,false表示优先使用软解,推荐设置false Fresco.initialize(this, builder.build(), draweeConfigBuilder.build()); }
在确保已经获得用户授权并进入业务场景后,请调用以下方法手动启动 Applog 模块,开始日志上报和数据采集操作。
AppLog.start(); //启动 Applog 模块
InitConfig
构造参数均不能为null
。
InitConfig(@NonNull Application context, @NonNull String aid, @NonNull String appName, @NonNull String channel, @NonNull String versionName, @NonNull String versionCode, @NonNull String deviceId, int uriConfig, String token, List<String> encodedAuthCode)
部分参数说明如下所示:
参数 | 说明 |
---|---|
appID | SDK 用于打点监控上报的最小单元,简写为 aid。请登录控制台我的应用获取。 |
deviceId | 设备 ID,根据实际业务填写,设备的唯一编号,用于统计区分使用。 |
appName | App 名称,根据实际业务填写,用于统计使用。 |
versionName | App 版本号,根据实际业务填写,主要用于数据统计与配置拉取。 |
versionCode | App 版本 code,根据实际业务填写,主要用于数据统计与配置拉取。 |
channel | 渠道标识,根据实际业务填写。用于区分统计不同渠道来源的图片服务质量数据,如传入 huawei、oppo 等不同渠道标识。 |
uriConfig | 地区,根据实际业务填写。如果 App 为非中国区域用户服务,则需修改设置为海外,采样后的日志则自动上报到海外地区。 |
token | token,请如实填写,您可通过应用管理获取该账号唯一的 Token 值。 |
encodedAuthCode | 授权码,请如实填写,您可通过 License 授权管理获取购买 License 后下载至本地的授权码。 注意 建议您在授权码到期前完成续期操作,并在 SDK 中及时更新为最新授权码,以免影响您的业务使用。 |
如果图片库打点监控的信息上传成功,会有类似以下日志输出:
2021-06-16 21:48:44.516 8711-8988/com.dwz.DwzMobileApp D/AppLog------->:: setResult, [{pack, u1, 1, , 1623851324390}], [] 2021-06-16 21:48:44.520 8711-8988/com.dwz.DwzMobileApp D/AppLog------->:: sender 1 1
BDFresco 基于开源 Fresco 进行开发,具体使用能力和方式请参考 Fresco 官方指南。