{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508795473,"data":{"id":71713021,"title":"1.3初始化","slug":"mu1vnd","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

时序图


关键参数


成员

含义

示例说明

logFileName

日志文件名称

{logFileName}_{AutoSDK版本号}_dice_{引擎版本号}.log,比如BLLog_9.460.0.1.160000_dice.10.21.41.406.log

\tlogPath

日志文件存储路径

如/sdcard/navi/bllog/,之后程序执行过程中

就会在该路径下生成如下日志:

  • 网络库日志:
  • log_GNet.log
  • log/network/{logFileName}_{AutoSDK版本号}_dice_{引擎版本号}_log_xxx
  • AutoSDK日志:log/{logFileName}_{AutoSDK版本号}_dice_{引擎版本号}_log_xxx




备注:

  • 客户端抓取日志时,将/sdcard/navi/bllog/

整个路径压缩成zip包,上传aone缺陷附件

  • 在log_GNet.log文件 同级目录下,创建一个空文件gnet_stat_a.txt ,重启,重现问题,程序全部网络请求数据在gnet_stats/目录下采集生成。
  • 在log_GNet.log 同级目录新建2个log文件, 文件名: log_mqtt.log 和 log_mqtt_jni.log,可以开启mqttSDK高频日志方法

\tlogLevel

日志输出级别控制

如设值LogLevelVerbose,打印

error,warn,info,debug,高频日志;

如设置LogLevelNone=0, 不打印任何日志包括(log_GNet.log)

\tgroupMask

日志掩码,即可按模块打印日志

如设GROUP_MASK_ALL值,打印

所有模块日志

如设置GROUP_MASK_NULL=0, 不打印任何模块的日志包括(log_GNet.log)

pPlatformUtil

平台依赖回调监听

HMI端需继承该监听接口类

\tserverType

服务器后台环境类型

如设值AosProductionEnv,为公众正式网服务器类型;

如设值AosDevelopmentEnv,为联调测试网服务器类型;

\trestKey

Rest服务器渠道密钥Key

开放项目:无需申请,无需配置,AutoSDK自动从配置文件GRestConfig.ini获取


\trestSecurityCode

Rest服务器安全码

开放项目:无需申请,无需配置,AutoSDK自动从配置文件GRestConfig.ini获取

\tassetPath

BL_SDK资源文件的原始目录

如设:/android_assets/blRes/,

1、若传入的是bl资源在Android asset的根目录,须加 /android_assets 前缀标识,如 /android_assets/blRes/

2、若传入本地路径,BL_SDK的资源需由客户端提前拷贝到该目录下

cachePath

缓存目录,存放asset导出文件或日志文件等

如设: /sdcard/navi/data/

备注:目录权限可读可写

userDataPath

用户数据目录,保存用户生成数据

如设:/data/data/com.autonavi.navi/files

备注:目录权限可读可写

\taosDBPath

cookie信息生成路径

如/sdcard/navi/cookie/,配置该路径后

会生成aosinfo.db文件,用于保存cookie信息

async

目前不支持

(由于同步日志的模式GPI日志库会有性能问题) 目前,AutoSDK内部写死为 异步方式

\tmaxFiles

目前不支持


\tmaxFileSize

目前不支持


\trecordCacheMaxFiles

日志文件最大个数,默认BLlog_xxx.log文件最多保留40个。

建议默认就可以。

\trecordCacheMaxFileSize

单个日志文件默认最大字节数据,

默认单个BLlog_xxx.log文件保留最大20M。

建议默认就可以。


成员

二级成员含义

示例说明

dataPath

样式、播报等相关配置存放路径

cfgFilePath

如设:/sdcard/navi/data/

客户端需要做如下步骤:

  1. 将BL SDK aar包里的 assets/blRes/GNaviConfig.xml文件拷贝到/sdcard/navi/data/目录下
  2. 将BL SDK aar包里的 assets/blRes/下的,整个res子目录拷贝到/sdcard/navi/data/目录下

 备注:若res不存在,需要客户端创建

在线TBT数据缓存路径

onlinePath

如设:/sdcard/navi/data/online/

离线地图数据下载存放路径

offlinePath

如设:/sdcard/navi/data/offline/

离线地图3D数据下载存放路径

off3DDataPath  

暂时无效,目前3D数据也是下载至offlinePath

long               hWnd

暂时无效


核心接口

void com.autonavi.gbl.servicemanager.model.BaseInitParam.setIPlatformInterface (IPlatformInterface)

int com.autonavi.gbl.servicemanager.ServiceMgr.initBaseLibs (BaseInitParam baseInitParam, Application app)

int com.autonavi.gbl.servicemanager.initBL (BLInitParam blInitParam, Application app)


说明:函数详情,请复制函数名称到在线API搜索

调用示例

核心关注:diu设备唯一号参数必须配置每台设备不相同(通常为32位),若未配置后台服务请求将出现异常。

package com.autonavi.auto.common;\n\n\nimport com.autonavi.auto.application.CC;\nimport com.autonavi.gbl.util.model.KeyValue;\nimport com.autonavi.gbl.util.model.NetworkStatus;\nimport com.autonavi.gbl.util.observer.IPlatformInterface;\n\nimport java.util.ArrayList;\n\n/**\n * 没有ServerKey的实现接口\n * rest开放平台\n */\npublic class RestPlatformInterface implements IPlatformInterface {\n    @Override\n    public void copyAssetFile(String assetFilePath, String destFilePath) {\n        CommonUtil.copyAssetFile(assetFilePath, destFilePath);\n    }\n\n    @Override\n    public float getDensity(int deviceId) {\n        return CC.getApplication().getResources().getDisplayMetrics().density;\n    }\n\n    @Override\n    public int getDensityDpi(int deviceId) {\n        return CC.getApplication().getResources().getDisplayMetrics().densityDpi;\n    }\n\n    @Override\n    public int getNetStatus() {\n        return NetworkStatus.NetworkStatusWiFi;\n    }\n\n    @Override\n    public ArrayList<KeyValue> getCdnNetworkParam() {\n        ArrayList<KeyValue> keyValues = new ArrayList<>();\n        /**< diu    设备唯一号,android--imei, ios--IDFV */\n        keyValues.add(new KeyValue("diu", AutoConstant.IMEI));\n        /**< client_network_class   获取当前网络状态 */\n        keyValues.add(new KeyValue("client_network_class", "4"));\n        /**< lon\t用户位置——经度 */\n        keyValues.add(new KeyValue("lon", "116.427915"));\n        /**< lat\t用户位置——纬度 */\n        keyValues.add(new KeyValue("lat", "39.902895"));\n        return keyValues;\n    }\n\n    @Override\n    public boolean getAosNetworkParam(ArrayList<KeyValue> arrayList) {\n        /**< diu    设备唯一号,android--imei, ios--IDFV必须设置,从系统获取,若不足32位用零补齐 */\n        arrayList.add(new KeyValue("diu", AutoConstant.IMEI));\n        //autodiv配置,直接读取aar配置\n\n        /**< client_network_class   获取当前网络状态 */\n        arrayList.add(new KeyValue("client_network_class", "4"));\n\n        /**< os   系统类型,例如 LINUX */\n        arrayList.add(new KeyValue("os", "android"));\n\n        /**< dip   产品代码 请求发起方的应用唯一标识, 可严格区分不同应用、不同平台等等,GRestConfig.ini中有配置dip,此函数可以不填写*/\n        arrayList.add(new KeyValue("dip", AutoConstant.dip));\n        return true;\n    }\n\n    @Override\n    public String amapEncode(byte[] strInput) {\n        return new String();\n    }\n\n    @Override\n    public String amapEncodeBinary(byte[] binaryInput) {\n        return new String();\n    }\n\n    @Override\n    public String amapDecode(byte[] bytes) {\n        return new String();\n    }\n\n    @Override\n    public boolean getAosSign(String s, String[] strings) {\n        if (strings.length == 0) {\n            return false;\n        }\n        strings[0] = "";        // 这是个出参,仅包含一个元素,需赋值过去\n        return true;\n    }\n}\n


package com.autonavi.auto.presenter;\nimport android.app.Application;\nimport com.autonavi.auto.BuildConfig;\nimport com.autonavi.auto.common.AutoConstant;\nimport com.autonavi.auto.common.CommonUtil;\nimport com.autonavi.auto.common.RestPlatformInterface;\nimport com.autonavi.auto.common.TBTResReaderImpl;\nimport com.autonavi.auto.utils.AssetUtils;\nimport com.autonavi.auto.utils.FileUtils;\nimport com.autonavi.auto.utils.SpUtils;\nimport com.autonavi.gbl.common.model.TbtCommonControl;\nimport com.autonavi.gbl.common.model.UserConfig;\nimport com.autonavi.gbl.common.model.WorkPath;\nimport com.autonavi.gbl.servicemanager.ServiceMgr;\nimport com.autonavi.gbl.servicemanager.model.ALCGroup;\nimport com.autonavi.gbl.servicemanager.model.ALCLogLevel;\nimport com.autonavi.gbl.servicemanager.model.BLInitParam;\nimport com.autonavi.gbl.servicemanager.model.BaseInitParam;\nimport com.autonavi.gbl.util.model.ErrorCode;\n\nimport java.io.File;\n\n\npublic class InitConfigPresenter {\n\n    //加载引擎\n    static {\n        System.loadLibrary("GSQuirrel");\n        System.loadLibrary("third_party_libs");\n        System.loadLibrary("GPlatformInterface");\n        System.loadLibrary("AutoCrypto");\n        System.loadLibrary("AutoSSL");\n        System.loadLibrary("GComm3rd");\n        System.loadLibrary("mqtt");\n        System.loadLibrary("GNet"); // 网络库\n        System.loadLibrary("GNaviDice"); //引擎\n        System.loadLibrary("Gbl");//bl\n    }\n\n    private Application mContext;\n    private boolean async = false;//true为异步log、false为同步log\n\n    private int baseLibInitResultCode = ErrorCode.AUTO_UNKNOWN_ERROR; // baseLib初始化结果\n    private int initBLResultCode = ErrorCode.AUTO_UNKNOWN_ERROR; // bl初始化结果\n\n    public InitConfigPresenter(Application context) {\n        mContext = context;\n        //拷贝资源文件等\n        // ...\n        initLib();\n        initBL();\n    }\n\n    /**\n     * 初始化基础库\n     */\n    public int initLib() {\n        BaseInitParam param = new BaseInitParam();\n        param.logPath = AutoConstant.BLLOG_DIR;  //日志路径下\n        param.logLevel = ALCLogLevel.LogLevelDebug; // 避免碰撞卡顿,暂调至debug级别\n        param.groupMask = ALCGroup.GROUP_MASK_ALL;\n        param.setIPlatformInterface(pPlatformUtil);\n\n        param.serverType = BuildConfig.serverType;\n\n        param.async = async;\n        param.aosDBPath = AutoConstant.PATH;\n        param.assetPath = "/android_assets/blRes/";\n        param.userDataPath = AutoConstant.PATH;\n        param.cachePath = AutoConstant.PATH;\n        baseLibInitResultCode = ServiceMgr.getServiceMgrInstance().initBaseLibs(param, mContext);\n        if (baseLibInitResultCode != ErrorCode.ErrorCodeOK) {\n            //初始化失败\n        }\n        return baseLibInitResultCode;\n    }\n    \n    /**\n     * 初始化BL\n     */\n    public int initBL() {\n        BLInitParam blInitParam = new BLInitParam();\n        //配置文件路径\n        blInitParam.dataPath.cfgFilePath = AutoConstant.PATH;\n        //离线地图\n        blInitParam.dataPath.offlinePath = AutoConstant.PATH + "data/navi/compile_v2/chn/";   // navi\n        //精品三维地图\n        blInitParam.dataPath.off3DDataPath = AutoConstant.PATH + "data/navi/compile_v2/chn/"; //\n        //云加端存放路径\n        blInitParam.dataPath.onlinePath = AutoConstant.PATH + "online/";\n\n        FileUtils.createDIR(blInitParam.dataPath.offlinePath);\n        FileUtils.createDIR(blInitParam.dataPath.onlinePath);\n\n        initBLResultCode = ServiceMgr.getServiceMgrInstance().initBL(blInitParam, mContext);\n\n        if (initBLResultCode != ErrorCode.ErrorCodeOK) {\n            // initBL失败\n        }\n        return initBLResultCode;\n    }\n\n    //rest平台\n    RestPlatformInterface pPlatformUtil = new RestPlatformInterface();\n}\n


","body_lake":null,"pub_level":null,"status":"0","updated_at":"2022-04-06 07:01:12","deleted_at":null,"nameSpace":"mnlcaa/v610","browseCount":418,"collectCount":0,"estimateDate":18,"docStatus":0,"permissions":true,"overView":false}}