• 个推集成方式


    在这里插入图片描述

    maven集成

    吧依赖放到maven项目的pom.xml里,顺便增加一个repository

    jar包安装

    先是jar包安装,先下载sdk开发工具包
    之后导入依赖jar包,需要导入getui_service_sdk\资源下的所有jar包

    android不同渠道用到的依赖不同,个推sdk分为谷歌版和国内版,在同一个项目里可以根据渠道分别加载两个sdk
    在gradle里定义两个渠道
    一个是谷歌渠道,一个是国内渠道
    https://blog.csdn.net/qq_38373150/article/details/102653296
    之后是依赖里引入文件,导入方式是渠道名+compile
    看到个推

    api引入和implementation引入的区别&&如何引入同项目的其他模块

    https://blog.csdn.net/u011288271/article/details/109049282

    因为是维护之前的项目,之前是使用jar包的方式引入的sdk,所以要先移除再重构

    jar包集成:
    Android Studio:https://docs.getui.com/getui/mobile/ott/androidstudio/
    IDEA:https://docs.getui.com/getui/server/java/guide/

    AS jar包集成

    打开项目,为了兼容android9.0先在application节点添加android:usesCleartextTraffic=“true”
    个推AS的sdk资料包里有接入的文档,以及资源文件,layout里有个推需要的布局文件以及so文件夹,里面有各种cpu型号的so库

    导入sdk

    吧个推资料包的资源文件目录下的GTSDK-OTT-xxx.jar复制到模块目录的libs文件夹里,之后在build.gradle里添加依赖引用

    之后导入个推的so库
    拷贝到主模块/src/main/jniLibs对应的架构目录,在其他路径在模块的build.gradle里正确设置一下so路径

    sourceSets {
        main {
          jniLibs.srcDirs = ['libs']
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    导入布局文件

    https://docs.getui.com/getui/mobile/ott/androidstudio/
    为了支持展开样式和浮动通知,必须使用最新版的xml布局文件
    配置个推参数,使用manifestPlaceholders配置相关参数
    之后在manifest里配置个推sdk组件,服务
    之后添加权限声明
    然后导入通知栏图标
    为了避免个推被混淆
    如果工程使用了
    初始化需要在应用的activity里导入PushManager类

    demo

    下载demo的话,jar包demo是OTT版本

    最后对比发现之前使用的是googleplay集成方式,先下载sdk,之后里面有手动接入,maven接入和接口文档以及demo

    google play手动集成

    先创建应用,之后获取appid,key和secret
    之后添加个推sdk
    最新版的so是libgetuiext3.so,需要把之前的libgetuiext2.so和libgetuiext.so删除
    为了兼容android9,让使用清空文字交通的设置为true
    看看,先是res下的raw下导入keep.xml,之后导入so库,之后导入getuiSDK.jar文件
    然后配置
    项目里包含的其他so库只支持几种cpu架构,应该根据其他so库支持的cpu架构的最小集配置,如果特定架构上不能支持所有so库,可能导致程序运行异常
    之后配置个推的应用参数
    之后添加权限声明
    之后配置自定义推送服务
    导入通知栏图标
    之后是混淆配置
    资源精简配置
    之后是使用了andresguard进行资源精简,可以添加白名单配置
    使用andresguard方式

    bug

    版本替换的话可能报jar文件重复定义的错,实际上是调试包和release包里还有文件的原因,可以在项目里搜索之前的jar包版本,一一替换
    替换之后发现连32位个推也不会初始化intent了

    所以先清除之前的各种引用
    之后使用maven集成

    android.overridePathCheck=true

    bug

    发现之前为了适配google play 使用的是google play的jar包引入
    这个是要先下载它sdk包,里面才有使用说明
    demo项目包因为有中文所以会报错,改一下名字,运行的时候一定要把appid,appkey和app secret填上
    打包成64位之后发现手机上是正常运行的

    adb devices
    adb -s 设备名 shell ps|findstr zygote
    
    
    • 1
    • 2
    • 3

    应用启动后自己搜索一下自己的applicationid是不是在64位应用里

    在这里插入图片描述

  • 相关阅读:
    秋招面试题系列- - -Java工程师(四)
    Elasticsearch
    C#根据任意不重复的数组产生一个连续的新数组且最短,其中新数组最大数和者最大数+1不在该任意数组中
    备战2023秋招,应届生应做好哪些准备
    Linux下时间相关接口
    黑马JVM总结(十九)
    MySQL (2)
    redisson有几种分布式算法
    优优嗨聚集团:餐饮发展与房地产的关联:一种强效应的探索
    Vue封神之路(2.) Vue的基本使用及单向数据绑定
  • 原文地址:https://blog.csdn.net/weixin_46045444/article/details/124151527