关于android:airasia-Superapp-×-HMS-Core便捷出行悦享全程

2023年5月9日-5月11日,HUAWEI P60系列及旗舰产品发布会在欧洲德国、中东非阿联酋、亚太马来西亚、拉美墨西哥陆续举办,为消费者带来高端影像旗舰HUAWEI P60 Pro及系列全场景智能新品。其中在亚太站,还传递了一个重要音讯:2023年6月30日之前,购买HUAWEI P60系列及折叠旗舰HUAWEI Mate X3的用户,可间接到“My HUAWEI”利用,获取亚航超级应用程序(以下称为airasia Superapp),支付超优惠的酒店折扣以及乘车折扣!具体权利在亚太各国可能有所区别。 airasia Superapp是Capital A的一站式游览平台业务,通过Superapp和airasia.com 网站为消费者提供超过15条产品线和服务,其中包含航班和酒店预订、乘车等。 自2021年起,airasia Superapp上架华为利用市场触达海量华为设施用户,同时通过HMS Core出行行业解决方案,在打车服务层面为终端用户带来便捷、晦涩的体验。 HMS Core地图服务为airasia Superapp提供丰盛的地图元素,以及个性化的交互方式如POI选中、地图放大/放大,并反对自定义地图绘制,让地图出现更加清晰,乘客、司机地位更加明确。同时,可依据实时路况信息,高效提供驾车、骑行、步行等多种出行形式的智能路线布局。此外,通过HMS Core定位服务,airasia Superapp实现首次定位的高精度与毫秒级响应速度,基于GNSS、Wi-Fi等多种混合定位模式,解决城市周边地区或高楼密集地区的定位漂移不准问题。HMS Core出行行业解决方案,让airasia Superapp乘客和司机不会因为地位误差而错过,乘客体验精准打车的同时,司机的接单率也一直晋升。 除HMS Core之外,airasia Superapp以后已开始与鲸鸿动能广告(Petal Ads)进行单干,置信在Petal Ads丰盛的广告资源及精密的用户画像加持之下,airasia Superapp将在区域内实现更进一步的业务增长。 越来越多亚太本地利用通过与HMS Core携手单干,一起摸索在应用服务、AI、图形图像等方向的技术,为终端用户提供高质量的体验和服务,成为像airasia Superapp一样受消费者青睐的热门利用。 理解更多详情>> 拜访HMS Core 联盟官网 获取HMS Core 开发领导文档 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

May 19, 2023 · 1 min · jiezi

关于android:MobTech-秒验助力预热618

618年中大促是电商行业的一场重要的购物节,各大平台和品牌都会推出各种优惠活动和营销策略,吸引消费者的注意力和购买力。在这个竞争强烈的市场环境中,如何进步用户的注册和登录体验,升高验证老本,减少用户的信任感和忠诚度,是每个商家都须要思考的问题。 秒验的劣势秒验整合了三大运营商独有的数据网关验证能力,实质上晋升了短信验证码的用户体验,可能用于用户注册、登陆等场景,可实现用户无感知校验,具备操作平安、便捷、低时延的特点。相比于传统的短信验证码或其余验证形式,秒验有以下几个劣势: 进步用户体验:秒验能够实现一键验证登录,无需用户输出短信验证码或其余信息,节俭了用户的工夫和精力,进步了用户的满意度和留存率。同时,秒验也防止了短信验证码可能呈现的黑名单、通道拥挤、提早发送等问题,保障了验证的顺畅性和可靠性。升高验证老本:秒验能够无效升高商家的验证老本,因为秒验只有在验证胜利后才会计费,而短信验证码则是按条计费,无论是否胜利。此外,秒验也能够缩小商家在验证方面的技术开发和保护老本,因为秒验提供了欠缺的SDK和技术支持,不便商家疾速集成和应用。减少用户信任感:秒验能够无效避免短信嗅探等平安危险,保障用户账户平安。秒验基于芯片和PKI非对称加密算法进行数据传输和认证,确保数据不被篡改或泄露。同时,秒验也符合国家相干法律法规要求,在获取用户手机号码前会征得用户批准,并且不会收集和存储用户隐衷信息。秒验的利用场景秒验能够利用于多种场景中,次要包含以下几种: 用户注册:秒验能够帮忙商家疾速获取新用户,并且进步新用户的转化率。通过一键验证手机号,能够简化用户注册流程,缩小用户散失,并且减少用户对商家品牌的认知度和好感度。用户登录:秒验能够帮忙商家晋升老用户的复购率,并且加强老用户的忠诚度。通过一键验证手机号,能够不便用户疾速登录,并且防止因为遗记明码或验证码等问题而导致登录失败或放弃购买。平安校验:秒验能够帮忙商家加强账户安全性,并且缩小平安投诉。通过一键验证手机号,能够作为批改明码、找回明码、绑定邮箱等操作前的平安校验环节,并且避免因为短信验证码被嗅探或盗用而导致账户被盗或信息泄露。秒验在以下场景中能够利用自身技术能力助力618年中大促流动: 提前报名参加平台流动:各大平台都会在618年中大促流动期间推出各种流量权利和补贴政策,例如京东618年中大促流动就包含搜寻举荐专区报名、平台满减报名、品牌专享报名等多种流动。商家应该提前报名参加这些流动,并且依据平台要求设置商品价格、库存、运费等信息。同时,在商品题目、详情页、店铺首页等地位增加618年中大促相干标识和横幅,并且配合平台进行宣传推广。秒验晋升用户注册和登录体验:618年中大促,用户的购买志愿和购买频率都会减少,因而商家应该利用秒验晋升用户注册和登录体验,升高用户散失,进步转化率和客单价。通过秒验,商家能够实现一键验证手机号,无需用户输出短信验证码或其余信息,节俭了用户的工夫精力,进步了用户的满意度和留存率。同时,秒验也能够防止短信验证码可能呈现的黑名单、通道拥挤、提早发送等问题,保障了验证的顺畅性和可靠性。秒验减少用户信任感:在流动期间,用户的安全意识和隐衷保护意识也会加强,商家应避免用户散失,进步复购率和举荐率。而秒验能够无效避免短信嗅探等平安危险,保障用户账户平安。秒验基于芯片和PKI非对称加密算法进行数据传输和认证,确保数据不被篡改或泄露。并且秒验符合国家相干法律法规要求,在获取用户手机号码前会征得用户批准,不会收集和存储用户隐衷信息。 结语秒验(一键登录注册)是一种运营商网关取号的服务,能够实现一秒验证手机号,进步注册转化率,升高验证老本。秒验反对三大运营商号码认证,避免短信嗅探等平安危险。在本文中,咱们介绍了秒验的基本原理、劣势、场景、交互过程和常见的问题,并且给出了一些利用秒验助力618年中大促流动的倡议。

May 19, 2023 · 1 min · jiezi

关于android:MobPush-Flutter平台插件

集成筹备注册账号应用PushSDK之前,须要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情能够点击查看注册流程 MobPush后盾配置注册MobTech账号后,须要在MobTech后盾进行相干信息的配置,详情能够点击查看具体配置信息 MobPush流程图 Flutter 插件导入这是一个基于 MobPush 性能的扩大的 Flutter 插件。应用此插件可能帮忙您在应用 Flutter 开发利用时,疾速地实现推送性能。 在pubspec.yaml文件中退出上面依赖 dependencies: mobcommonlib: mobpush_plugin:而后执行:flutter packages get 导入package 在你的dart工程文件中,导入上面头文件,开始应用 import 'package:mobcommonlib/mobcommonlib.dart';import 'package:mobpush_plugin/mobpush_plugin.dart';Android端配置配置Maven在我的项目根目录的build.gradle中增加以下代码: buildscript { repositories { // 配置Mob Maven库 maven { url "https://mvn.mob.com/android" } // 配置HMS Core SDK的Maven仓地址。(集成华为厂商须要增加) maven { url 'https://developer.huawei.com/repo/'} } ... } dependencies { ... // 集成MobPush classpath "com.mob.sdk:MobSDK2:+" }}配置引入在 /android/app/build.gradle 中增加以下代码: // 导入MobSDKapply plugin: 'com.mob.sdk'配置依赖在我的项目的/android/app/build.gradle中增加: MobSDK { appKey "您的MobTech平台appKey" appSecret "您的MobTech平台appSecret" //配置MobPush MobPush { //配置厂商推送(可选配置,不须要厂商推送可不配置,须要哪些厂商推送只需配置哪些厂商配置即可) devInfo { //配置小米厂商推送 XIAOMI { appId "您的小米平台appId" appKey "您的小米平台appKey" } //配置华为厂商推送 HUAWEI { appId "您的华为平台appId" } //配置魅族厂商推送 MEIZU { appId "您的魅族平台appId" appKey "您的魅族平台appKey" } //配置FCM厂商推送 FCM { //设置默认推送告诉显示图标 iconRes "@mipmap/default_ic_launcher" } //配置OPPO厂商推送 OPPO { appKey "您的OPPO平台appKey" appSecret "您的OPPO平台appSecret" } //配置VIVO厂商推送 VIVO { appId "您的VIVO平台appId" appKey "您的VIVO平台appKey" } } }}增加混同代码在我的项目中增加如下混同代码 ...

May 18, 2023 · 3 min · jiezi

关于android:批量通话记录生成器模拟通话记录生成器通话记录生成器安卓版下载最新版本

在通话记录生成器当中,铁牛通话记录生成器,是能够在线一键批量生成通话记录app软件,可选通话时间范畴,可选通话时间长度,可选通话拨号类型。上面我写个亲测的操作教程分享给大家,以便有个大体的逻辑思路,节约一些理解的工夫和精力,当然了这个理解也是无限的。想更多具体钻研理解它的敌人,能够关上你的手机浏览器上百度搜寻一下,铁牛通话记录生成器。 简略的五步操作就能够应用通话记录生成器app。 第一步操作:批量放入你的指标号码进来铁牛通话记录生成器。也就是想生成通话记录的那些号码。 第二步操作:抉择通话产生工夫的范畴。也就是过来某个时间段产生通话记录的工夫范畴。 第三步操作:抉择通话的工夫长度。也就是每个号码产生了多长时间的通话,比方一分钟之内,三到五分钟等等。 第四步操作:抉择生成通话记录的类型。能够抉择,已拨电话,已接电话,拨出未接,拨进未接等四种通话类型可供选择,默认抉择已拨出去的电话。 第五步操作:在铁牛通话记录生成器上,点击“生成通话记录”按钮,就能够一键批量在你的通话里生成虚构通话记录。 关键词:通话记录生成器,通话记录生成器app,通话记录生成器安卓版下载,手机通话记录生成器app,一键生成通话记录,手机通话记录生成器下载,虚构通话记录生成器,通话记录生成器安卓版下载最新版本,虚构通话记录生成器,通话记录生成器最新版,通话记录生成器app软件下载,通话记录生成器,手机虚构通话记录生成器,批量通话记录生成器,通话记录生成器安卓版下载app,通话记录生成器安卓版,一键生成100个通话记录,手机通话记录生成器在线,通话记录生成器下载。

May 18, 2023 · 1 min · jiezi

关于android:FAQ视频编辑服务常见问题及解答

Q1问题形容1、 拜访贴纸等素材的时候提醒“网络异样,请重试”怎么办? 2、 应用AI能力时,提醒“errorCode:20124 errorMsg:Method not Allowed”? 解决方案请做以下查看: 1、 在代码中查看鉴权信息是否已设置。如果未设置,能够通过api_key或Access Token来设置,详情请查看“1.设置利用的鉴权信息”章节。 2、 查看视频编辑服务开关是否已开启。如果未开启,能够抉择在“开发者联盟”或“AppGallery Connect”中进行开启,详情请查看“关上相干服务”章节。开启后受缓存等影响,需期待一段时间才会失效。 3、 查看利用的签名证书指纹信息是否与AppGallery Connect中利用的签名证书指纹配置的统一,如果不统一或未配置,能够依据“配置签名证书指纹”章节进行配置,受缓存等影响,新配置的签名证书需期待一段时间才会失效。 4、查看素材数据是否已编排,请参见“编排素材”章节。 5、应用AI能力中的“动静图片、一键微笑”性能时,须要实现相干性能申请,详情请查看“性能申请与额度调整”章节。 6、如果问题仍然存在,请提供您的具体日志及AppId。 Q2问题形容获取贴纸、模板等资源数据时,栏目名称显示101或空白。 解决方案请执行如下操作后,从新尝试: 1、在控制台中清空栏目信息; 2、初始化栏目; 3、卸载利用重新安装,进行测试。 控制台门路: 登录AppGallery Connect网站,点击“我的我的项目”,抉择您的我的项目进入,在左侧导航栏“增长”下抉择“视频编辑服务”->“利用内容经营”->“栏目编排”。 Q3问题形容应用原子能力SDK中的AI算法专属滤镜时,收不到回调且控制台打印如下信息: E/HVEExclusiveFilter: Failed resolution of: Lcom/huawei/hms/videoeditor/ai/imageedit/AIImageEditAnalyzerSetting$Factory; 起因剖析应用专属滤镜 AI能力时,须要增加对应能力的依赖,如果未增加会提醒此谬误。 解决方案依据集成HMS Core SDK指南,集成专属滤镜依赖。 专属滤镜依赖: // 专属滤镜 implementation 'com.huawei.hms:video-editor-ai-common:1.9.0.300' implementation 'com.huawei.hms:video-editor-ai-imageedit:1.3.0.300' implementation 'com.huawei.hms:video-editor-ai-imageedit-model:1.3.0.300'相干指南请点击链接查看。 Q4问题形容应用原子能力SDK,将视频文件增加到泳道后,调用getSize和getPosition办法时,获取不到值,返回null。 起因剖析调用get办法时,资源地位还没有计算实现导致。 解决方案在将视频文件增加到泳道后,能够应用HuaweiVideoEditor#seekTimeLine办法触发资源地位计算。seekTimeLine属于异步操作,能够在回调中获取或设置Size和Position。 以下示例供参考: // 在增加资源之前,须要指定预览窗口HuaweiVideoEditor.setDisplay(videoContentLayout);指定预览窗口可查看指南【初始化HuaweiVideoEditor运行环境】。 // 向视频泳道中增加资源HVEVideoAsset mHveVideoAsset= hveVideoLane.appendVideoAsset(sourceFile.getAbsolutePath());mEditor.seekTimeLine(0, new HuaweiVideoEditor.SeekCallback() { @Override public void onSeekFinished() { Log.d(TAG, "onSeekFinished: size:" + mHveVideoAsset.getSize() + ", position: " + mHveVideoAsset.getPosition()); }});理解更多详情>> ...

May 18, 2023 · 1 min · jiezi

关于android:秒验-手机号码置换接口

性能阐明提交客户端获取到的token、opToken等数据,验证后返回手机号码调用地址POST http://identify.verify.mob.com/auth/auth/sdkClientFreeLogin申请头Content-Type :application/json入参阐明字段 类型 阐明 必传 appkey String app标识 Y token String 客户端的token Y opToken String 客户端返回的运营商token Y operator String 客户端返回的运营商,CMCC:中国移动通信, CUCC:中国联通通信, CTCC:中国电信 Y sign String 签名(MD5(所有参数应用key的正序,通过a=b&b=c+appSecret组成)) Y timestamp long 以后工夫戳(毫秒) Y md5 String APK的md5签名,例:e4caa1a08ba0570b5c1290b1a0bc9252 N 加密示例参数"appkey" -> "2f2d7j9wf8a40""opToken" -> "f630dwff2f8f209c60a6449cf971ad50b3e83f4620a1536252457229836325""operator" -> "CUCC""token" -> "0:AAAAhAAAAIAIFOEDCVObiS1Pdyogg4JQw5Su4ce9rl/QVDaqKlcGDCzBssmrB3dYL3HcnNG9Gj7IzhiB/cRJF221cELTGHRiFGAjpGpjipkw/EbnoFuxjp3TPAhvprf/vqWm9dmUQCJ7P/+twKy5o5Y9XBBpD+W/jVPX/WbIQofYg3YGwAAAPDTY7g1X3rL326Dnlsifj/UDjoZ0Ftdh8qWG+ofn0P41bbO6q88id06vkU2x2eUEOb1RggqYt+BLHyG3PoLIC0AMGoUcTVyCcGYq15j+ZS23qiA2SLRYgwvvhD3N+HKTSWEPmYQDUKls5fckyQGW6x6yGB71NDUqwntBdQxwmT6W5NG379KyvPwRkZSN4cyJ29HugMMTx/0F9nF6YVgEogEHOms515lQ7f3TJqTidsVdIehQcDb2FdXnCJUjnOJTK4RWRHp9IvTxwXgmsT7WzkwWuSe/12sEx8Zdk2U66//nqgJ5c1FDbuHsqGlKA8fYyo=""timestamp" -> 1655190952281"appSecret" -> "9abee316611wd9ff607feb9f2c496338"排序后果appkey=2f2d7j9wf8a40&opToken=f630dwff2f8f209c60a6449cf971ad50b3e83f4620a1536252457229836325&operator=CUCC&timestamp=1655190952281&token=0:AAAAhAAAAIAIFOEDCVObiS1Pdyogg4JQw5Su4ce9rl/QVDaqKlcGDCzBssmrB3dYL3HcnNG9Gj7IzhiB/cRJF221cELTGHRiFGAjpGpjipkw/EbnoFuxjp3TPAhvprf/vqWm9dmUQCJ7P/+twKy5o5Y9XBBpD+W/jVPX/WbIQofYg3YGwAAAPDTY7g1X3rL326Dnlsifj/UDjoZ0Ftdh8qWG+ofn0P41bbO6q88id06vkU2x2eUEOb1RggqYt+BLHyG3PoLIC0AMGoUcTVyCcGYq15j+ZS23qiA2SLRYgwvvhD3N+HKTSWEPmYQDUKls5fckyQGW6x6yGB71NDUqwntBdQxwmT6W5NG379KyvPwRkZSN4cyJ29HugMMTx/0F9nF6YVgEogEHOms515lQ7f3TJqTidsVdIehQcDb2FdXnCJUjnOJTK4RWRHp9IvTxwXgmsT7WzkwWuSe/12sEx8Zdk2U66//nqgJ5c1FDbuHsqGlKA8fYyo=拼接appSecretappkey=2f2d7j9wf8a40&opToken=f630dwff2f8f209c60a6449cf971ad50b3e83f4620a1536252457229836325&operator=CUCC×tamp=1655190952281&token=0:AAAAhAAAAIAIFOEDCVObiS1Pdyogg4JQw5Su4ce9rl/QVDaqKlcGDCzBssmrB3dYL3HcnNG9Gj7IzhiB/cRJF221cELTGHRiFGAjpGpjipkw/EbnoFuxjp3TPAhvprf/vqWm9dmUQCJ7P/+twKy5o5Y9XBBpD+W/jVPX/WbIQofYg3YGwAAAPDTY7g1X3rL326Dnlsifj/UDjoZ0Ftdh8qWG+ofn0P41bbO6q88id06vkU2x2eUEOb1RggqYt+BLHyG3PoLIC0AMGoUcTVyCcGYq15j+ZS23qiA2SLRYgwvvhD3N+HKTSWEPmYQDUKls5fckyQGW6x6yGB71NDUqwntBdQxwmT6W5NG379KyvPwRkZSN4cyJ29HugMMTx/0F9nF6YVgEogEHOms515lQ7f3TJqTidsVdIehQcDb2FdXnCJUjnOJTK4RWRHp9IvTxwXgmsT7WzkwWuSe/12sEx8Zdk2U66//nqgJ5c1FDbuHsqGlKA8fYyo=9abee316611wd9ff607feb9f2c496338计算MD5后果sign -> 3f1991b27b1c86a32e661eabdd3d1f5a申请示例curl --location --request POST 'http://identify.verify.mob.com/auth/auth/sdkClientFreeLogin' \--header 'Content-Type: application/json' \--data-raw '{"token":"0:AAAAhAAAAIAIJn3PvTUUJ94umGqPmZCFtprF5Pg7uCxb+Opp+JtZrHIX3yxVOGEHJQLHuRLU1hlTbYyxCMfW53fuck6OL1X+01qdf+NpTVj1ApmQzapKWFB3DEPNNdyad8HwxZY/ZGWcch0Njy+Pb0TgqMwAytBWKu5vlvN9LRoWw/6F3K4BGgAAAPDHlbG1uFKewi7J1g3d6tAor/kIHG0A8csscrESYVfmVYzB6RBfQWfwDpZIYLrXOuSFdWP3bqKbEyIiqvSeY3ktxSus2lUdD6MzwYo1aXJ6oALEW/A07Qx5/3S6ClSmtGrHuzDnC6JCsmHEQWR7S2wNLSojS95Zd91AC2gpqV5tmKEaVGDc827JVEHXFX6Zr5d0pNmBHLS0b67BrNfG4v0qSgcf/OL3a1xOQVieqUDbrAPiNF7Q2wifCbj0FQyIt5+LPpOkqKDbYff21WinJMTOuOMoJcqOhrI1gUEmnHE/ZU8ZZXN52Kffd+Pk7aR7MMU=","opToken":"a53c2dc92083cb1375218a0f1dd35e0050bb26e40ba0a1536204920384995379", "appkey": "2f2d7a68f8a40", "operator": "CUCC", "sign": "576ec00ac6ad80a2d0a92872d748e82b", "timestamp": 1655094782181}'响应示例申请胜利 { "error": null, "res": "ZfukzNuB5oKbxBKxK9MoYFzr1IDZ0Z/i+xLYyq/JCAmi24DPYHdGeUqxE6OjQuP3VY1c76CyfoU=", "seqid": "456484936150429696", "status": 200}申请失败 ...

May 18, 2023 · 2 min · jiezi

关于android:MobTech-ShareSDK助力预热618

618是中国最大的电商购物节之一,每年都吸引了有数的消费者和商家参加其中。在这场强烈的竞争中,商家如何利用社交平台来晋升用户的参与度和转化率,从而实现更大的商业增长呢?本文将介绍ShareSDK这一社会化登录分享组件,它能够帮忙商家实现疾速、便捷、高效的社交营销,并通过数据分析来优化经营成果。 ShareSDK是什么?ShareSDK是一款由MobTech开发的社会化登录分享组件,已为60万开发者节俭96%开发工夫,提供40+支流平台的分享与受权等社会化性能,成果稳固,残缺清晰统计分享数据。ShareSDK能够轻松地集成到Android、iOS、Unity等开发平台中,只需几行代码就能够实现一键分享、第三方登录、短链转换、口令分享、闭环分享等性能,让用户能够疾速地将商品或流动信息分享到不同的社交平台,吸引更多的流量和关注。 ShareSDK能做什么?ShareSDK可能帮忙商家在618期间实现以下几个方面的社交营销: 一键分享:让用户不便地将本人喜爱的商品或流动信息分享给好友或朋友圈,减少曝光度和口碑。反对富媒体内容(图文、音乐、视频等)、截屏和小程序一键疾速分享。第三方登录:用户能够疾速地应用本人罕用的社交账号登录App,方便快捷,无需注册和绑定手机号,进步用户的注册率和留存率。反对微信、抖音、QQ、微博、Facebook、Twitter等寰球40+支流社交平台账号登录App。短链转换:将分享的链接轻松转换成自定义短链,进步用户点击率;实时统计回流率,帮忙客户精细化经营。口令分享:联合MobLink的口令分享模式,让分享回流多一种抉择。用户能够通过复制或扫描口令来关上App或指定页面,无需装置App或关上浏览器,进步用户的体验和转化。闭环分享:联合MobLink,实现疾速分享,疾速唤醒,全新分享形式,赋予了每一条被分享进来的链接转回App的能力。用户能够通过点击链接间接跳转到App外部的指定页面,无需从新关上App或从新搜寻内容,进步用户的体验和留存。

May 17, 2023 · 1 min · jiezi

关于android:百度工程师移动开发避坑指南内存泄漏篇

作者 | 启明星小组 在日常编写代码时难免会遇到各种各样的问题和坑,这些问题可能会影响咱们的开发效率和代码品质,因而咱们须要一直总结和学习,以防止这些问题的呈现。接下来咱们将围绕挪动开发中常见问题做出总结,以进步大家的开发品质。本系列文章讲围绕内存透露、语言开发注意事项等开展。本篇咱们将介绍Android/iOS常见的内存透露问题。 一、Android端内存透露(Memory Leak),简略说就是不再应用的对象无奈被GC回收,占用内存无奈开释,导致利用占用内存越来越多,内存空间有余而呈现OOM解体;另外因为内存可用空间变少,GC更加频繁,更容易触发FULL GC,进行线程工作,导致利用卡顿。 Android应用程序中的内存透露是一种常见的问题,以下是一些常见的Android内存透露: 1.1 匿名外部类匿名外部类持有外部类的援用,匿名外部类对象泄露,从而导致外部类对象内存透露,常见Handler、Runnable匿名外部类,持有内部Activity的援用,如果Activity曾经被销毁,然而Handler未解决完音讯,导致Handler内存泄露,从而导致Activity内存泄露。 示例1: public class TestActivity extends AppCompatActivity { private static final int FINISH_CODE = 1; private Handler handler = new Handler() { @Override public void handleMessage(@NonNull Message msg) { if (msg.what == FINISH_CODE) { TestActivity.this.finish(); } } }; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); handler.sendEmptyMessageDelayed(FINISH_CODE, 60000); }}示例2: public class TestActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); new Handler().postDelayed(new Runnable() { @Override public void run() { TestActivity.this.finish(); } }, 60000); }}示例1和示例2均为简略计时一分钟敞开页面,如果页面在之前被被动敞开销毁,Handler中仍有音讯期待执行,就存在到Activity的援用链,导致Activity销毁后无奈被GC回收,造成内存泄露;示例1为Handler匿名外部类,持有内部Activity援用:主线程 —> ThreadLocal —> Looper —> MessageQueue —> Message —> Handler —> Activity;示例2为Runnable匿名外部类,持有内部Activity援用:Message —> Runnable —> Activity. ...

May 17, 2023 · 3 min · jiezi

关于android:基于Android实现的减肥塑身平台APP

拜访【WRITE-BUG数字空间】_[内附残缺源码和文档] 摘要人们日益关注本身衰弱与美,好的身材更是所有人谋求的指标,但塑造完满的身材塑造非易,对于体型瘦削的人来说更是难上加难。尽管目前国内有微信静止,跟我练腹肌等利用,然而这些利用不足个性化。论文以减肥健身为目标,依据健身者特点与健身过程功效,开发自适应的塑型零碎。论文采纳JAVA语言 ,MySQL数据库, Tomcat服务器 ,设计并实现制订自适应打算,摄入收入热量查问,身材变动,一分钟理解本人等性能。心愿通过该平台让每一个都能实现减肥瘦身,晋升本人的身体素质。 关键词:减肥塑身,Android ,JAVA,MySQL ,tomcat ABSTRACTNowadays, people pay attention to health and beauty day by day. A good figure is the pursuit and goal of all people. However, it is not easy to shape a perfect figure for normal people. To shape a perfect figure is extremely difficult. Although there are APPs like WeChat Sports, Follow Me to Exercise the Abs and so on, most of those APPs lack individuality. This thesis takes weight loss and body building as goals and develops a self-adapting body building system according to body builders’ features and body building effects in the process. The thesis adopts JAVA language, MySQL database and Tomcat server to design and realize the functions of formulating self-adapting plan, query of intake and consumed heat, figure changes, knowing yourself in a minute and so on. It is expected that through this platform,every person can realize weight loss and body building, thus improving physical fitness. ...

May 17, 2023 · 1 min · jiezi

关于android:大数据如何助力营销3产品定位

在市场竞争日益强烈的环境下,产品定位是企业胜利的关键因素之一。产品定位是指依据指标市场和指标消费者的需要、偏好和冀望,确定产品的个性、性能、形象和价值,并与竞争对手的产品进行差异化的过程。产品定位不仅影响产品的设计、开发、生产和推广,也影响消费者的认知、态度和行为。 大数据技术能够为产品定位提供弱小的反对和帮忙。通过收集、剖析和开掘海量的数据,企业能够更精确地理解市场的动静、消费者的需要、竞争对手的策略和本身的劣势,从而制订出更正当、更无效、更有针对性的产品定位计划。具体来说,大数据技术能够在以下几个方面助力产品定位: 市场细分市场细分是指将整个市场划分为具备类似特色或需要的若干个子市场,每个子市场都是一个绝对独立和有后劲的指标市场。市场细分能够帮忙企业更分明地理解市场的构造和规模,更无效地抉择指标市场,更灵便地调整营销策略。 大数据技术能够帮忙企业进行更精准、更粗疏的市场细分。通过对用户的注册信息、购买记录、浏览行为、评估反馈等数据进行分类、聚类、关联等分析方法,企业能够将用户划分为不同的细分市场,每个细分市场都有其特定的特色、需要和后劲。例如,依据用户的性别、年龄、地区、支出、职业、趣味等维度进行细分,或者依据用户的购买频率、购买金额、购买工夫等维度进行细分。这样,企业能够依据不同细分市场的特点,设计出不同的产品或服务,满足不同消费者群体的需要,进步市场占有率和利润率。 以某电商平台为例,该电商平台次要销售服装、鞋子、箱包等时尚类商品,面向的指标市场是年老、时尚、谋求共性的消费者群体。该电商平台通过对用户的注册信息、购买记录、浏览行为、评估反馈等数据进行剖析,将用户划分为不同的细分市场,例如性别、年龄、地区、支出、职业、趣味等。而后,该电商平台依据每个细分市场的特点和需要,推出了不同的产品或服务,例如针对女性用户推出了更多的样式和色彩的服装,针对年老用户推出了更有创意的商品,针对高支出用户推出了更多高质量的商品。 消费者洞察消费者洞察是指对消费者的行为、偏好、心理和情感,以及影响消费者决策的各种因素进行深刻的剖析和了解,从而揭示消费者的实在需要和冀望。消费者洞察能够帮忙企业更精确地把握消费者的需要和动机,更无效地满足消费者的冀望,更无力地影响消费者的认知和态度。 通过对用户的搜索词、点击率、珍藏率、购买率、转化率、留存率等数据进行形容、预测、举荐,企业能够深刻理解用户的偏好和心理,以及影响用户决策的各种因素。依据用户的搜索词能够理解用户的趣味和需要,依据用户的点击率能够理解用户的留神点,依据用户的留存率能够理解用户的反复购买。企业能够依据用户的冀望,通过无效的沟通和传播方式,塑造产品在用户心目中的形象。 再以某电商平台为例,该电商平台利用大数据技术,对用户的搜索词、点击率、珍藏率、购买率、转化率、留存率等数据进行剖析,深刻理解用户的偏好和心理,以及影响用户决策的各种因素。而后,该电商平台依据用户的实在需要,确定了产品的性能、品质、形象和价值。 竞争剖析竞争剖析是指对竞争对手的产品特点、劣势、劣势和市场体现等进行全面的剖析和评估,从而理解竞争对手的策略和动作,以及竞争对手可能采取的应答措施。竞争剖析能够帮忙企业更分明地理解本身的劣势和劣势,更有针对性地制订差异化策略,更无效地抵挡竞争压力。 大数据帮忙企业进行主观实时的竞争剖析,对竞争对手的产品信息、价格信息、销售数据、评估数据、口碑数据等进行比拟、评估、优化,企业能够全面理解竞争对手的产品特点、劣势、劣势和市场体现,以及竞争对手可能采取的策略和动作。依据本身的外围竞争力和差异化劣势,确定产品与竞争对手产品之间的差异化点,并通过突出本身产品的独特性和优越性,博得用户的青眼。 再以某家电商平台为例,大数据技术剖析竞争对手的产品信息、价格信息、销售数据、评估数据、口碑数据等,全面理解竞争对手的策略和动作,以及竞争对手可能采取的应答措施。而后,该电商平台依据本身的外围竞争力和差异化劣势,确定了产品与竞争对手产品之间的差异化点,并通过突出本身产品的独特性和优越性。 总之,大数据技术能够为产品定位提供弱小的反对和帮忙。通过利用大数据技术进行市场细分、消费者洞察和竞争剖析,企业能够更精确地理解市场的动静、消费者的需要、竞争对手的策略和本身的劣势,从而制订出更正当、更无效、更有针对性的产品定位计划,进步产品的竞争力和市场体现。

May 16, 2023 · 1 min · jiezi

关于android:MobLink-创建应用

进入工作台关上MobTech官网,点击右上角登录,抉择“开发者平台”即可进入工作台。 登录实现后如下图,点击工作台,抉择开发者平台即可进入开发者后盾。 实名认证如已实名认证,请跳过本步,间接创立利用。 进入后盾点击创立利用。 如账号未实名认证,则会弹出如下界面,点击立刻开始进行实名认证。 依据本身需要抉择企业或个人身份,填写信息后点击提交认证。 点击提交认证后,零碎会联网主动校验,若信息填写正确,则弹出如下页面,即认证胜利,可进行下一步创立利用。 创立利用点击创立利用按钮,上传利用Logo并填写利用名称,点击确定。 抉择须要应用的SDK产品,点击右下角确认按钮。 点击下一步。 弹出如下接入指南界面后,您可查看页面中的文档进行集成,也能够后续在文档核心查看集成。 滑动页面至底部,点击实现按钮。 页面会主动跳转至开发者后盾利用列表界面,点击刚刚创立的利用,即可获取到AppKey和AppSecret值。

May 16, 2023 · 1 min · jiezi

关于android:机器学习服务语音合成解锁智能养娃新趋势

从翻阅图书绘本到捧着电子书,再到点开手机里的音频APP,随着“互联网+浏览”的逐渐深刻,儿童有声读物越来越受95后父母的欢送,它的呈现令年老父母解脱了为孩子讲故事的辛苦,而且有声读物配音发音更加规范,有助于孩子学习。 通过听儿童有声读物,不仅能让孩子听到乏味的故事减少其理解能力,拓宽知识面,听有声读物还不会对眼睛造成挫伤,所以相较动画家长们更违心让孩子去听儿童有声读物。然而有声读物的配音也引发了家长们的热议,到底什么样的有声读物配音适宜给孩子听呢? 华为机器学习服务语音合成能力采纳深度神经网络合成形式,将文字信息转换为语音输入,让集成该能力的设施、利用闭口谈话,更具共性。 服务劣势反对多语言多音色反对中文、英文、中英文混读合成,更有2种规范男声发音,以及6种规范女声发音可供选择。 语速、音量可调节反对多种参数配置,可依据场景需要对发音人的语速、音量进行调整。 集成形式灵便丰盛反对在线、离线多种调用形式,充沛满足不同场景下的语音合成需要。 利用场景除了儿童有声读物,语音合成还有着更多丰盛的利用场景。 浏览听书应用语音合成技术的浏览类APP,可能为用户提供多种音库的朗诵性能,开释用户的双手和双眼,提供更极致的浏览体验。 资讯播报提供专为新闻资讯播报场景打造的特色音库,让手机、音箱等设施化身业余主播,随时随地为用户播报陈腐资讯。 订单播报可利用于打车软件、餐饮叫号、排队软件等场景,通过语音合成进行订单播报,让您便捷取得告诉信息。 智能硬件可集成到儿童故事机、智能机器人、平板设施等智能硬件设施,使用户与设施的交互更天然、更亲切。 借助华为机器学习服务,人们能够简略便捷地应用本来简单的机器学习能力,助力开发者更快更好地开发各类AI利用。 理解更多详情>> 拜访机器学习服务联盟官网 获取机器学习服务开发领导文档 拜访HMS Core 联盟官网 获取HMS Core 开发领导文档 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

May 16, 2023 · 1 min · jiezi

关于android:LeetCode-周赛-34520230514体验一题多解的算法之美

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 发问。往期回顾:LeetCode 双周赛第 104 场 · 流水的动静布局,铁打的结构化思考周赛概览T1. 找出转圈游戏输家(Easy) 标签:模仿、计数T2. 相邻值的按位异或(Medium) 标签:模仿、数学、结构T3. 矩阵中挪动的最大次数(Medium) 标签:图、BFS、DFS、动静布局T4. 统计齐全连通重量的数量(Medium) 标签:图、BFS、DFS、并查集T1. 找出转圈游戏输家(Easy)https://leetcode.cn/problems/find-the-losers-of-the-circular-game/题解(模仿)简略模拟题。 应用标记数组标记接触到球的玩家,再依据标记数组输入后果: class Solution { fun circularGameLosers(n: Int, k: Int): IntArray { val visit = BooleanArray(n) var i = 0 var j = 1 var cnt = n while (!visit[i]) { visit[i] = true i = (i + j++ * k) % n cnt-- } val ret = IntArray(cnt) var k = 0 for (i in visit.indices) { if(!visit[i]) ret[k++] = i + 1 } return ret }}复杂度剖析: ...

May 15, 2023 · 7 min · jiezi

关于android:MobTech-MobPush助力预热618

618是电商平台的年中大促,各大平台都会推出各种优惠活动和玩法来吸引消费者。在这样的背景下,如何进步用户的购买志愿和转化率,是电商运营者面临的重要挑战。MobPush作为业余收费的推送SDK,提供智能化的推送服务,能够帮忙电商预热购物流动,晋升用户粘性和活跃度,减少订单量和支出。 MobPush的劣势MobPush有以下几个方面的劣势: 抓住限时优惠,在指定时间段内对流动单品另设折扣让利,进步消费者的购买激动。MobPush反对定时推送和周期性循环推送,能够灵便地安顿推送打算,抓住用户的最佳购买机会。智能标签,针对不同场景和用户群体,实现千人千面的精准推送,进步转化率。MobPush反对自定义标签和大数据标签,能够依据用户的趣味、行为、属性等多维度进行细分和个性化推送,晋升用户的满意度和忠诚度。数据统计,剖析用户沉闷时段、留存率、卸载状况等行为数据,制订正当的推送打算和策略。MobPush反对全链路统计和推送后效剖析,能够实时查看每条推送音讯的全渠道、各转化指标数据,以及推送音讯折损起因,为经营提供数据反对和优化倡议。残缺厂商通道,一次集成华为、小米、魅族、OPPO、vivo等厂商推送,进步推送达到率和覆盖率。MobPush反对厂商推送策略和厂商音讯分级,能够实现厂商限额限流后的mob通道补发能力,以及对接厂商通信类音讯和营销类音讯不同条数限度,保障推送成果和合规性。 MobPush的价值MobPush作为业余收费的推送SDK,提供智能化的推送服务,能够帮忙电商预热购物流动,实现以下价值: 晋升用户粘性和活跃度:及时、精确、有价值的推送,减少用户对电商平台的关注度和信任度,促成用户频繁拜访和浏览平台内容,进步用户在平台上的停留时间和参与度。晋升用户购买志愿:针对性、个性化、场景化的推送,满足用户的不同需要和爱好,激发用户的购买欲望和决策力,疏导用户疾速下单和领取,升高用户流失率和跳出率。晋升用户复购率:继续、稳固、有价值的推送,保护用户与电商平台的良好关系,加强用户对平台的青睐和依赖,促成用户再次购买和举荐平台给别人。晋升平台品牌形象:业余、收费、智能化的推送服务,展现平台的技术实力和服务水平,晋升平台在用户心中的品牌形象和口碑,减少平台在市场上的竞争力和影响力。

May 15, 2023 · 1 min · jiezi

关于android:大数据如何助力营销2用户画像

用户画像是指依据用户的数据,构建出用户的特色和趣味,从而对用户进行分类和个性化的过程。用户画像能够帮忙营销人员更无效地触达指标客户,进步营销成果和转化率。 用户画像的价值用户画像的价值次要体现在以下几个方面: 晋升用户体验:用户画像能够让营销人员更好地理解用户的需要和爱好,为用户提供更合乎其冀望的产品、服务和内容,减少用户的满意度和忠诚度。优化营销策略:用户画像能够让营销人员更精准地定位指标客户,制订更适合的营销计划,如抉择更无效的渠道、机会、形式、内容等,进步营销效率和投入产出比。拓展商业机会:用户画像能够让营销人员更深刻地开掘用户的潜在需要和趣味,发现更多的商业机会,如开发新的产品、服务或内容,发明新的价值和收益。用户画像的构建用户画像的构建次要包含以下几个步骤: 数据采集:这一步是获取用户数据的过程,从多种渠道和平台收集用户的根底属性、行为数据、社交数据、生产数据等。数据荡涤:这一步是解决用户数据的过程,去除有效数据、反复数据、异样数据等,保证数据的品质和准确性。数据分析:这一步是开掘用户数据的过程,利用机器学习、自然语言解决、图像识别等技术,提取用户的要害特色和趣味点,生成用户标签和模型。数据利用:这一步是利用用户数据的过程,依据用户标签和模型,实现精准营销和个性化举荐,为用户提供最适宜其需要和爱好的产品、服务和内容。用户画像的优化用户画像的优化次要包含以下几个方面: 更新数据:用户的特色和趣味可能随着工夫、环境、情境等因素发生变化,须要定期更新用户数据,放弃用户画像的时效性和动态性。补充数据:用户数据可能存在缺失、不残缺、不精确等问题,须要一直补充新的数据源,减少用户画像的覆盖度和精度。反馈数据:用户画像可能存在偏差、误差、不匹配等问题,须要一直收集用户的反馈信息,评估用户画像的有效性和准确性。总之,大数据技术能够让用户画像更加全面、精准和动静,为营销提供更无效的根据和策略。

May 12, 2023 · 1 min · jiezi

关于android:短信验证-创建应用

进入工作台关上MobTech官网,点击右上角登录,抉择“开发者平台”即可进入工作台。 登录实现后如下图,点击工作台,抉择开发者平台即可进入开发者后盾。 实名认证如已实名认证,请跳过本步,间接创立利用。 进入后盾点击创立利用。 如账号未实名认证,则会弹出如下界面,点击立刻开始进行实名认证。 依据本身需要抉择企业或个人身份,填写信息后点击提交认证。 点击提交认证后,零碎会联网主动校验,若信息填写正确,则弹出如下页面,即认证胜利,可进行下一步创立利用。 创立利用点击创立利用按钮,上传利用Logo并填写利用名称,点击确定。 抉择须要应用的SDK产品,点击右下角确认按钮。 点击下一步。 弹出如下接入指南界面后,您可查看页面中的文档进行集成,也能够后续在文档核心查看集成。 滑动页面至底部,点击实现按钮。 页面会主动跳转至开发者后盾利用列表界面,点击刚刚创立的利用,即可获取到AppKey和AppSecret值。

May 12, 2023 · 1 min · jiezi

关于android:跑步课程导入能力助力科学训练

HUAWEI Health Kit为开发者提供用户自定义的跑步课程导入接口,便于用户在华为静止衰弱App和华为智能穿戴设施上查看来自生态利用的训练课表,开启迷信、适度的静止训练。 跑步课程导入能力反对生态利用在获取用户的华为帐号受权后,将跑步课程数据写入至华为静止衰弱App,并在已有的华为智能穿戴设施连贯并反对课程导入时,间接将课表推送到设施上,用户能够轻松便捷地投入到迷信的跑步课程训练中,晋升静止体现。 开发者在应用跑步课程导入性能前,请参见申请Health Kit服务实现以下权限的申请: 跑步课程导入对应的Scope权限:https://www.huawei.com/healthkit/location.write Health Kit联盟卡片申请的权限名称:衰弱治理 >打算和工作数据。 具体开发流程如下: 将跑步训练打算导入到华为静止衰弱App并展现。 若须要进行设施下发,能够通过DeepLink跳转到静止衰弱App自定义课程的详情页面,并实现跑步课程主动下发到该设施(须要华为智能穿戴设施反对自定义课程,并已与静止衰弱App绑定)。 阐明:当获取华为静止衰弱App版本号返回的versionCode不低于1300002300 时,可应用DeepLink跳转性能。 示例代码跑步训练打算导入示例代码。 申请示例POSThttps://health-api.cloud.huawei.com/healthkit/v1/trainingplan/workoutsContent-Type: application/jsonAuthorization: Bearer ***x-client-id: ***x-version: ***x-caller-trace-id: ***{ "name": "01:乳酸阈值课程", "description": "总间隔:7.02公里;总工夫:1:19:00;训练负荷:29.7", "actionCombine": [ { "actionList": [ { "name": "Warm up", "describe": "暖身", "target": { "name": "time", "value": 900.0 }, "strength": { "name": "pace", "valueH": 614000.0, "valueL": 614000.0 } } ], "repeatTimes": 1 }, { "actionList": [ { "name": "relax", "describe": "动静舒展", "target": { "name": "time", "value": 300.0 } } ], "repeatTimes": 1 }, { "actionList": [ { "name": "run", "describe": "跑步训练5分钟", "target": { "name": "time", "value": 300.0 }, "strength": { "name": "pace", "valueH": 486000.0, "valueL": 486000.0 } }, { "name": "have a rest", "describe": "缓走或劳动", "target": { "name": "time", "value": 60.0 } }, { "name": "relax", "describe": "动态舒展", "target": { "name": "time", "value": 300.0 } } ], "repeatTimes": 9 } ]}响应示例HTTP/1.1 200 OKContent-type: application/json;charset=utf-8{ "workoutId": "1669019290232", "name": "01:乳酸阈值课程", "description": "总间隔:7.02公里;总工夫:1:19:00;训练负荷:29.7", "actionCombine": [ { "repeatTimes": 1, "actionList": [ { "name": "Warm up", "describe": "暖身", "target": { "name": "time", "value": 900.0 }, "strength": { "name": "pace", "valueH": 614000.0, "valueL": 614000.0 } } ] }, { "repeatTimes": 1, "actionList": [ { "name": "relax", "describe": "动静舒展", "target": { "name": "time", "value": 300.0 } } ] }, { "repeatTimes": 9, "actionList": [ { "name": "run", "describe": "跑步训练5分钟", "target": { "name": "time", "value": 300.0 }, "strength": { "name": "pace", "valueH": 486000.0, "valueL": 486000.0 } }, { "name": "have a rest", "describe": "缓走或劳动", "target": { "name": "time", "value": 60.0 } }, { "name": "relax", "describe": "动态舒展", "target": { "name": "time", "value": 300.0 } } ] } ], "createTime": 1669019290232}DeepLink跳转静止衰弱App实现跑步课程主动导入。 ...

May 12, 2023 · 2 min · jiezi

关于android:MobTech-MobPushTCP通道和共享链路通道

推送SDK为了适应不同的场景和需要,对于一些对音讯及时性、可靠性、自定义性要求高的利用,如即时通讯、社交、游戏等,可能更偏向于应用TCP通道,对于一些对音讯节俭流量、耗电量、兼容性要求高的利用,如新闻、天气、股票等,可能更偏向于应用零碎通道。当然,也有一些利用会同时应用两种通道,依据不同类型的音讯抉择适合的通道进行推送。 自有TCP通道自有TCP通道是指推送SDK通过建设一个TCP长连贯来与客户端设施通信,从而实现音讯的下发和回执。这种通道的长处是能够自定义音讯类型和款式,灵便度高,也能够防止Google服务在国内不可用的问题。然而这种通道的毛病是须要客户端和服务器放弃一个长连贯,会减少客户端的耗电量和流量,而且容易受到手机厂商和清理程序的限度,导致长连贯不稳固,影响音讯的达到率。 推送SDK自有TCP通道是自定义的一套基于UDP的更为简略的二进制网络通信协定。为什么会思考应用UDP协定呢?有以下几个起因: 推送SDK为宽广开发者提供稳固、实时的推送服务,须要可能接受极大的网络累赘压力,会连贯大量的客户端,并且要踊跃保障可疾速响应;对于推送服务来说音讯内容却更多是短消息内容,并非短文,大多相似于短信长度的揭示、告诉、营销内容,能够管制在UDP数据包长度内,不须要进行分包解决;对于PUSH 来说,对数据的达到程序性要求比拟低,不像IM这种交互须要保障音讯的程序。推送SDK依附心跳的机制来保护客户端、路由器、基站、服务端的关系,以此反抗NAT老化问题,以确保UDP链接的套接字保活。NAT老化问题是指因为IP资源的无限以及路由器端口数量无限导致路由器会定期清理不沉闷的连贯记录。推送SDK的心跳包体只有一个字节长度,可能很大的节俭Client的流量,而且对于心跳工夫也能够调整。依据不同网络环境和设施状态,推送SDK会动静调整心跳距离,从而达到最佳的推送成果。 共享链路通道共享链路通道是指一些手机厂商提供的推送服务,如iOS的APNs,Android的FCM等。共享链路通道的劣势是能够利用零碎级别的权限和资源,保障推送音讯的高效达到和低耗电。 推送SDK能够主动适配不同厂商的通道,实现多通道的智能推送。为什么须要对接厂商通道呢?其实这个也是和APP的保活有及大的关系。个别的保活形式包含:利用零碎Service机制、设置过程优先级,升高被零碎 kill 的概率。有以下几种办法: 利用前台服务进步过程优先级。前台服务是指在告诉栏显示一个常驻的告诉,让用户感知到服务的存在,从而进步过程的优先级,使其不容易被零碎杀死。然而这种办法会占用告诉栏的空间,影响用户体验,而且在Android 8.0以上须要创立一个NotificationChannel,否则会报错。利用零碎播送唤醒过程。零碎播送是指在产生特定零碎事件时,零碎会收回播送,通过在 AndroidManifest 中动态注册对应的播送监听器,即可在产生响应事件时唤醒过程。然而从android 7.0开始,对播送进行了限度,而且在8.0更加严格,只有少数几个播送能够动态注册。利用双过程守护进步过程存活率。双过程守护是指创立两个服务别离运行在不同的过程中,通过AIDL进行跨过程通信,当一个服务被杀死时,另一个服务会重新启动它。这种办法能够无效地避免单个过程被杀死,然而如果零碎同时杀死两个过程,就无奈保活了。

May 11, 2023 · 1 min · jiezi

关于android:秒验-创建应用

进入工作台关上MobTech官网,点击右上角登录,抉择“开发者平台”即可进入工作台。 登录实现后如下图,点击工作台,抉择开发者平台即可进入开发者后盾。 实名认证如已实名认证,请跳过本步,间接创立利用。 进入后盾点击创立利用。 如账号未实名认证,则会弹出如下界面,点击立刻开始进行实名认证。 依据本身需要抉择企业或个人身份,填写信息后点击提交认证。 点击提交认证后,零碎会联网主动校验,若信息填写正确,则弹出如下页面,即认证胜利,可进行下一步创立利用。 创立利用点击创立利用按钮,上传利用Logo并填写利用名称,点击确定。 抉择须要应用的SDK产品,点击右下角确认按钮。 点击下一步。 弹出如下接入指南界面后,您可查看页面中的文档进行集成,也能够后续在文档核心查看集成。 滑动页面至底部,点击实现按钮。 页面会主动跳转至开发者后盾利用列表界面,点击刚刚创立的利用,即可获取到AppKey和AppSecret值。

May 11, 2023 · 1 min · jiezi

关于android:鲸鸿动能广告接入如何高效变现流量

广告是App开发者最罕用的流量变现办法之一,当App领有肯定数量用户时,开发者就须要思考如何进行流量变现,帮忙App实现商业可持续增长。 鲸鸿动能流量变现服务是广告服务依靠华为终端弱小的平台与数据能力为开发者提供的App流量变现服务,开发者通过该服务能够在本人的App中获取并向用户展现精美的、高价值的广告内容,并从中取得广告收益。开发者集成鲸鸿动能服务进行广告流量变现时,定向更加精准,广告ROI更高。 为了帮忙开发者实现流量变现,以后华为鲸鸿动能流量变现服务共提供了6种广告模式:Banner广告、原生广告、激励广告、插屏广告、开屏广告和贴片广告。 广告模式1 .Banner广告Banner广告是在应用程序顶部、中部或底部占据一个地位的矩形图片,广告内容每隔一段时间会主动刷新,点击内容时会跳转到广告主的页面。Banner广告的劣势在于长期稳固展现,曝光量大,适宜游戏页、浏览资讯页、工具性能页等用户停留较久或者拜访频繁的页面。 2 .原生广告原生广告是与利用内容融于一体的广告,通过“谐和”的内容出现广告信息,在不毁坏用户体验的前提下,为用户提供有价值的信息,展现模式蕴含图片、文字和视频,反对您自在定制界面。 3. 激励广告激励广告是一种全屏幕的视频广告,用户能够抉择点击观看,以换取相应处分。常见的利用场景有,游戏中玩家因操作失误导致“死亡”,为了取得复活机会,玩家抉择观看弹出的激励广告,玩家在残缺看完广告视频后,取得“复活”处分并持续游戏。 4. 插屏广告插屏广告是一种在利用开启、暂停或退出时以全屏的模式弹出的广告模式。展现机会奇妙避开用户对利用的失常体验,尺寸大,曝光成果好。当利用展现插屏广告时,用户既能够抉择点击该广告,进而拜访其指标网站,也能够将其敞开,并返回利用。 5 .开屏广告开屏广告是一种在利用启动时且在利用主界面显示之前须要被展现的广告。个别是5s展现工夫,广告展现工夫完结后主动进入利用,用户能够点击跳过按钮间接进入主界面。您须要事后为App设计一张开屏默认Slogan图片,确保在未取得到开屏广告之前展现默认Slogan,提供良好的用户体验。 6 .贴片广告贴片广告是一种在视频播放前、视频播放中或视频播放完结后插入的视频或图片广告。视频广告个别是15s, 能够点跳过按钮间接进入视频播放界面,也能够等广告展现完结主动进入视频播放界面。 开发指南开发筹备具体开发筹备请参考华为开发者联盟官网。 利用开发因为文章篇幅无限,具体6种广告模式的现阶段开发指南能够参考官网。 将来HarmonyOS平台鲸鸿动能广告布局计划:无SDK化集成,疾速接入、启动。 零碎API对接计划,免集成SDK 一次接入,多设施部署 降级对立治理,开发者无感知 将来,华为将致力于打造平安、高效、凋敝的HarmonyOS商业化生态。届时会凋谢生态、开发者变现渠道和推广渠道,全方位触达用户,让流量充沛变现;服务API内置OS,无SDK化,多端部署,疾速启动,实现高效集成和运行;HarmonyOS进行权限管控、ID管控、上架监测与巡检,零碎级保障用户集体数据安全。 理解更多详情>> 拜访广告服务联盟官网 获取广告服务开发领导文档 拜访HMS Core 联盟官网 获取HMS Core 开发领导文档 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

May 11, 2023 · 1 min · jiezi

关于android:大数据如何助力营销1市场调研

市场调研是市场营销的重要环节,它能够帮忙企业理解市场的需要、竞争、趋势和机会,从而制订无效的营销策略。在大数据时代,市场调研的办法和工具也产生了变动,利用大数据技术能够使市场调研更加精准、高效和翻新。本文将介绍大数据如何助力市场调研的几个方面。 数据获取市场调研须要获取大量的用户数据,以便进行剖析和利用。用户数据能够从不同的渠道和形式获取,次要分为线下获取和线上获取。线下获取是指通过用户AB测试、焦点访谈、原野调研、用户访谈、用户日志、入户察看等实地办法,间接收集用户的反馈和行为数据。这些办法能够取得较高质量的数据,然而老本较高,样本量较小,难以笼罩全面。线上获取是指通过网上有奖问卷调查、社交媒体剖析、搜索引擎剖析、电商平台剖析等网络办法,间接收集用户的评论、评估、点击、浏览等数据。这些办法能够取得海量的数据,然而品质难以保障,须要进行荡涤和筛选。 大数据技术能够帮忙市场调研从线下和线上两个方面获取更多、更好的数据。一方面,大数据技术能够进步线下数据获取的效率和品质,通过挪动设施、物联网设施、传感器等伎俩,实时收集用户的地位、行为、情感等多维度数据,并进行实时剖析和反馈,进步用户参与度和满意度。另一方面,大数据技术能够扩充线上数据获取的范畴和深度,通过爬虫、API等伎俩,从各种网站、平台、利用等渠道获取用户的评论、评估、点击、浏览等多样化数据,并进行结构化和标准化解决,进步数据的可用性和可比性。 数据分析市场调研须要对已有数据进行统计和展现,以理解市场的现状和特色,这称为描述性剖析。同时,市场调研也须要对将来数据进行推断和预测,以发现市场的法则和趋势,这称为预测性剖析。 市场调研须要更加全面和深刻的数据分析。而大数据技术能够提供更加丰盛和多元的分析方法和工具,如数据仓库、数据挖掘、机器学习、人工智能等,能够对海量简单多模态的数据进行无效地存储、治理、解决和剖析,并生成可视化的报告和图表,以便于了解和交换。并且,大数据技术能够提供更加精确和牢靠的剖析后果和倡议,通过对海量历史和实时数据进行关联、比拟和评估。 数据利用市场调研的数据利用是指将数据分析的后果和倡议利用于企业的决策和治理,以及与内部相干方的沟通和单干。数据利用能够分为外部利用和内部利用。外部利用是指将数据分析的后果和倡议利用于企业本身的产品开发、价格制订、渠道抉择、促销策略等。内部利用是指将数据分析的后果和倡议利用于企业与客户关系、竞争对手、合作伙伴等。 大数据技术能够进步数据利用的实时性和灵活性,通过实时监测和反馈数据,能够及时调整和优化营销策略和口头,并依据不同的情境和场景进行个性化和定制化的数据利用,以适应市场的变动和需要。另一方面,大数据技术能够进步数据利用的价值和影响力,通过利用数据驱动的故事、案例、证据等形式,能够更加无力地传播和展现数据分析的后果和倡议,并激发相干方的认同和口头,以实现市场营销的指标。

May 10, 2023 · 1 min · jiezi

关于android:ShareSDK-创建应用

进入工作台关上MobTech官网,点击右上角登录,抉择“开发者平台”即可进入工作台。 登录实现后如下图,点击工作台,抉择开发者平台即可进入开发者后盾。 实名认证如已实名认证,请跳过本步,间接创立利用。 进入后盾点击创立利用。 如账号未实名认证,则会弹出如下界面,点击立刻开始进行实名认证。 依据本身需要抉择企业或个人身份,填写信息后点击提交认证。 点击提交认证后,零碎会联网主动校验,若信息填写正确,则弹出如下页面,即认证胜利,可进行下一步创立利用。 创立利用点击创立利用按钮,上传利用Logo并填写利用名称,点击确定。 抉择须要应用的SDK产品,点击右下角确认按钮。 点击下一步。 弹出如下接入指南界面后,您可查看页面中的文档进行集成,也能够后续在文档核心查看集成。 滑动页面至底部,点击实现按钮。 页面会主动跳转至开发者后盾利用列表界面,点击刚刚创立的利用,即可获取到AppKey和AppSecret值。

May 10, 2023 · 1 min · jiezi

关于android:MobPush-创建应用

进入工作台关上MobTech官网,点击右上角登录,抉择“开发者平台”即可进入工作台。 登录实现后如下图,点击工作台,抉择开发者平台即可进入开发者后盾。 实名认证如已实名认证,请跳过本步,间接创立利用。 进入后盾点击创立利用。 如账号未实名认证,则会弹出如下界面,点击立刻开始进行实名认证。 依据本身需要抉择企业或个人身份,填写信息后点击提交认证。 点击提交认证后,零碎会联网主动校验,若信息填写正确,则弹出如下页面,即认证胜利,可进行下一步创立利用。 创立利用点击创立利用按钮,上传利用Logo并填写利用名称,点击确定。 抉择须要应用的SDK产品,点击右下角确认按钮。 点击下一步。 弹出如下接入指南界面后,您可查看页面中的文档进行集成,也能够后续在文档核心查看集成。 滑动页面至底部,点击实现按钮。 页面会主动跳转至开发者后盾利用列表界面,点击刚刚创立的利用,即可获取到AppKey和AppSecret值。

May 9, 2023 · 1 min · jiezi

关于android:秒验-运营商SDK错误码

中国移动错误码 阐明 103000 胜利 102507 登录超时(受权页点登录按钮时) 103101 申请签名谬误 103102 包签名/Bundle ID谬误 103108 短信验证码谬误 103109 短信验证码校验超时 103111 网关IP谬误 103119 appid不存在 103211 其余谬误(如有须要请分割Mob技术支持) 103901 短验下发次数已达下限(5次/min,30次/day) 103902 scrip生效 103911 token申请过于频繁,10分钟内获取token且未应用的数量不超过30个 103273 预取号联通重定向(暂不反对联通取号) 105002 挪动取号失败 105003 电信取号失败 105021 已达当天取号限额 105302 appid不在白名单 105313 非法申请 200005 用户未受权(READ\_PHONE\_STATE) 200020 用户勾销登录 200021 数据解析异样 200022 无网络 200023 申请超时 200024 数据网络切换失败 200025 未知谬误个别呈现在线程捕捉异样,请配合异样打印剖析 200026 输出参数谬误 200027 未开启数据网络 200028 网络申请出错 200038 异网取号网络申请失败 200039 异网取号网关取号失败 200040 UI资源加载异样 200048 用户未装置sim卡 200050 EOF异样 ...

May 8, 2023 · 2 min · jiezi

关于android:MobPush-厂商通道SDK集成指南

开发工具:Android Studio 集成形式:Gradle 安卓版本反对:minSdkVersion 19 集成筹备MobPush疾速集成在应用厂商通道之前,请确保您已申请MobTech开发者账号并已依照MobPush疾速集成文档进行集成,本篇文档将默认您已实现该步骤 Mob开发者后盾配置注册MobTech账号后,须要在MobTech后盾进行相干信息的配置,详情能够点击查看具体配置信息 日志调试性能请在AndroidManifest.xml文件中 <application>下增加下面配置,在日志控制台即可查看到TAG为MobPushLog的相干日志: <meta-data android:name="com.mob.mobpush.debugLevel" android:value="4" /> 小米通道集成指南配置依赖在利用 module 的 gradle文件中找到MobSDK代码块,增加XIAOMI代码块: MobSDK { ...... MobPush { devInfo { //小米推送配置信息 XIAOMI{ appId "您的利用对应的小米的APPID"// 小米平台注册的appid appKey "您的利用对应的小米的APPKEY"// 小米平台注册的appkey } }}配置代码混同如果应用了 proguard,为了避免误报的 warning 导致无奈胜利编译,须要在配置文件中退出以下内容: -dontwarn com.xiaomi.push.**-keep class com.xiaomi.push.** { *; }-keep class com.mob.pushsdk.plugins.xiaomi.PushXiaoMiRevicer {*;}-dontwarn com.xiaomi.**-keep class com.xiaomi.**{*;}-keep class com.xiaomi.mipush.sdk.**{*;}-dontwarn com.xiaomi.mipush.sdk.**集成后果判断若集成胜利,日志显示如下: [MobPush]MobPush start init...[MobPush]MobPush wait for auth ...[MobPush]MobPush real start init ...[MobPush][XIAOMI] channel start init[MobPush]Mob-XIAOMI plugins initing[MobPush]Check push channel [XIAOMI] configuration information, appId:xxxxxxxxxx, appKey:xxxxxxxxxx[MobPush]request deviceToken success:xxxxxxxxxxxxxxxxxxxxxxx[MobPush][XIAOMI] channel register successful.华为通道集成指南配置maven在 Project 根目录的主 gradle 中配置华为maven地址。 ...

May 6, 2023 · 4 min · jiezi

关于android:HMS-Core-6100版本发布公告

剖析服务 ◆ 事件剖析下新增商品订阅剖析报告,帮忙开发者理解利用内用户付费订阅详情,评估订阅付费价值; ◆ 营销剖析、用户品质、转化剖析以及过滤器中,新增广告系列/广告工作通过ID进行搜寻的性能,通过更便捷高效的数据分析体验,帮忙开发者正当评估广告投放的后端转化成果。 查看详情>> 静止衰弱服务 ◆ 血糖数据类型在原有指尖血糖数据凋谢的根底上,新增反对用户间断血糖数据的凋谢。取得用户受权的开发者,可通过对应的数据凋谢接口,获取用户在一段间断测量过程中产生的多个时刻的血糖值; ◆ 端侧新增反对基于周、月、年三个工夫粒度凋谢用户历史数据,最多能够凋谢受权前一年的历史数据; ◆ 云侧新增反对开发者获取用户对华为静止衰弱App凋谢受权的后果。开发者想拜访华为静止衰弱App的数据,须要疏导用户开启华为静止衰弱App对Health Kit的凋谢受权,开发者可感知受权后果,并针对返回后果做相应的业务解决; ◆ 云侧新增反对衰弱数据异样事件订阅,包含房性早搏、室性早搏、房颤预警事件,当用户呈现如上3种心律失常景象时,开发者可通过订阅数据事件进行感知。 查看详情>> 音频编辑服务 ◆ 端侧格局转换新增反对采样率,比特率以及通道数输出,提供更加丰盛的转换场景。 查看详情>> 对立扫码服务  新增反对别离申请存储媒体/文件权限和相机权限。开发者在构建相机扫码性能时,须要申请相机权限,而在应用图像码辨认能力时,可独自申请存储权限,以满足用户最小权限和场景化触发要求。 查看详情>> 机器学习服务 银行卡辨认服务CustomView.OnBcrResultCallback接口新增办法:onBcrFailResult(MLBcrCaptureResult result)。 拜访Gitee>> 近距离通信服务 新增获取BeaconEngine实例办法:Nearby新增getBeaconEngine(Activity activity)和getBeaconEngine(Context context); StatusCode新增8073~8075错误码:注册Beacon扫描工作相干错误码: STATUS_BEACON_FILTER_SUM_EXCEED_LIMIT、 STATUS_SINGLE_APP_BEACON_FILTER_EXCEED_LIMIT和 STATUS_BEACON_TASK_NOT_FOUND。 拜访Gitee>> 全量版本更新。查看详情>> 理解更多详情>> 拜访HMS Core 联盟官网 获取HMS Core 开发领导文档 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

May 6, 2023 · 1 min · jiezi

关于android:ShareSDK-钉钉平台注册指南

注册开发者账号钉钉开放平台登录地址:https://open.dingtalk.com/ ,登录钉钉账号,注册开发者账号 创立钉钉利用进入利用列表页,点击利用开发抉择企业外部开发创立利用 进入利用信息页面,获取利用的AppKey和AppSecret。 权限申请进入利用性能,抉择登录与分享,点击编辑。 填写回调域名点击增加,开启Android 分享,而后顺次填写Android包名称和Android签名(去除冒号小写格局),最初单击保留。 阐明:在受权登录过程中,钉钉会校验受权接口的参数redirectUri,与此处配置的域名是否统一。 集成应用gradle配置MobSDK { appKey "您的appkey" appSecret "您的appsecrt" ShareSDK { devInfo { Dingding { appId "您的appkey" appSecret "您的appSecret" callbackUri "您的受权回调Url" shareByAppClient true bypassApproval false enable true } ....... } } }分享示例Platform dingDing = ShareSDK.getPlatform(Dingding.NAME);Platform.ShareParams shareParams = new Platform.ShareParams();shareParams.setTitle("题目");shareParams.setText("内容");shareParams.setUrl("https://www.mob.com");shareParams.setShareType(Platform.SHARE_WEBPAGE);dingDing.setPlatformActionListener(new PlatformActionListener() { @Override public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap){ //胜利回调 ... } @Override public void onError(Platform platform, int i, Throwable throwable) { //失败回调 ... } @Override public void onCancel(Platform platform, int i) { //勾销回调 ... }});dingDing.share(shareParams);受权示例Platform dingDing = ShareSDK.getPlatform(Dingding.NAME);dingDing.setPlatformActionListener(new PlatformActionListener() { @Override public void onComplete(Platform platform, int i, HashMap<String, Object>hashMap){ //胜利回调 Log.d("ShareSDK", "onComplete ----> 登录胜利" + platform.getDb().exportData()); } @Override public void onError(Platform platform, int i, Throwable throwable) { //失败回调 ... } @Override public void onCancel(Platform platform, int i) { //勾销回调 ... } });dingDing.showUser(null);用户信息{ "nick":"xxx", "tmp_auth_code":"xxx", "unionid":"xxx", "openid":"xxx"}

May 6, 2023 · 1 min · jiezi

关于android:LeetCode-周赛-34320230430结合下一个排列的贪心构造问题

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 发问。大家好,我是小彭。 明天是五一假期的第二天,打周赛的人数比前一天的双周赛多了,难道大家都只玩一天吗?这场周赛是 LeetCode 第 343 场单周赛,如果不思考第一题摆烂的翻译,整体题目品质还是很不错哒。 往期回顾:LeetCode 双周赛第 103 场 · 区间求和的树状数组经典利用 周赛概览Q1. 保龄球游戏的获胜者(Easy) 标签:数组、模仿、计数 Q2. 找出叠涂元素(Medium) 标签:矩阵、散列表、计数 Q3. 返回指标的最小代价(Medium) 标签:最短路、Dijkstra、最小堆 Q4. 字典序最小的漂亮字符串(Hard) 标签:贪婪、结构 Q1. 保龄球游戏的获胜者(Easy)https://leetcode.cn/problems/determine-the-winner-of-a-bowling-game/题目形容给你两个下标从 0 开始的整数数组 player1 和 player2 ,别离示意玩家 1 和玩家 2 击中的瓶数。 保龄球较量由 n 轮组成,每轮的瓶数恰好为 10 。 假如玩家在第 i 轮中击中 xi 个瓶子。玩家第 i 轮的价值为: 如果玩家在前两轮中击中了 10 个瓶子,则为 2xi 。否则,为 xi 。玩家的得分是其 n 轮价值的总和。 返回 如果玩家 1 的得分高于玩家 2 的得分,则为 1 ;如果玩家 2 的得分高于玩家 1 的得分,则为 2 ;如果平局,则为 0 。示例 1: 输出:player1 = [4,10,7,9], player2 = [6,5,2,3]输入:1解释:player1 的得分是 4 + 10 + 2*7 + 2*9 = 46 。player2 的得分是 6 + 5 + 2 + 3 = 16 。player1 的得分高于 player2 的得分,所以 play1 在较量中获胜,答案为 1 。示例 2: ...

May 5, 2023 · 9 min · jiezi

关于android:ShareSDK-Facebook平台注册指南

注册开发者账号1、点击连贯https://developers.facebook.com/ 进入facebook的后盾,应用Facebook登录,注册开发者账号 2、绑定邮箱账号 3、抉择本人的身份,实现注册 创立利用1、进入“我的利用”中创立利用 2、依据本人的利用状况抉择利用类型,个别抉择“消费者”即可 3、欠缺利用信息 4、配置利用“密钥散列” 点击“增加平台”,抉择“Android‘ 没有上架利用商店,能够间接抉择“Next” 配置利用“秘钥散列’ 5、增加“Facebook登录” 6、配置无效 OAuth 跳转 URI 留神:配置的地址必须与我的项目中配置的”callbackUri“参数雷同 7、更改利用模式,将利用模式更改为“上线” 到此就实现了Facebook开发者后盾的根本配置 权限申请public\_profile 权限申请应用 Facebook 登录性能,须要将 public\_profile 的拜访级别切换为高级,在“权限和性能”中进行申请即可 email 权限申请获取Facebook 用户的首选邮箱,须要将 email 的拜访级别切换为高级,在“权限和性能”中进行申请即可 测试用户邀请在利用未上线的状况下,须要增加测试者进行功能测试(测试者的Facebook账号须要曾经申请Facebook开发者账号,否则无奈设置成测试者) 集成应用应用Facebook接口应用Facebook的API接口进行分享和受权,不须要加载Facebook原生SDK “利用编号” 为appKey,“利用密钥”为appSecret,"无效 OAuth 跳转 URI" 为 callbackUri MobSDK { appKey "您的appkey" appSecret "您的appsecrt" ShareSDK { devInfo { Facebook { appKey "**********" appSecret "***********" callbackUri "**********" shareByAppClient true } ....... } } }应用Facebook原生SDK引入Facebook原生SDK(ShareSDK3.7.4及之后版本进行适配)能够通过“officialVersion”、“faceBookLoginProtocolScheme”属性配置引入Facebook原生SDK: ...

May 5, 2023 · 1 min · jiezi

关于android:Flutter-如何将代码显示到界面上

前言如何优雅的将我的项目中的代码,亦或是你的demo代码展现到界面上?本文对应用简略、便于保护且通用的解决方案,进行相干的比照和探索 为了节俭大家的工夫,把最终解决方案的相干接入和用法写在后面 预览代码疾速开始接入:pub,githubdependencies: code_preview: ^0.1.5用法:CodePreview,提供须要预览的className,可主动匹配该类对应的代码文件 原本想把写法简化成传入对象,然而因为一些起因无奈放弃,改成了className具体能够参考上面Flutter Web中的问题模块的阐明import 'package:code_preview/code_preview.dart';import 'package:flutter/material.dart';class Test extends StatelessWidget { const Test({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return const CodePreview(className: 'Test'); }}应用成果:flutter_smart_dialog 配置代码文件因为原理是遍历资源文件,所以必须将须要展现的代码文件或者其文件夹门路,定义在assets下,这步操作,为大家提供了一个自动化的插件解决 强烈建议须要展现到界面的代码,都放在对立的文件夹里治理 展现界面的代码须要在pugspec.yaml中的assets定义 如果代码预览的文件夹,分级简单,每次都须要定义门路切实麻烦 提供一个插件:Flutter Code Helper 装置:Plugins中搜寻Flutter Code Helper pugspec.yaml中定义下须要主动生成文件夹的门路,文件夹轻易套娃,会主动帮你递归在assets下生成 不须要主动生成,可:不写该配置,或者配置空数组(auto_folder: [])code_helper: auto_folder: [ "assets/", "lib/widgets/" ] 阐明下:下面的插件是基于RayC的FlutterAssetsGenerator插件我的项目改的 看了下RayC的插件代码和相干性能,和我料想的下面性能实现有肯定出入,改变起来变动较大想试下插件我的项目的各种新配置,间接拉到最新前期如果想到须要什么性能,不便随时增加所以没向其插件外面提pr,就独自新开了个插件我的项目 高级应用主题提供俩种代码款式主题 日间模式CodePreview.config = CodePreviewConfig(codeTheme: CodeTheme.light); 夜间模式CodePreview.config = CodePreviewConfig(codeTheme: CodeTheme.dark); 正文解析你能够应用如下的格局,在类上增加正文 key的后面必须加@,举例(@title,@xxx)key与value的之间,必须应用分号宰割,举例(@xxx: xxx)value如果须要换行,换行的文案前必须加中划线/// @title:/// - test title one/// - test title two/// @content: test content/// @description: test descriptionclass OneWidget extends StatelessWidget { const OneWidget({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return const Placeholder(); }}而后能够从customBuilder的回调获取param参数,param中领有parseParam参数 ...

May 5, 2023 · 2 min · jiezi

关于android:MobTech-秒验手机号中心的账号体系能带来什么

在互联网时代,用户的账号是他们在各种平台上的身份标识,也是他们享受服务和爱护隐衷的重要凭证。传统的账号体系通常是以账号密码为核心的,用户须要输出账号密码或者短信验证码能力注册登录。这种形式尽管简略,但也存在一些问题,比方用户遗记或者泄露明码、短信验证码提早或者被拦挡等,影响用户体验和安全性。而MobTech公司提供的秒验产品,就是一种以手机号为核心的账号体系,它能利用运营商网关取号的技术,实现一键验证手机号的性能,无需用户输出任何信息。这种形式能给用户和平台带来什么益处呢? 符合国家实名制要求国家为了标准互联网秩序,爱护用户权利,推广了实名制的政策,要求所有用户在应用互联网服务时必须提供真实有效的身份信息。而手机号是目前最罕用也最不便的实名认证形式,用户只须要通过手机短信验证码就能够实现注册和登录,无需记忆简单的账号密码。而账号密码体系则须要用户额定提供身份证号、姓名等信息,减少了用户的操作老本和隐衷危险。因而,手机号体系能更疾速地符合国家实名制的要求,也更合乎用户的应用习惯。 禁止网络水军侵害平台平安网络水军是指那些利用虚伪或者盗用的账号,在互联网上进行歹意评论、刷单、辟谣等行为,烦扰失常的网络秩序,侵害平台和用户的利益。而账号密码体系因为其注册和登录门槛较低,容易被网络水军滥用或者破解,导致平台上充斥着大量的垃圾信息和虚伪数据。而手机号体系则能无效地防止网络水军的侵害,因为每个手机号都是惟一且无限的资源,不容易被伪造或者盗用,而且如果发现有违规行为,也能够通过手机号追溯到实在身份,进行惩办或者封禁。因而,手机号体系能更好地保障平台的平安和信用。 提供真实有效的营销数据数据是互联网平台最贵重的资产之一,也是制订营销策略和晋升服务质量的重要依据。而账号密码体系因为其存在大量的虚伪或者反复账号,导致平台收集到的数据不够真实有效,无奈反映用户的实在需要和爱好。而手机号体系则能提供更真实有效的数据,因为每个手机号都代表一个实在且独立的用户,他们在平台上的行为和反馈都能反映出他们对平台服务的评估和期待。因而,手机号体系能更好地帮忙平台剖析用户画像,制订个性化和精准化的营销策略。

May 4, 2023 · 1 min · jiezi

关于android:LeetCode-双周赛-10320230429区间求和的树状数组经典应用

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 发问。大家好,我是小彭。 这场周赛是 LeetCode 双周赛第 103 场,难得在五一假期第一天打周赛的人数也没有少太多。这场较量前 3 题比较简单,咱们把篇幅留给最初一题。 往期周赛回顾:LeetCode 单周赛第 342 场 · 容斥原理、计数排序、滑动窗口、子数组 GCB 周赛概览Q1. K 个元素的最大和(Easy) 简略模拟题,不过多解说。 Q2. 找到两个数组的前缀公共数组(Medium) 简略模拟题,在计数的实现上有三种解法: 解法 1:散列表 $O(n)$ 空间复杂度解法 2:技数数组 $O(n)$ 空间复杂度解法 3:状态压缩 $O(1)$ 空间复杂度Q3. 网格图中鱼的最大数目(Hard) 这道题的难度标签是认真的吗?打 Medium 都过分了竟然打 Hard? 解法 1:BFS / DFS $O(nm)$解法 2:并查集 $O(nm)$Q4. 将数组清空(Hard) 这道题的难点在于如何想到以及正确地将原问题转换为区间求和问题,思路想分明后用树状数组实现。 解法 1:树状数组 + 索引数组 $O(nlgn)$解法 2:树状数组 + 最小堆 $O(nlgn)$ Q1. K 个元素的最大和(Easy)https://leetcode.cn/problems/maximum-sum-with-exactly-k-elements/题目形容给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你须要执行以下操作 恰好 k 次,最大化你的得分: 从 nums 中抉择一个元素 m 。将选中的元素 m 从数组中删除。将新元素 m + 1 增加到数组中。你的得分减少 m 。请你返回执行以上操作恰好 k 次后的最大得分。 示例 1: 输出:nums = [1,2,3,4,5], k = 3输入:18解释:咱们须要从 nums 中恰好抉择 3 个元素并最大化得分。第一次抉择 5 。和为 5 ,nums = [1,2,3,4,6] 。第二次抉择 6 。和为 6 ,nums = [1,2,3,4,7] 。第三次抉择 7 。和为 5 + 6 + 7 = 18 ,nums = [1,2,3,4,8] 。所以咱们返回 18 。18 是能够失去的最大答案。示例 2: ...

May 4, 2023 · 8 min · jiezi

关于android:扔物线Android-高级开发瓶颈突破系列第五期繖幄垂垂马踏沙

download:扔物线Android 高级开发瓶颈冲破系列第五期云原生:开启下一代企业应用 关键字:云原生、容器化、微服务、DevOps、Kubernetes 随着数字化时代的到来,企业对于IT零碎的需要也在一直地减少。而云原生作为下一代企业应用的核心技术之一,正在逐步成为了企业数字化转型中的重要组成部分。 一、什么是云原生? 云原生是指将应用程序及其相干服务(如存储、网络等)以容器为根底进行构建、运行和治理的形式。它采纳了微服务架构,能够将每个功能模块拆解为独自的服务,并通过API进行通信。同时,云原生还波及到DevOps文化、自动化、可观测性等方面的实际。 二、云原生的劣势 相比传统的应用程序,云原生具备以下劣势: 可移植性:因为容器的个性,云原生利用能够很容易地在不同的环境中迁徙。 弹性伸缩:云原生利用能够依据负载状况主动进行程度伸缩,从而保障利用的可靠性和高可用性。 灰度公布:云原生利用能够通过灰度公布等形式,实现无缝降级,从而防止对用户造成影响。 安全性:通过对容器和镜像进行加密,云原生能够更好地保障应用程序的安全性。 三、Kubernetes与云原生 Kubernetes是一个开源容器编排平台,它能够自动化地部署、扩大和治理容器化应用程序。作为云原生技术的代表,Kubernetes曾经成为了企业数字化转型中不可或缺的一部分。Kubernetes能够进步应用程序的可移植性、弹性伸缩性以及灰度公布等能力,从而更好地反对云原生利用的构建和运行。 总之,云原生曾经成为了下一代企业应用的核心技术之一。采纳云原生技术,能够进步应用程序的可移植性、弹性伸缩性以及灰度公布等能力,从而更好地满足企业数字化转型的需要。同时,Kubernetes作为云原生技术的代表,也在企业中失去了宽泛的利用和推广。

May 1, 2023 · 1 min · jiezi

关于android:基于-Android-平台的学习监督系统

拜访【WRITE-BUG数字空间】_[内附残缺源码和文档]基于挪动互联这甚至有些疯狂的倒退的情况,进行了本次毕业设计,而本毕业设计抉择了占据着市场 8 成以上的 Android 零碎作为开发方向设计了一款学习监督同。通过本次毕业设计,学习挪动互联相干的技术,理解挪动互联网市场的变动行情,为将来的职业生涯变动多出一个抉择的机会。一、摘要摘要 随着互联网倒退,社交网络的流行,当代大学生常常沉迷其中遗记学习工夫与学习打算,对此本学习打卡零碎能够很好的帮忙学生治理本人的工夫,制订学习打算并加以揭示,以学习钻研为目标,基于 Android 开发平台,应用 Java 语言编写,在 Android studio 上设计并实现一个学习监督零碎,帮忙实现学习工作。关键字 Android 零碎;自我管理;学习监督零碎;二、绪论随着民用 4G 的普及化,智能手机逐步取代了以前的按键手机,成为新的公众宠儿,而智能手机也被称为的挪动的个人电脑,也就是挪动互联终端,顾名思义,既然是挪动的个人电脑,那也必然领有本人的操作系统,为此各家零碎争奇斗艳,诺基亚的塞班零碎,黑莓的 BlackBerry 零碎,苹果的 iOS 零碎和谷歌公司的安卓零碎各自为了占据市场而进行了开发,慢慢的,随着工夫的推移逐步淘汰了许多不能适应公众的零碎,现当下,依据市场的统计来看,Android 零碎和 iOS 零碎总共占据了市场的 99% 以相对的劣势统治着挪动互联终端零碎市场,其中 Android 零碎和 iOS 零碎的市场比例差不多在 86% 比 14%,其中 Android 零碎的外围代码为开源,各方手机厂家能够以谷歌公司的代码为根底,开发实用于本人产品的零碎,公布属于本人的零碎,同时也因为安卓手机的价格低廉而俘获了不少的用户。自民用 4G 遍及以来,智能手机也随之进入了各家各户,亦如互联网当初在中国的飞速遍及,缓缓的,智能手机占据了互联网流量的半壁江山,越来越多的民众开始应用智能手机作为上网终端,而 4G 堪比宽带的速度也使得手机轻易实现电脑能力实现工作,而手机的各种富丽的软件 UI 也为用户带来良好的用户体验,这使得更多的年老互联网用户们偏差应用智能手机作为本人和互联网的接口。面对这种景象许多互联网公司甚至间接以某一款 APP 作为本人公司立足在这互联网中的基本,比方当初许多年轻人应用的毒 APP 和小红书 APP,在搜索引擎中,甚至都找不到该产品的 Web 端,只能找到其 APP 的下载网址。基于挪动互联这甚至有些疯狂的倒退的情况,进行了本次毕业设计,而本毕业设计抉择了占据着市场 8 成以上的 Android 零碎作为开发方向设计了一款学习监督同。通过本次毕业设计,学习挪动互联相干的技术,理解挪动互联网市场的变动行情,为将来的职业生涯变动多出一个抉择的机会。三、课题开发背景本毕业设计的开发方向为 Android 挪动利用,以 Android 零碎为根底开发一款监督软件。而安卓零碎作为一款开源的手机操作系统吸引了有数优良的开发者为其开发软件,同时谷歌公司也容许泛滥手机厂家退出到由谷歌公司带头创立的手机联盟,这为安卓手机的环境提供了弱小的多样性,但这也加剧了各大手机厂家之间的竞争,从硬件竞争到软件的竞争,从性能的比拼再到价格的比拼,强烈竞争为安卓的用户们带来泛滥的选择性,也使得用户能够以更加低廉的价格购买到高性能的优良的手机产品。在手机应用软件方面,往往一个相似性能的 APP 能有十来个类似的产品,而各家的利用商店也是参差不齐的排列着各种各样的利用产品没有一个对立的参考规范,每个都能够作为一款软件的开发者向利用商店申请公布,在此状况下,作者动摇了尝试 Android 开发的念头,借此来锤炼本人的能力,积攒开发我的项目的教训。四、课题开发目标及意义随着互联网用户年龄的年轻化,市面上的利用商品的体现也显得有些不尽人意,随着年轻一代天马行空的想法爆发,越来越多的利用也不得不增强本身的吸引力,以本身的独特性能和新鲜想法来吸引泛滥用户,以此在广大的市场中拼杀出一片立足之地。作为高校一份子,对于身边同龄人的对挪动互联终端的应用态度是非常敏感的,而越来越多的年轻人在网络上也时常感叹本人是重度的“迁延症”患者,常常刚刚坐下筹备学习就拿出了手机,因而感叹学习十分钟,玩手机两小时,面对这种状况,开发一款学习监督软件是非常有必要的。

April 30, 2023 · 1 min · jiezi

关于android:ShareSDK-抖音平台注册指南

注册开发者账号进入抖音开放平台 :https://developer.open-douyin.com/ 登录/注册账户 进入[控制台] —> [挪动利用] —> [认证企业资质] 实现认证后提交 创立利用进入[控制台] —> [挪动利用] —> [创立挪动利用] 填写相干信息批准隐衷协定后提交 这里必须要填写好本人的包名信息,如果包名信息和bundleID填写谬误会导致无奈进行分享登录。 权限申请点击利用进入总览后 [申请上线] 欠缺[根底信息] —> [抉择权限] 期待审核实现获取key的信息 集成应用Android须要先集成ShareSDK,详情参考:集成文档 将抖音的key配置到gradle的配置中,从新编译下即可 iOS须要先集成ShareSDK,详情参考:集成文档 能够在mob后盾配置抖音的App Key和App Secret,留神 [状态] 须要关上

April 28, 2023 · 1 min · jiezi

关于android:ShareSDK-新浪微博平台注册指南

注册账号进入到微博开放平台,进行账号注册或登录: https://open.weibo.com/ , 如无账号请抉择注册,有账号间接登录即可 开发者认证填写对应信息并进行开发者认证,认证胜利后可创立利用 创立利用申请创立 抉择平台 填写对应平台信息 高级设置此处设置为必须设置 提交审核 审核通过 获取配置 集成应用将上步骤中获取到的微博的key和serect以及在高级配置中配置的受权回调页url配置即可 MobSDK { appKey "您的appkey" appSecret "您的appsecrt" ShareSDK { devInfo { SinaWeibo { id 1 sortId 1 appKey "xxxxxx" appSecret "xxxxxxx" callbackUri "xxxxx" //拉起客户端受权 shareByAppClient true //绕过审核设置只针对分享,对受权有效 bypassApproval false enable true } ....... } } }

April 28, 2023 · 1 min · jiezi

关于android:ShareSDK-Google平台注册指南

注册开发者账号拜访Firebase),应用Google账号登录 创立我的项目登录实现后,点击转到控制台 点击增加我的项目 输出项目名称,点击持续 依据须要抉择是否开启Google Analytics(剖析),点击持续 抉择Google Analytics(剖析)账号,点击创立我的项目 利用信息填写关上控制台,点击进入刚刚创立的我的项目 点击iOS、Android、Web按钮,按需别离配置各平台信息 Android配置填写包名、调试签名证书SHA-1信息,点击注册利用 注:务必要填写调试签名证书SHA-1,否则将无奈失常应用Google登录性能 注册胜利并进入第2步后,无需下载 google-services.json文件,间接点击左上角敞开图标 开启Google登录进入我的项目首页,点击左侧Authentication按钮 点击设置登录办法 抉择Google按钮 开启启用开关,点击保留 在弹出的下载最新的配置文件弹窗中,点击下载 google-services.json文件,而后点击实现按钮 关上刚刚下载的 google-services.json文件,复制json文件client → oauth\_client数组中两个client\_id的值,其中client\_type等于1的是安卓端应用的id,client\_type等于3的是web端应用的id。 开始应用复制client\_id到Gradle配置中,具体如下: MobSDK { appKey "xxxxxxxx" appSecret "xxxxxxxxxxxxxxxxxxxxxx" ShareSDK { devInfo { GooglePlus {// appId "511911036430-uh40ldeflla5tflbis6s061q7glr0pmo.apps.googleusercontent.com" // 客户端 appId "511911036430-l5a3rr8hau2sg9icp8bultca1jfqdqvq.apps.googleusercontent.com" // 网页端 officialVersion "default" shareByAppClient true enable true } } }}Android受权示例 ...

April 27, 2023 · 1 min · jiezi

关于android:中国国际金融展开幕-蚂蚁集团数字化三件套产品升级更易用

4月25日,2023中国国际金融展(以下简称“金融展”)在北京揭幕。本次展会以“荟萃金融科技成果,展示数字金融力量”为主题,突出科技翻新为金融带来改革。上百家参展商展现了行业最新科技成果。 记者看到,在蚂蚁团体展区就展现了十几余项翻新科技成果,其中绝大部分技术成绩在一直冲破技术边界,同时也朝着升高客户应用门槛、开源凋谢上做冲破,让科技产品更易用、更通用,从而帮忙金融行业乃至千行百业数字化转型。 国家“十四五”布局指出:放慢推动数字产业化,推动产业数字化转型,施行“上云用数赋智”口头,推动数据赋能全产业链协同转型。明确提出了通过科技翻新,放慢产业数字化转型的要求。  在蚂蚁展区,“数字化三件套”科技产品尤其让人关注。蚂蚁团体继续投入研发的云原生PaaS平台SOFAStack、一站式挪动开发平台mPaaS以及原生分布式数据库OceanBase,作为“中小金融机构数字化降级三件套”再次亮相,又带来新的翻新成绩。 OceanBase4.0版本是业内首个实现单机分布式一体化架构的数据库产品,性能显著晋升。同时,它最大的特点是既能够像单机数据库一样应用,又领有分布式数据库有限程度扩大的能力。这意味着中小金融机构也能够通过OceanBase,依据本身业务倒退阶段,以更经济的老本用上更好的服务。目前,OceanBase已助力400+客户实现要害业务系统升级,成为通用行业降级首选,其中金融客户与非金融客户各占50%,中小客户占比70%。 SOFAStack是一款云原生的PaaS平台,在过来帮忙支付宝以及金融机构的技术架构向云原生分布式降级,实现“丝滑上云”。因其成长在严苛的金融级应用环境下,SOFAStack具备高可用、一致性、可扩大等个性。目前,SOFAStack曾经服务于工商银行、四川农信等超百家金融机构,也开始布局从服务金融行业走向更广大的千行百业。 蚂蚁的挪动开发平台mPaaS可能为多端的开发、测试、经营等提供云到端的一站式解决方案。目前曾经广泛应用于金融、政务、批发、互联网等各行各业,服务客户包含广发银行、新华保险、上海地铁、广东挪动等数百家机构及企业。以广东挪动为例,广东挪动基于mPaaS打造了新的挪动端技术中台,可实现一套代码在APP、小程序、H5多端公布应用,开发效率晋升近一倍,同时还反对“千人千面”的营销组件能力,满足不同用户的个性化需要。 蚂蚁团体数字科技事业部产品总监马振雄示意:“就像烹调一道菜,OceanBase解决了数据食材的存储管理等问题,SOFAStack是锅勺等炒菜工具,mPaaS则是负责盛在什么样的盘子里端给食客享受。这三件产品都通过了严苛的金融级利用场景的打磨,最终助力企业端出一盘服务客户的‘好菜’。” 这次“数字化三件套”的亮相与以往不同的是,产品升级方向都在往通用、易用方向演变。三件套使得“上云”老本更低、部署不便,运维智能,可动态平衡投入与产出。 本次金融展上,蚂蚁团体隐衷计算技术产品也入选了五大“金融科技翻新成绩”。  据理解,这一成绩能够为金融行业提供平安、高效、定制化的解决方案,助力金融数据安全可信流转。同时,“隐语技术栈”在医疗、电商等畛域也有成熟落地利用。隐语开发了业内首个把 SQL 做到多方平安计算(MPC)技术上的数据分析系统,在产品易用性上,冲破显著。

April 27, 2023 · 1 min · jiezi

关于android:数说热点米哈游新作崩坏星穹铁道今日公测能否再现原神奇迹

游戏玩家们心心念念的米哈游新作《崩坏:星穹铁道》终于问世啦,游戏已于上周日上线PC、安卓、iOS平台开启预下载,今日正式公测。“崩坏”系列本就是米哈游的起家游戏,播种了少量玩家的青眼,可即使是系列中最新的《崩坏3》,也曾经来到了第七个年头,暌违已久的《崩坏:星穹铁道》被寄心愿能在游戏圈掀起新一轮的“崩坏”风潮。 图片转自米哈游官网 营收&月活的增长力?《崩坏:星穹铁道》引人瞩目,还因为米哈游推出的上一款景象级游戏《原神》。自2020年9月公布已来,《原神》无论是在话题度、影响力、好评率上,都处于国内游戏的第一梯队,是货真价实的国民手游,在海内同样领有超高人气,稳居国内手游出海支出榜冠军。 依据B站“国产二次元手游察看”数据,2022年原神的总流水为378亿,占全副国产二次元手游年流水的64.33%。经计算,如果《崩坏:星穹铁道》的挪动端年流水能达到《原神》的五分之一,那么《崩坏:星穹铁道》将成为国产二次元手游第二名,可见《原神》惊人的营收能力。 依据游戏活跃度排名网站activeplayer.io的数据显示,《原神》在公布首月,即播种千万级别的月活玩家,月活人数在公布的一年内,迅速达到5000万。《原神》月最高在线人数在头两年半,呈继续上涨态势。2022全年,简直每个月,都有最高800万以上玩家在提瓦特大陆(《原神》故事的空想世界)上同时冒险。但2023开年以来,《原神》月活人数不升反降,月最高在线人数相较2022年同期,近乎腰斩。米哈游亟需《崩坏:星穹铁道》上线带来新的业务增量。 玩家互补OR左右手互搏?依据百度搜寻指数显示,广东地区原神关键词搜寻量最多,每十个原神搜寻数据中就有一个来自于广东,而且其偏好TGI同样高居前列,超过120。即使如此,仍不迭浙江玩家们的激情,浙江省原神偏好TGI为127,在中国大陆31个省区市中排名第一。四个直辖市中,重庆和天津对原神的追捧水平远胜于北京和上海。北上两座特大城市,原神偏好TGI相仿,都不超过80,百度指数占比也比拟靠近。原神渗透率最低的区域是西部地区,宁、新、甘、青、藏是前五名。 原神玩家的地区散布反映出原神在一线城市和五线城市受欢迎水平不够。一线城市玩家对游戏的抉择趋于多样化,他们领有最丰盛的游戏资源,最看重的是游戏口碑,《崩坏:星穹铁道》要想驯服这部分玩家群体,必须在《原神》高好评率的根底上再晋升一个台阶。 而五线城市短少二次元文化的流传和遍及,米哈游作为一家二次元游戏开发商,在这块市场上人造地竞争力较弱。好在《崩坏:星穹铁道》是一款回合制策略游戏,相较《原神》,对二次元角色设计的依仗水平不高,更为要害的是精进战斗零碎,在玩法丰富性和战斗平衡性上取胜,这或者能为米哈游抢占更低线级市场提供助力。 《原神》尽管问题傲人,但仍然存在短板。米哈游如能吸取教训,用《崩坏:星穹铁道》再拓市场,无论《崩坏:星穹铁道》能不能达到《原神》的体量,对米哈游坚固国内一流游戏厂商的位置都是一股助推力。

April 26, 2023 · 1 min · jiezi

关于android:从零学习SDK10SDK的未来发展趋势

随着技术的不断进步和市场的一直变动,SDK也在一直地翻新和演进,以适应新的需要和挑战。那么,SDK将来的发展趋势是什么呢?本文将从以下几个方面进行剖析: 智能化智能化是软件行业的一个重要方向,也是SDK的一个重要方向。智能化能够晋升SDK的易用性、灵活性和智能性,让开发者更不便地应用SDK,更快地实现开发工作,更好地实现软件性能。智能化的表现形式有多种,例如低代码、自动化、对话式等。 低代码是指通过可视化界面和拖拽操作来生成代码的形式,能够升高开发者的编程门槛,进步开发效率。自动化是指通过AI技术来辅助或代替人工编程的形式,能够缩小开发者的重复劳动,进步代码品质。对话式是指通过自然语言交互来实现编程工作的形式,能够让开发者更天然地表白需要,更灵便地管制流程。 服务化服务化是指将SDK作为一种服务来提供给开发者的形式,能够让开发者更轻松地接入和应用SDK,更快地获取更新和反对,更好地享受云端资源和能力。服务化的表现形式有多种,例如API、SaaS、PaaS等。 API是指通过网络接口来调用SDK性能的形式,能够让开发者无需下载和装置SDK,间接通过网络申请来应用SDK。SaaS是指将SDK作为一种软件服务来提供给开发者的形式,能够让开发者无需关怀底层技术细节,间接通过网页或客户端来应用SDK。PaaS是指将SDK作为一种平台服务来提供给开发者的形式,能够让开发者无需搭建和治理基础设施,间接在云端环境中应用SDK。 平台化平台化是指将SDK作为一种平台来构建和运行软件应用的形式,能够让开发者更容易地集成和扩大SDK性能,更宽泛地分享和交换SDK资源,更无效地合作和翻新SDK利用。平台化的表现形式有多种,例如插件、社区、生态等。 插件是指通过插入模块或组件来加强或定制SDK性能的形式,能够让开发者依据本人的需要和爱好来调整SDK。社区是指通过建设网络平台来促成SDK用户之间的交换和单干的形式,能够让开发者更容易地获取SDK的帮忙和反馈,更快地解决SDK的问题和艰难,更多地分享SDK的教训和成绩。生态是指通过构建SDK与其他软件或硬件的协同和互动的形式,能够让开发者更宽泛地利用SDK的性能和劣势,更深刻地摸索SDK的利用和价值,更翻新地开发SDK的产品和服务。综上所述,SDK将来的发展趋势次要有智能化、服务化和平台化三个方面,这些方面都是为了晋升SDK的用户体验和市场竞争力,满足开发者的多样化和个性化需要,推动软件行业的翻新和倒退。作为一个有志于学习SDK的开发者,咱们应该关注并适应这些趋势,一直进步本人的技能和程度,为软件行业做出本人的奉献。

April 26, 2023 · 1 min · jiezi

关于android:FAQ关于JavaScript版本的华为地图服务Map的点击事件与Marker的点击事件存在冲突的解决方案

一. 问题形容创立地图对象,并增加marker标记,对map和marker均增加了点击事件; <body> <script> function initMap() { // 创立地图对象 const map = new HWMapJsSDK.HWMap(document.getElementById('map'), { center: { lat: 39.36322, lng: 116.3214 }, zoom: 8, }); map.on('click', handleMapClick); // 创立标记 const marker = new HWMapJsSDK.HWMarker({ map: map, position: { lat: 39.36322, lng: 116.3214 }, draggable: true }); // 给标记增加点击事件 marker.addListener('click', (e) => { console.log('marker mouse click'); }); } //创立map的点击事件 function handleMapClick(){ console.log('map mouse click'); } </script> </body>在测试时发现点击marker标记时同时触发了map的点击事件,具体能够查看下方的Gif图: 二. 解决方案经查阅华为地图服务的JavaScript版本的API领导文档发现,华为地图服务有提供un(event, callback)和map.on('click', callback)办法,这两个办法的作用别离是解绑事件监听和增加地图的鼠标左键点击事件。因为华为地图服务提供了事件监听的解绑办法,所以能够在marker的点击事件办法中先通过un(event, callback)办法解绑map的点击事件,事件解绑之后能够保障在点击marker时不会误触map的点击事件。当marker的事件监听业务执行结束之后,能够再通过map.on('click', callback)办法 从新增加map的点击事件三. 代码示例及成果展现在marker的点击事件办法中先解绑map的点击事件,当marker的点击事件业务执行结束之后,再从新增加map的点击事件。<body> <script> function initMap() { // 创立地图对象 const map = new HWMapJsSDK.HWMap(document.getElementById('map'), { center: { lat: 39.36322, lng: 116.3214 }, zoom: 8, }); map.on('click', handleMapClick); // 创立标记 const marker = new HWMapJsSDK.HWMarker({ map: map, position: { lat: 39.36322, lng: 116.3214 }, draggable: true }); // 给标记增加点击事件 marker.addListener('click', (e) => { //解绑map对象的点击事件 map.un('click', handleMapClick); console.log('marker mouse click'); //增加map对象的点击事件 map.on('click', handleMapClick); }); } function handleMapClick(){ console.log('map mouse click'); } </script> </body>经下方的Gif图可看出,在点击marker标记时不会再误触map的点击事件。 ...

April 26, 2023 · 1 min · jiezi

关于android:MobTech-MobLink引流统计一站式服务

Moblink能够实时追踪新装置(或新注册用户)起源,继续监控、评估渠道品质,协同优化调整产品经营方向。它能够帮忙经营人员理解用户的行为和偏好,进步用户粘性和转化率,优化经营策略。 Moblink的引流统计一站式服务有以下两个次要方面: 可视化展现数据报告Moblink能够通过数据智能平台,将收集到的用户数据进行荡涤、解决、剖析,并以图表、表格等模式展现进去。经营人员能够通过数据报告,理解用户的散布状况、沉闷状况、转化状况等指标,并进行比照、筛选、排序等操作。例如,经营人员能够查看不同渠道的引流成果和转化率,找出最优质的渠道;也能够查看不同时间段的用户活跃度和留存率,找出最佳的推送机会;还能够查看不同类型的用户画像和偏好,找出最合适的内容和流动。 案例如电商类App:通过Moblink生成专属短链或二维码,分享商品或店铺链接到社交平台,实现从Web端到App端的无缝跳转,并传递商品或店铺信息。通过Moblink的数据报告,能够查看每个分享链接的点击次数、装置次数、购买次数等数据,剖析不同分享渠道和商品类型的转化成果,优化商品举荐和促销策略。 灵便调整经营策略Moblink能够依据数据报告,为经营人员提供优化倡议和改良计划。经营人员能够依据理论状况,调整渠道投放、内容推送、流动设计等经营策略,以进步用户的引流成果和转化成果。例如,经营人员能够依据不同渠道的特点和用户需要,定制不同的深度链接模式和内容;也能够依据不同时间段的用户行为和反馈,调整推送频率和形式;还能够依据不同类型的用户特色和爱好,设计不同的流动主题和处分。 案例如资讯类App:通过Moblink实现场景还原性能,让用户能够从Web端或其余App端跳转到App内对应的新闻或专题页面,并传递相干参数。通过Moblink的数据报告,能够查看每个跳转链接的点击次数、装置次数、浏览次数等数据,剖析不同跳转渠道和内容类型的转化成果,优化内容举荐和编辑策略。 总结Moblink的引流统计一站式服务是一种翻新的数据智能解决方案,能够为挪动利用开发者和经营人员提供弱小的反对和帮忙。通过Moblink,开发者和经营人员能够更好地理解用户,更好地服务用户,更好地倒退用户。

April 25, 2023 · 1 min · jiezi

关于android:ShareSDK-微信平台注册指南

注册微信平台账号登录微信开放平台网址微信开放平台网址: https://open.weixin.qq.com/ 开发者认证1.进入账号核心,进行开发者企业认证 2.认证胜利后如截图所示 留神:开发者企业认证和安卓端须要提交的软著公司需统一,否则需提供软著受权协定证实 创立利用 填写根本信息依照要求填入 填入平台信息 提交审核 审核通过获取appid和appserect备注: 申请本人须要的能力如受权和分享等 集成应用将在微信开发者后盾看到的appId和appSerect复制到您的工程中配置微信平台信息的中央(微信和微信朋友圈是雷同的appId和appSecret) MobSDK { appKey "您的appkey" appSecret "您的appsecrt" ShareSDK { devInfo { Wechat { appId "xxxxxxxxxx" appSecret "xxxxxxxxxxx" userName "xxxxxxx" path "pages/index/index.html?id=1" withShareTicket true miniprogramType 2 } WechatMoments { appId "xxxxxxxxxx" appSecret "xxxxxxxxxx" } ....... } } }

April 25, 2023 · 1 min · jiezi

关于android:用户订阅付费如何拆解分析看这篇就够了

会员制的订阅付费在影音娱乐行业中已相当遍及,近几年,不少游戏厂商也开始尝试订阅免费模式。在剖析具体的用户订阅偏好以及订阅付费模式带来的增长成果时,咱们经常会有这些疑难: 如何从用户的整体付费行为中具体拆解订阅付费事件并剖析? 想要理解以后利用内用户的整体订阅详情? 订阅用户和非订阅用户在留存与付费偏好是否存在差别? …… 而这些都能在华为剖析服务—订阅剖析中找到答案。 一、 概览订阅剖析,理解以后利用内的订阅付费状况通过累计订阅用户、累计勾销订阅、累计订阅金额等指标,能够对以后利用内的订阅净增长做到成竹在胸。不同套餐的新增订阅与勾销订阅趋势图,有助于进一步剖析用户的订阅付费偏好,基于剖析后果可正当调优套餐内容与具体定价。 举个例子,如果套餐A的订阅量显著多于其余套餐,则能够联合不同因素剖析:比方,套餐A是否在页面展现中存在靠前劣势?套餐A的价格与时间跨度是否更加正当?以多维度的剖析,一直调优,实现订阅付费增长。 *测试环境,非实在数据 除根本指标和订阅趋势图外,订阅剖析还提供了具体的订购明细列表。反对依照不同的套餐类型筛选查问所选时间段内的每日用户订阅详情,清晰明了地出现用户的具体订阅付费明细。 *测试环境,非实在数据 二、 比照用户留存,评估订阅付费策略的用户经营成果游戏内的订阅付费就长期成果来看,对于用户的留存晋升是很有意义的。VIP特权、提前获取游戏内容、减少利用内购买价值等订阅权利,都能够让玩家从游戏中感触到超值的游戏体验,留存便会相应的进步。 留存剖析模块,可别离查看订阅用户的沉闷留存和非订阅用户的沉闷留存,通过直观比照,整体评估游戏内的订阅付费策略对于晋升用户留存的价值。 *测试环境,非实在数据 三、 付费剖析,发现订阅付费的增量价值付费剖析分为ARPPU和续订剖析两个模块,通过比照订阅用户与非订阅用户在利用内的购买金额差别,能够更直观地理解订阅用户和非订阅用户的付费偏好差别,并且从整体评估理论每日支出中订阅用户和非订阅用户的奉献占比。 续订剖析出现了以后订阅用户中理论的到期续订状况,对于正当定价订阅套餐以及设计相干订阅流动都具备参考意义。例如:如果用户在首次订阅后,前期的订阅率很低,那代表以后的订阅用户中羊毛党占比拟大,这个时候就须要让他们体验到订阅付费的更多价值,例如超休闲游戏的额定道具、提前解锁等特权,继续促成用户的续订行为。 *测试环境,非实在数据 以上是华为剖析服务在剖析用户订阅付费场景的简略介绍。当然,订阅剖析报告是否可用,依赖于您以后是否在App侧和服务器侧埋点上报订阅与付费的要害事件,具体埋点操作指南与应用详情可参考订阅剖析。 理解更多详情>> 拜访剖析服务联盟官网 获取剖析服务开发领导文档 拜访HMS Core 联盟官网 获取HMS Core 开发领导文档 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

April 25, 2023 · 1 min · jiezi

关于android:ShareSDK-QQ平台注册

注册开发者账号1.在QQ互联开放平台首页 https://connect.qq.com/ ,点击右上角的“登录”按钮,应用QQ帐号登录,如下图所示: 重要提醒: 开发者QQ号码一旦注册不能变更,倡议应用公司公共QQ号码而不是员工私人号码注册,免得遇到员工到职等状况造成不必要的麻烦。 2.登录胜利后会跳转到开发者注册页面,在注册页面按要求提交公司或集体的根本材料。下图所示的是公司注册页面: 创立利用1.开发者注册实现后,点击“利用治理”按钮。 2.抉择须要创立的利用类型,咱们以挪动利用为例: 3.点击创立挪动利用后,按要求欠缺信息,点击“创立利用”, 4.利用信息填写实现,点击“创立利用”后,利用创立实现,期待利用审核通过即可应用 5.待审核通过后,点击“利用治理”,进入管理中心,在管理中心能够查看对应的appId和appKey,如下图所示: 权限申请须要在QQ互联平台申请UnionID权限,QQ受权才会返回UnionID 点击“利用核心”,利用右侧的“查看”,进入利用详情页面,在“利用接口”中进行申请 利用关联(可选)如果是在腾讯利用开放平台( https://app.open.qq.com/p/app/list )注册的利用须要关联到QQ互联上 ( https://connect.qq.com/ ),将腾讯利用开放平台上雷同appId的利用关联到qq互联上 安卓的须要查看包名和签名,iOS的须要将本人我的项目的Bundle id进行报备,以及填写Univesal link进行审核 集成应用将在QQ开发者后盾看到的appId和appKey复制到您的工程中配置QQ和QQ空间平台信息的中央(QQ和QQ空间是雷同的appId和appKey) MobSDK { appKey "您的appkey" appSecret "您的appsecrt" ShareSDK { devInfo { QQ{ appId "您的appId" appKey "您的appKey" enable true } QZone{ appId "您的appId" appKey "您的appKey" enable true } ....... } } }

April 24, 2023 · 1 min · jiezi

关于android:LeetCode-周赛-34220230423容斥原理计数排序滑动窗口子数组-GCB

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 发问。大家好,我是小彭。 前天刚举办 2023 年力扣杯集体 SOLO 赛,昨天周赛就出了一场 Easy - Easy - Medium - Medium 的水场,不得不说 LeetCode 是懂礼数的 。 接下来,请你跟着小彭的思路,一步步将问题做难,再将问题做简略。 往期回顾:LeetCode 单周赛 341 · 难度上来了,图论的问题好多啊! LeetCode 周赛 342 概览Q1. 计算列车到站工夫(Easy) 简略模拟题,不多解说。 Q2. 倍数求和(Easy) 题解 1:暴力解法 $O(n)$ 工夫复杂度 题解 2:剖析数据特色后发现数据存在等差数列性质,咱们利用容斥原理和等差数列求和公式,能够把优化到 $O(1)$ 工夫复杂度 Q3. 滑动子数组的漂亮值(Medium) 题解 1:在滑动窗口的根底上,联合疾速抉择查找滑动窗口中第 x 小的元素,工夫复杂度是 $O(n·k)$ 题解 2:剖析数据特色后发现题目的值域十分小,咱们能够用计数排序代替疾速抉择,工夫复杂度为 $O(n·U)$ Q4. 使数组所有元素变成 1 的起码操作次数(Medium) 在问题剖析后咱们将原问题形象为 “寻找 GCB 为 1 的最短子数组”,关联类似的 “和为 k 的最短子数组” 问题,咱们有从暴力 → 有序汇合 → 枯燥性优化的解法: ...

April 24, 2023 · 9 min · jiezi

关于android:从零学习SDK9SDK的局限

SDK是一种便捷而实用的工具,但软件开发者不能视SDK为万能的解决之道,SDK也有局限性,并且这些局限性可能会非常“致命”。软件开发者在抉择SDK产品之前,须要先理解SDK的不足之处。本文将介绍SDK存在的三种问题,以引起软件开发者的器重。 SDK的平安隐衷问题SDK的平安隐衷问题次要指SDK可能存在恶意代码,或者SDK可能收集和泄露用户数据的问题。恶意代码可能导致利用被攻打,被植入广告或者病毒,或者被窃取用户信息。收集和泄露用户数据可能导致用户隐衷被进犯,或者用户数据被滥用或者被发售。这些问题不仅会侵害用户的利益,也会侵害开发者和利用的信用和法律责任。 为了防止或者缩小SDK的平安隐衷问题,开发者在抉择和应用SDK时应该留神以下几点: 起源牢靠:抉择有良好口碑和信用的SDK提供商,防止应用来路不明或者品质不牢靠的SDK。权限正当:查看SDK所需的权限是否正当和必要,防止授予过多或者无关的权限给SDK。数据通明:理解SDK所收集和传输的数据类型和目标,防止应用收集敏感或者无关数据的SDK。协定明确:浏览并恪守SDK提供商的服务协定和隐衷政策,明确单方的权力和任务,防止违反法律法规或者用户协定。更新及时:及时更新SDK到最新版本,修复已知的破绽和缺点,进步平安性能。SDK的版本问题SDK的版本问题次要指SDK可能存在不兼容或者过期的问题。不兼容可能导致利用在不同的平台或者设施上运行异样或者解体。过期可能导致利用无奈应用最新的性能或者接口,或者无奈适应最新的规范或者标准。这些问题不仅会影响用户体验,也会影响利用竞争力和市场份额。 为了防止或者缩小SDK的版本问题,开发者在抉择和应用SDK时应该留神以下几点: 兼容宽泛:抉择反对多种平台和设施的SDK,防止应用只实用于特定环境或者条件的SDK。更新频繁:抉择更新周期较短且稳定性较高的SDK,防止应用更新周期较长或者稳定性较低的SDK。测试充沛:在应用新版本或者更新版本的SDK之前,进行充沛且全面的测试,确保没有呈现重大的谬误或者缺点。适配及时:在平台或者设施呈现新版本或者变动时,及时适配并更新SDK,确保利用可能失常运行。SDK的性能问题SDK的性能问题次要指SDK可能影响利用的运行速度,内存占用,电量耗费等方面。这些问题可能导致利用卡顿,闪退,耗电等景象,升高用户满意度和留存率。这些问题可能因为SDK自身设计不合理,代码品质不高,资源管理不良等起因造成。 为了防止或者缩小SDK的性能问题,开发者在抉择和应用SDK时应该留神以下几点: 抉择轻量:抉择性能精简,代码优化,资源节俭的SDK,防止应用性能冗余,代码繁杂,资源节约的SDK。评估影响:在集成SDK之前,评估其对利用性能方面的影响,比方启动工夫,响应工夫,内存占用,电量耗费等指标。监控数据:在集成SDK之后,监控其对利用性能方面的数据变动,比方解体率,卡顿率,内存透露等状况。及时反馈:在发现SDK存在性能问题时,及时反馈给SDK提供商,并寻求解决方案或者代替计划。总结本文介绍了SDK的三种类型的局限之处,并给出了一些防止或者缩小这些问题的倡议。开发者在抉择和应用SDK时应该慎重考虑其优缺点,并做好相应的测试和监控。

April 24, 2023 · 1 min · jiezi

关于android:FAQ统一扫码服务常见问题及解答

1.隐衷政策是怎么样的?收集哪些信息?对于Scan Kit的隐衷政策及收集的信息,请查看SDK隐衷平安阐明。 Android:SDK隐衷平安阐明 iOS:SDK隐衷平安阐明 2.如何应用多码辨认?多码模式下如何实现指定条码?多码模式的坐标反对返回坐标么?多码模式下实现主动放大?1)对立扫码服务反对返回多码 ①android我的项目建议您参考MultiProcessor 扫码模式,代码应用领导请参考链接。 ②如您是IOS我的项目请参考Bitmap Mode扫码模式,代码应用领导请参考链接。 2)多码模式下如何实现指定条码? 如要实现相干能力倡议先下载示例代码,将示例代码调通后再自行批改。 其中MainActivity、CommonActivity、ScanResultView、CameraOperation、CommonHandler类与多码辨认无关,须要您在示例代码中做以下批改: ① 在检测胜利后进行扫描 即调用如下代码:cameraOperation.stopPreview(); ② 在示例代码的CommonActivity中增加获取点击屏幕地位坐标代码; ③将获取到屏幕地位的坐标与检测胜利绘制的坐标比照符合条件的跳转并传递数据,点击屏幕地位坐标代码。 如无奈解决可通过链接征询详情。 3)多码模式的坐标反对返回坐标么? 反对返回坐标,通过扫码申请获取到扫码后果,扫码后果为HmsScan数据结构,通过HmsScan.getBorderRect即可获取数坐标。 4)多码模式下实现主动放大? 不反对,主动放大后会影响其余二维码的辨认成果,此种扫码模式倡议开发者增加按钮或触摸式进行缩放或放大。 3.是否反对主动放大?是否反对勾销主动放大?Default View Mode、Customized View Mode 扫码模式在SDK内已内嵌了主动放大性能,在满足条件时会主动触发,开发者无需解决。 Bitmap Mode 扫码模式下Scan Kit会返回调整相机焦距的指令给App,须要App依据焦距调整相机,可参考链接中的开发步骤的第四步:相机扫码模式。 如无需主动放大,可应用MultiProcessor Mode 扫码模式,该不反对主动放大,起因为MultiProcessor Mode 是多码辨认场景,主动放大后会影响其余二维码的辨认成果。 4.怎么免费的?是否须要受权?不存在版权免费问题,对立扫码服务提供收费接入。 5.间断扫码如何实现? Customized View Mode 扫码模式反对间断扫码,须要在初始化 RemoteView 时额定设置 setContinuouslyScan (true) 即可,API参考链接。 上述设置后在对 RemoteView 设置后果回调监听,监听到后果保留操作,不要跳转或敞开页即可实现间断扫码成果。 6.如何实现自定义扫码界面?Default View Mode 扫码模式不反对; Customized View Mode、Bitmap Mode、MultiProcessor Mode 扫码模式反对, 可参考示例代码的 ScanResultView + activity_defined.xml 或 activity_common.xml 文件进行实现,具体页面成果须要开发者依据需要欠缺。 ...

April 24, 2023 · 1 min · jiezi

关于android:MobTech-MobPushAB测试提升运营决策

在理论推送过程中,咱们经常有这样的困惑: 咱们如何确定哪种推送内容更能吸引用户?咱们如何掂量推送成果的晋升水平?咱们如何优化推送计划,实现更高的ROI?为了解决这些困惑,咱们须要一种迷信、无效、可量化的办法来验证和评估推送决策,这就是A/B测试。 A/B测试是什么?A/B测试,也叫做对照试验或者决裂测试,是一种在两个或多个计划之间进行比拟的办法。它能够帮忙咱们在指标用户群体中随机抽取定量用户,分为两个或多个小组,别离对这些分组进行不同的推送内容或者模式的触达,而后收集各群组的点击数据和业务数据,再通过统计学的办法进行剖析,比拟各小组对于既定目标的点击成果,最终选出最佳推送计划。 A/B测试的实质是一个试验,它能够帮忙咱们在不影响整体用户体验的状况下,尝试不同的变动,并察看其对后果的影响。A/B测试能够利用于推送流动流程中的各个因素,比方: 指标用户圈选:依据用户的行为、属性、偏好等特色,抉择适合的指标用户群体;推送内容:依据用户的需要、趣味、场景等因素,设计适合的推送内容和话术;推送模式:依据用户的习惯、偏好、可达性等因素,抉择适合的推送模式和机会。通过对这些因素进行A/B测试,咱们能够找到最优化的推送组合,从而晋升推送成果。 如何应用A/B测试性能?应用mobpush的A/B测试性能,只须要遵循以下几个步骤: 创立推送工作:在mobpush平台上创立一个新的推送工作,并填写根本信息;设置A/B测试:在推送工作中抉择“开启A/B测试”,并设置测试组数(最多6组),以及每组所占比例(总和为100%);设计推送计划:在每个测试组中设计不同的推送内容或者模式,并设置其余参数;公布推送工作:在确认无误后,公布推送工作,并期待后果;查看数据报告:在mobpush平台上查看每个测试组的数据报告,并剖析各组之间的差别和优劣。在应用mobpush进行A/B测试时,咱们须要留神以下几点: 明确指标:在进行A/B测试之前,咱们须要明确咱们想要达到的指标,比方进步点击率、转化率、留存率等,并抉择适合的指标来掂量成果;设计方案:在设计不同的推送计划时,咱们须要保障只有一个变量发生变化,比方推送内容、推送模式、推送机会等,这样能力精确地比拟各计划之间的差别;调配用户:在调配用户到不同的测试组时,咱们须要保障用户的随机性和代表性,防止因为用户特色或者行为的差别而影响测试后果;剖析数据:在收集和剖析数据时,咱们须要应用统计学的办法来判断各计划之间是否存在显著性差别,以及哪个计划更优于其余计划;优化决策:在得出测试后果后,咱们须要依据数据报告来优化咱们的推送决策,并继续地进行A/B测试,以适应用户和市场的变动。总结与倡议A/B测试是一种简略而无效的办法来验证和评估经营决策。它能够帮忙咱们找到最适宜指标用户群体、最能进步业务指标、最具备老本效益的推送计划。应用mobpush的A/B测试性能,咱们能够轻松地进行多种推送计划的比照和优化,从而晋升经营成果和ROI。

April 23, 2023 · 1 min · jiezi

关于android:ShareSDK第三方平台注册指南

Android端平台 开放平台地址 APPkey 申请流程 抖音 https://www.douyin.com/platform/apply/mobile 链接 新浪微博 http://open.weibo.com 链接 微博开放平台接入tips QQ http://open.qq.com/ 链接 微信 http://open.weixin.qq.com 链接 企业微信 https://work.weixin.qq.com/ 链接 Line https://developers.line.me/ 链接 Facebook https://developers.facebook.com iOS链接 Android链接 Twitter https://dev.twitter.com 链接 google+ https://console.developers.google.com/ 链接 有道云笔记 http://note.youdao.com/open/developguide.html#app 链接 印象笔记 https://dev.evernote.com/ 链接 Linkedin https://www.linkedin.com/secure/developer?newapp= 链接 Flickr http://www.flickr.com/services/ 链接 Pinterest http://developers.pinterest.com/ 链接 Tumblr http://www.tumblr.com/developers 链接 Dropbox https://www.dropbox.com/developers 链接 Instagram http://instagram.com/developer# 链接 VKontakte http://vk.com/dev 链接 易信好友 http://open.yixin.im/ 链接 明道 http://open.mingdao.com/ 链接 人人网 http://dev.renren.com 链接 ...

April 23, 2023 · 2 min · jiezi

关于android:Android-换肤指南

一、换肤计划目前,市面上Android的换肤计划次要有Resource计划和AssetManager替换计划两种计划。 其中,Resource计划是用户提前自定义一些主题,而后将指定主题对应的 id 设置成默认的主题即可。而AssetManager替换计划,应用的是Hook零碎AssetMananger对象,而后再编译期动态对齐资源文件对应的id数值。 1.1 Resource计划Resource计划的原理大略如下: 1、创立新的Resrouce对象(代理的Resource) 2、替换零碎Resource对象 3、运行时动静映射(原理雷同资源在不同的资源表中的Type和Name一样) 4、xml布局解析拦挡(xml布局中的资源不能通过代理Resource加载,LayoutInflater) 此计划的劣势是反对String/Layout的替换,不过毛病也很显著: 资源获取效率有影响不反对style、asset目录Resource多出替换,Resource包装类代码量大 1.2 AssetManager计划应用的是Hook零碎AssetMananger对象,而后再编译期动态对齐资源文件对应的id数值,达到替换资源的目标。此种计划,最常见的就是Hook LayoutInflater进行换肤。 二、Resource换肤此种形式采纳的计划是:用户提前自定义一些主题,而后当设置主题的时候将指定主题对应的 id 记录到本地文件中,当 Activity RESUME 的时候,判断 Activity 以后的主题是否和之前设置的主题统一,不统一的话就调用以后 Activity 的recreate()办法进行重建。 比方,在这种计划中,咱们能够通过如下的形式预约义一些属性: <?xml version="1.0" encoding="utf-8"?><resources>    <attr name="themed_divider_color" format="color"/>    <attr name="themed_foreground" format="color"/>    <!-- .... --></resources>而后,在自定义主题中应用为这些预约义属性赋值。 <style name="Base.AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">    <item name="themed_foreground">@color/warm_theme_foreground</item>    <item name="themed_background">@color/warm_theme_background</item>    <!-- ... --></style>最初,在布局文件中通过如下的形式援用这些自定义属性。 <androidx.appcompat.widget.AppCompatTextView    android:id="@+id/tv"    android:textColor="?attr/themed_text_color_secondary"    ... /><View android:background="?attr/themed_divider_color"    android:layout_width="match_parent"    android:layout_height="1px"/>三、Hook LayoutInflater计划3.1 工作原理通过 Hook LayoutInflater 进行换肤的计划是泛滥开源计划中比拟常见的一种。在剖析这种计划之前,咱们最好先理解下 LayoutInflater 的工作原理。通常,当咱们想要自定义 Layout 的 Factory 的时候能够调用上面两个办法将咱们的 Factory 设置到零碎的 LayoutInflater 中。 ...

April 21, 2023 · 24 min · jiezi

关于android:Viu联合华为HMS生态共创影音娱乐新体验

华为HMS生态携手流媒体平台Viu,为海内消费者打造精品挪动娱乐利用体验,并助力晋升流量变现能力。Viu在中东非、东南亚等16个国家及地区提供广告单干和付费会员服务,反对优质视频内容高清点播和直播。自2019年起,Viu在中东非区域与华为HMS生态发展一系列严密单干,并在2022年实现47%的用户增长。 本次,华为邀请Viu中东非区域首席业务官Rohit D'Silva,分享与HMS生态单干的独特见解。 Q1:Viu与华为单干的次要起因是什么?为什么抉择华为HMS生态、接入鲸鸿动能广告平台呢? A1:Viu和华为领有独特的理念和价值观,都保持以客户为核心。华为致力于为所有终端用户提供优质的应用体验,HMS生态合乎咱们业务的倒退方向。 华为利用市场(HUAWEI AppGallery)是寰球三大利用市场之一。通过上架AppGallery,华为用户能够疾速、流畅地拜访Viu丰盛多元的视频内容。此外,作为寰球最大的智能终端制造商之一,华为领有海量设施用户,这对咱们来说是一个微小的市场,能够触达更宽泛的用户群体。 鲸鸿动能广告(Petal Ads)是咱们单干的重要局部。Petal Ads反对广告数据深度剖析,实现目标用户精准投放,帮忙咱们进一步扩充中东非市场。 Q2:Viu与华为HMS生态继续单干多久了?有什么教训能够跟咱们分享吗? A2:2019年起,咱们开始与华为的专家团队密切合作。华为团队具备谨严认真的工作态度,提供业余粗疏的技术支持,这让咱们的单干过程十分顺利。通过接入HMS Core多种凋谢能力,Viu优化了利用性能,在短时间内上架AppGallery实现散发,提供更优质的用户体验。 其中,利用内领取服务(HMS Core In-App Purchases,IAP)反对多种领取形式,帮忙咱们高效变现;数字版权服务(HMS Core WisePlay DRM)无效避免数字内容未经受权应用和非法盗用,为流媒体平台提供内容版权保护。 除了集成HMS Core的凋谢能力外,咱们接入Petal Ads,通过AB测试等形式,开掘不同细分市场的价值,瞄准高转化用户。2022年,Viu相比前一年实现华为生态用户数量增长47%。 Huawei and Viu raise the bar for the content and entertainment industry in the region Q3:从商业的角度来看,您对与华为的单干有什么期待? A3:通过退出华为HMS生态,Viu能够触达更多的用户,晋升用户黏性。同时,咱们和华为达成单干——在中东非区域,用户在购买局部最新公布的华为设施如HUAWEI Mate 50 Pro时,能够享受Viu最多长达6个月的收费高清内容点播和直播订阅权利。 客户满意度是咱们胜利的要害。集成HMS生态相干服务后,Viu能够下载安装到手机、平板等多种类型的华为设施上,获取更多用户。在华为手机、平板设施显示真切、音质杰出以及界面敌对等劣势的加持下,Viu的内容展示成果得以保障,晋升了用户体验。 此外,通过和Petal Ads单干,咱们期待与指标受众建设更多分割,实现中东非地区业务的大幅增长。从目前教训看,咱们预计这次单干能够达成现实成绩。 Q4:将来Viu与华为还有哪些翻新单干? A4:咱们正在通过联结营销流动、原创内容产品推广等形式,一直深入与华为的单干,推动业务增长。在中东非区域,咱们还打算将Viu引入华为智慧屏,触达更多华为设施用户。华为HMS生态翻新的理念、当先的技术以及无力的反对,给咱们留下了粗浅的印象,这也是咱们单干顺利的起因。Viu和华为都保持以客户为核心,将来咱们将深入合作伙伴关系,采纳更多尖端技术,把咱们对挪动影音的愿景变为事实。 理解更多详情>> 拜访华为开发者联盟官网 获取开发领导文档 华为挪动服务开源仓库地址:GitHub、Gitee 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

April 21, 2023 · 1 min · jiezi

关于android:Android事件分发基础原理和场景分析

作者:京东批发 郭旭锋 1 为什么须要事件散发和其余平台相似,Android 中 View 的布局是一个树形构造,各个 ViewGroup 和 View 是按树形构造嵌套布局的,从而会呈现用户触摸的地位坐标可能会落在多个 View 的范畴内,这样就不晓得哪个 View 来响应这个事件,为了解决这一问题,就呈现了事件散发机制。 2 事件散发的要害办法Android 中事件散发是从 Activity 开始的,能够看看各组件中事件散发的要害办法 Activity:没有 onInterceptTouchEvent 办法,因为如果 Activity 拦挡事件,将导致整个页面都没有响应,而 Activity 是零碎利用和用户交互的媒介,不能响应事件显然不是零碎想要的后果。所以 Activity 不须要拦挡事件。 ViewGroup:三个办法都有,Android 中 ViewGroup 是一个布局容器,能够嵌套多个 ViewGroup 和 View,事件传递和拦挡都由 ViewGroup 实现。 View:事件传递的最末端,要么生产事件,要么不生产把事件传递给父容器,所以也不须要拦挡事件。 3 事件散发流程剖析3.1 事件散发流程概览Activity 并不是一个 View,那么 Activity 是如何将事件散发到页面的 ViewGroup 和 View 的呢。咱们先看看源码 # Activitypublic boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { onUserInteraction(); } // 调用 Window 对象的办法,开始事件散发 if (getWindow().superDispatchTouchEvent(ev)) { return true; } // 如果事件散发返回 false,也即事件没被生产,则调用本人的 onTouchEvent 办法 return onTouchEvent(ev);}public boolean onTouchEvent(MotionEvent event) { if (mWindow.shouldCloseOnTouch(this, event)) { finish(); return true; } return false;}能够看到,Activity 中的事件散发办法 dispatchTouchEvent 调用了 getWindow().superDispatchTouchEvent(ev) 办法,而这里的 WIndow 实际上是 PhoneWindow。 ...

April 21, 2023 · 6 min · jiezi

关于android:浅谈App响应时间优化

响应工夫,它是用来掂量零碎运行效率的一个重要指标。评估一个利用的响应工夫,能够从用户感知和零碎性能这两个角度来考量。响应工夫的长短,可能影响用户对某个性能、某个利用、乃至某个零碎的应用。毕竟如果有抉择,没有哪个人会违心去应用卡顿的利用,运行慢的手机。 作为一名开发者,尽管咱们平时可能只关注于堆业务,基本就没有工夫或者机会去优化咱们程序的响应工夫,然而这些内容对咱们集体的技术成长是至关重要的。大的不说,这部分也是面试中常常考查的内容,晓得了也不至于吃亏。 那么接下来咱们就长话短说,连忙来瞧瞧,到底如何来优化咱们利用的响应工夫。 1. 外围准则在算法中,咱们常常会从工夫复杂度和空间复杂度这两个纬度来掂量算法的优劣。很多时候,咱们无奈做到工夫复杂度和空间复杂度两者都最佳,只能在"工夫"和"空间"中,取折中的最优解。同样的,如果咱们谋求最极致的"工夫"最佳,就可能须要就义一部分的"空间",这就是拿"空间"换"工夫"的解法。 即响应工夫优化的外围:空间 -> 工夫 (用空间换工夫) 那么咱们应该怎么做呢?上面是我演绎总结进去的四项根本准则: 1.缓存优先:能读缓存读缓存。2.缩小新建:能复用绝不新建。3.缩小工作:能不做的尽量不做。4.具体问题具体分析:针对具体事务自身进行剖析,必须做的能提前做就提前做,不必须做的延后做。2. 优化措施可能我下面说的这些外围和根本准则,对绝大多数人来说都十分好了解,然而晓得了这些,并不代表你懂得如何进行优化。 这就好比你高中学数学,即使通知了你一堆的公式,但真要让你来一道相干的应用题,你还真不肯定能解得进去,这个时候"例题"就很要害了。 同样的,即使你晓得了一些对于利用响应工夫优化的外围和准则后,当你真正面临具体的优化问题时,你可能也会不知所措。 所以,接下来我就从工作执行、资源加载、数据结构、线程/IO和页面渲染这五个角度,来给出我的优化倡议。 2.1 工作执行1.业务/工作梳理:对业务进行拆分,对工作进行整合。2.工作转换:串行 -> 并行, 同步 -> 异步。3.执行程序按优先级调整。4.提早执行、闲暇执行,如:IdleHandler。2.1.1 业务/工作梳理业务往往是由一个个工作流组合而成。正当的业务/工作粒度能够无效进步响应的速度。对业务和工作的梳理,正确的形式是先进行业务的拆分,将业务拆分为一个个子工作,再依据须要对子工作进行整合。 (1)对不合理的业务流进行拆分。 对业务进行拆分,拆分出次要(必要)业务和主要(非必要)业务。别离对次要业务和主要业务进行优先级评估,业务执行按优先级从高到底顺次执行。(2)对工作流进行整合。 多个相干的串行工作,能够整合为对立的业务整体。多个不相干的串行工作,能够整合为一个并行的业务。2.1.2 工作转换1.串行 -> 并行的适用范围: 多个不相干的串行工作。多个工作弱相干且耗时,然而耗时靠近。例如某个页面你须要调用多个模块的接口查问数据进行展现。2.同步 -> 异步的适用范围: 非必要(重要性不高)且耗时的工作。耗时且关联性不大的工作。耗时且存在肯定相关性的工作。应用异步线程 + 同步锁的形式执行。2.1.3 工作优先级相似线程中的优先级Priority,当系统资源缓和的时候,优先执行优先级高的线程。首先咱们要对利用内所有须要优化的业务以及其子工作的优先级进行定义,而后按优先级程序进行排列和执行。 那么如何能力保障工作被按优先级进行执行呢? 1.对于线程,咱们能够间接设置其Priority值。(然而个别咱们不能间接应用线程,所有这个能够疏忽)2.对于线程池,咱们能够从代码层将工作按优先级程序退出到线程池中。留神,这里的线程池最好是阻塞式的,例如:应用PriorityBlockingQueue实现的优先级线程池 PriorityThreadPoolExecutor 。3.应用第三方的工作执行框架,这里举荐我开源的 XTask 供大家参考。 2.1.4 提早执行提早执行,是将一些不必要、重要性不高或者高耗时的工作暂停执行,等前面资源短缺或者要应用时才执行。常见的提早执行有以下几种: 提早某个特定的工夫执行。例如:某利用启动后,每隔2分钟同步一下用户状态。待某个特定的工作执行实现之后再执行。例如:导航利用定位获取胜利后,再执行目的地举荐获取的工作。间接不执行,等相干业务用到的时候再执行。闲暇执行,期待页面都齐全渲染结束之后再执行。例如:应用IdleHandler,具体应用如下:Looper.myQueue().addIdleHandler(new MessageQueue.IdleHandler() { @Override public boolean queueIdle() { // 执行你的工作 return false; }});当然,如果你想在闲暇的时候执行多个工作,你也能够这样写: public class DelayTaskQueue { private final Queue<Runnable> mDelayTasks = new LinkedList<>(); private final MessageQueue.IdleHandler mIdleHandler = () -> { if (mDelayTasks.size() > 0) { Runnable task = mDelayTasks.poll(); if (task != null) { task.run(); } } // mDelayTasks非空时返回ture示意下次继续执行,为空时返回false零碎会移除该IdleHandler不再执行 return !mDelayTasks.isEmpty(); }; public DelayTaskQueue addTask(Runnable task) { mDelayTasks.add(task); return this; } public void start() { Looper.myQueue().addIdleHandler(mIdleHandler); }}2.2 资源加载1.懒加载2.分段加载(局部加载)3.预加载(数据、布局页面等)2.2.1 懒加载对于一些不罕用或者不重要的数据、图片、控件以及其余一些资源,咱们能够在用到时再进行加载。1.数据懒加载 ...

April 21, 2023 · 1 min · jiezi

关于android:LeetCode-周赛-341-场模拟-树上差分-Tarjan-离线-LCA-DFS

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 发问。大家好,我是小彭。 上周末有单双周赛,双周赛咱们讲过了,单周赛那天早上有事没加入,前面做了虚构比赛,而后整个人就不好了。前 3 题非常简单,但第 4 题有点货色啊,差点就放弃了。最初,被折磨了一个下午和一个大夜总算把第 4 题做进去了,除了新学的 Tarjon 离线算法,这道题还波及到树上差分、前缀和、DFS、图论等基础知识,几度被折磨得想要放弃。这种感觉,仿佛和当年在 LeetCode 上做前 10 题的时候差不多哈哈。 加油吧,没有什么教训是随随便便可能取得的,默默致力,愿君共勉。 周赛纲要2643. 一最多的行(Easy) 简略模拟题,无需解释。 模仿:$O(nm)$2644. 找出可整除性得分最大的整数(Easy) 简略模拟题,和 Q1 简直雷同,这场周赛出的不好。 模仿:$O(nm)$2645. 结构无效字符串的起码插入数(Medium) 中等模拟题,不难。 模仿:$O(n)$2646. 最小化旅行的价格总和(Hard) 这道题的考点十分多,难度也十分高。先把握暴力 DFS 的解法,再剖析暴力解法中反复计算的环节,最初推出树上差分和离线 Tarjan 算法。这道题十分非常复杂, 递归中递和归的思维,再了解一下:为什么你学不会递归?谈谈我的教训并查集问题,不要错过:如何应用并查集解决朋友圈问题?差分数组问题,这个点还没有写,同系列的前缀和数组能够参考:应用前缀和数组解决 “区间和查问” 问题题解 1:暴力 DFS $O(nm)$题解 2:树上差分 + Tarjan 离线 LCA + DFS $O(n + \alpha m)$ 2643. 一最多的行(Easy)题目地址https://leetcode.cn/problems/row-with-maximum-ones/ 题目形容给你一个大小为 m x n 的二进制矩阵 mat ,请你找出蕴含最多 1 的行的下标(从 0 开始)以及这一行中 1 的数目。 如果有多行蕴含最多的 1 ,只须要抉择 行下标最小 的那一行。 返回一个由行下标和该行中 1 的数量组成的数组。 题解(模仿)简略模拟题。 class Solution { fun rowAndMaximumOnes(mat: Array<IntArray>): IntArray { var maxIndex = 0 var maxCount = 0 for (i in 0 until mat.size) { var count = 0 for (j in 0 until mat[0].size) { count += mat[i][j] } if (count > maxCount) { maxCount = count maxIndex = i } } return intArrayOf(maxIndex, maxCount) }}复杂度剖析: ...

April 20, 2023 · 6 min · jiezi

关于android:MobTech-秒验守护账户安全

秒验如何省略繁琐的注册步骤?传统的注册登录形式须要用户输出手机号,获取验证码,查看短信,输出验证码等多个步骤,不仅耗时耗力,还容易呈现短信黑名单、通道拥挤、验证码谬误等问题,影响用户体验和转化率。 秒验通过运营商网关取号技术,能够间接获取用户手机号,并进行一键验证,无需发送短信验证码,省去了用户的操作步骤,进步了注册登录的效率和便捷性。 秒验如何保障平安?秒验尽管省略了短信验证码的步骤,但并不意味着升高了安全性。相同,秒验采纳了基于芯片和PKI非对称加密算法的技术,能够无效避免短信嗅探、伪造、篡改等攻打伎俩,保障账户平安。 什么是PKI非对称加密算法?PKI非对称加密算法是一种公钥加密技术,它应用一对公钥和私钥来进行数据加密和解密。公钥是公开的,任何人都能够应用它来加密数据;私钥是窃密的,只有持有者能力应用它来解密数据。这样就能够确保只有受权的接收者能力读取加密的数据。 PKI非对称加密算法的长处是: 安全性高:因为私钥只有持有者晓得,即便公钥被泄露或拦挡,也无奈解密数据;简便性强:因为不须要当时协商或替换密钥,只须要散发公钥即可实现通信;适用性广:因为能够用于数字签名、数字证书、身份认证等多种场景,能够满足不同的平安需要。秒验利用PKI非对称加密算法,在运营商网关取号时,将手机号用公钥加密后传输给应用服务器;应用服务器用私钥解密后获取手机号,并进行验证。这样就防止了手机号在传输过程中被嗅探或篡改的危险。

April 20, 2023 · 1 min · jiezi

关于android:Android-Desktop-俄罗斯方块

拜访【WRITE-BUG数字空间】_[内附残缺源码和文档]就我本人的体验来说,应用 Compose 开发的利用我感触不到和 Android 原生开发之间有什么性能差别,但 Compose 在开发难度上会低很多Google 官网上是这么介绍 Compose 的:Jetpack Compose 是用于构建原生界面的新款 Android 工具包,它可简化并放慢 Android 上的界面开发,应用更少的代码、弱小的工具和直观的 Kotlin API,疾速让利用活泼而精彩长期以来,Android 的视图层次结构能够示意为一个视图树,视图树中蕴含着若干个 View 和 ViewGroup。当利用的数据因为用户交互等起因而发生变化时,界面的层次结构就须要进行更新以显示最新数据。最常见的界面更新形式就是应用findViewById()等函数遍历视图树,并通过调用 button.setText(String)、container.addChild(View) 或 img.setImageBitmap(Bitmap) 等办法来扭转特定节点,而这些办法就会扭转 View 的外部状态。但这种手动操纵视图的形式进步了出错的可能性。如果一条数据须要在多个地位出现,开发者可能一不小心就会遗记更新某个显示它的视图。此外,当两项更新以意外的形式发生冲突时,也很容易造成异样状态。例如,某项更新可能会尝试批改刚刚从界面中移除的节点。一般来说,软件维护复杂性会随着须要更新的视图数量增多而增长在过来的几年中,整个行业已开始转向申明性界面模型,该模型大大简化了与构建和更新界面关联的工程设计。该技术的工作原理是在概念上从头开始从新生成整个屏幕,而后仅执行必要的更改。此办法可防止手动更新有状态视图层次结构的复杂性。Compose 就是一个实用于 Android 的旧式申明性界面工具包,提供了申明性 API,让开发者可在不以命令形式扭转前端视图的状况下出现利用界面,从而使编写和保护利用界面变得更加容易可组合函数Compose 的重点就在于 @Composable函数,即可组合函数,每个可组合函数能够接管若干入参参数用于参加视图构造的绘制阐明,但函数不返回任何值。可组合函数只用于形容视图构造如何绘制以及如何与用户进行交互,但不须要返回视图对象,而是由 Compose 依据开发者的形容来生成具体的视图对象本游戏的 icon 就是通过这种形式来生成的。能够看到 PreviewTetrisIcon() 函数并不蕴含返回值,当然这种状况下也不须要入参参数。此外,Compose 的一个长处就是所见即所得,通过增加 @Preview 注解就能够预览实现成果,每次批改过后无需编译,只有刷新一下就能够看到批改后果

April 20, 2023 · 1 min · jiezi

关于android:从零学习SDK8SDK的集成和部署

抉择应用SDK与其余平台和服务进行集成和部署的益处有: 简化开发流程,节省时间和老本,无需从零开始编写简单的代码逻辑。保障性能的稳定性和兼容性,避免出现各种潜在的谬误和问题。享受SDK提供方的技术支持和更新,获取最新的性能和优化。晋升用户体验,提供更多的性能和抉择。应用SDK与其余平台和服务进行集成和部署的个别步骤如下:抉择适合的SDK,依据你的利用需要和指标平台(如Android、iOS、Web等),抉择一个可能提供所需性能或服务的SDK。你能够从SDK提供方的官网或者其余渠道获取SDK,并理解其相干的文档、示例、价格等信息。下载并导入SDK,将SDK文件下载到本地,并依照文档中的指引将其导入到你的开发环境中。你可能须要配置一些参数或者依赖,以确保SDK可能失常运行。调用并测试SDK,依据文档中的阐明,应用SDK提供的接口或者办法来实现你想要的性能或服务。你能够在模拟器或者真机上运行你的利用,并察看SDK是否可能失常工作,并满足你的需要。集成并部署SDK,当你实现了SDK的调用和测试后,你就能够将其集成到你的利用中,并进行打包、签名等操作。而后,你就能够将你的利用部署到指标平台上,并向用户公布。在应用SDK与其余平台和服务进行集成和部署时,须要留神以下几点: 在应用SDK之前,须要仔细阅读并批准SDK提供方的相干协定或规定,如隐衷政策、个人信息爱护规定等。同时,须要告知并征得用户的批准,以爱护用户的合法权益。在应用SDK时,须要恪守SDK提供方的相干要求或限度,如受权范畴、应用期限、数据安全等。同时,须要尊重并爱护SDK提供方的知识产权,不得擅自批改、复制、流传或者用于非法目标。在应用SDK时,须要留神与其余平台或服务之间的兼容性或抵触问题,如数据格式、接口协议、性能要求等。如果有必要,能够应用适配器或者中间件来解决这些问题。在应用SDK时,须要思考到用户的需要和体验,如性能抉择、界面设计、交互方式等。如果有必要,能够对SDK提供的性能或服务进行定制化或者扩大。在应用SDK时,须要定期更新和保护SDK,以获取最新的性能和优化。同时,须要及时处理SDK可能呈现的谬误或问题,并向用户提供反馈和反对。

April 20, 2023 · 1 min · jiezi

关于android:手机穿戴设备能力共享提升丰富交互体验

HUAWEI Wear Engine面向手机和穿戴设施的利用与服务开发者,提供华为穿戴设施凋谢能力。 开发者通过调用Wear Engine凋谢能力,能够实现手机上的生态利用与服务给华为穿戴设施发消息、发告诉、传输数据,并获取穿戴设施状态、读取传感器数据等,也能够实现华为穿戴设施上的生态利用与服务给手机发消息、传输数据等。 Wear Engine将手机上的生态利用和服务延展到智能穿戴设施,也将智能穿戴的设施能力凋谢给手机利用,实现手机与穿戴设施能力共享,给消费者提供更丰盛的利用场景、更便捷的业务体验、更晦涩的人机交互,为第三方利用与服务带来更多流量,发明更多新业务、新交互、新体验。 能力提供设施根底能力: • 获取穿戴设施根底信息:手机侧利用获取已配对且反对HarmonyOS能力的华为穿戴设施列表,包含:设施名称、设施类型等,以及查问该设施的连贯状态、利用装置状态等。 • 利用间音讯通信:手机侧利用和穿戴设施侧利用双向传输音讯和文件(如:文档、图片、音乐等)。 • 穿戴设施模板化告诉:手机侧利用发送模板化的告诉到穿戴设施,开发者能够设置音讯题目、内容、按钮。 • 获取穿戴用户状态:手机侧利用查问或订阅佩戴穿戴设施用户的心率告警、佩戴状态等。 • 穿戴传感器能力(仅限业余钻研机构应用):手机侧利用获取穿戴设施传感器信息,包含:心电图等人体传感器信息和加速度、陀螺仪等静止传感器信息。 • 设施标识符(仅限单干企业应用):手机侧利用获取穿戴设施序列号(SN)。 应用场景手机-穿戴设施分布式协同 • 重要告诉实现腕上揭示,零距离触达,如:在手机侧App中设置日程揭示、用药揭示、工作揭示等数据,能够同步到穿戴设施侧App中,不必关上手机,也能够随时在穿戴设施上查看重要信息。 • 为手机利用带来全新的“腕上交互”,如:用手机侧App看视频、听音频时,能够通过穿戴设施侧App操控手机侧App,比方暂停,下一首,进行等。 • 手机侧和穿戴侧的实时协同体验。如:在手机侧App开启导航,能够通过穿戴设施侧App提醒用户左转、直行、右转等。在走路或骑行时,不必每次拿出手机查看路线。 手机-穿戴设施虚拟化 开发者在手机侧App集成Wear Engine SDK,而不须要在穿戴设施侧开发App。 穿戴设施状态实时把握,如:手机侧App实时获取穿戴设施侧连贯状态、佩戴状态、电量状态等,给用户提供更多增值服务。 理解更多详情>> 拜访华为开发者联盟官网 获取开发领导文档 华为挪动服务开源仓库地址:GitHub、Gitee 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

April 20, 2023 · 1 min · jiezi

关于android:ShareSDK-Android-SDK-API

获取用户信息接口(showUser)//cn.sharesdk.framework/** * 获取用户信息 * @param account 获取指定账号的用户信息,间接设置成null */ public void showUser(String account)示例代码 //设置受权登录的平台Platform plat = ShareSDK.getPlatform(QQ.NAME);//受权回调监听,监听oncomplete,onerror,oncancel三种状态plat.setPlatformActionListener(platformActionListener);//抖音登录适配安卓9.0//ShareSDK.setActivity(MainActivity.this);plat.showUser(null);受权接口(authorize)//cn.sharesdk.framework/** * 第三方受权 */ public void authorize()示例代码 Platform plat = ShareSDK.getPlatform(Facebook.NAME);//受权回调监听,监听oncomplete,onerror,oncancel三种状态plat.setPlatformActionListener(new PlatformActionListener() { public void onError(Platform platform, int i, Throwable throwable) { //失败的回调,受权失败的回调 platform:平台对象,i:示意以后的动作(9示意分享),throwable:异样信息 } public void onComplete(Platform platform, int i, HashMap arg2) { //分享胜利的回调 } public void onCancel(Platform platform, int i) { //勾销分享的回调 }});//抖音登录适配安卓9.0//ShareSDK.setActivity(this);plat.authorize();其余辅助接口除此办法,ShareSDK还提供一些辅助办法,如下所示: plat.removeAccount(true) 移除受权状态和本地缓存,下次受权会从新受权获取新的受权信息 plat.SSOSetting(false) SSO受权,传false默认是客户端受权,没有客户端受权或者不反对客户端受权会跳web受权;设置成true是敞开SSO受权(敞开客户端受权) plat.setPlatformActionListener(this) 受权回调监听,监听oncomplete,onerror,oncancel三种状态 plat.isAuthValid() 判断是否曾经存在受权状态,能够依据本人的登录逻辑设置 ShareSDK.setActivity(this); ...

April 19, 2023 · 3 min · jiezi

关于android:FAQ关于华为推送服务因营销消息频次管控导致服务通讯类消息下发失败的解决方案

一. 问题形容应用华为推送服务下发IM音讯时,下发音讯申请胜利且code码为80000000,然而手机总是收不到音讯;在华为推送自助剖析(Beta)平台查看发现,音讯发送触发了频控。 二. 问题起因及背景2023年1月05日起,华为推送服务对征询营销类音讯做了单个设施每日推送数量下限治理,具体数量下限能够查看如下文档:不同利用类别的推送数量下限要求。华为推送服务对音讯分类做了优化,从2023年3月31日起推送音讯将对立通过音讯自分类进行分类。未接入自分类的利用默认可发送营销音讯,受营销音讯频次管控限度。基于以上起因,若利用有发送服务与通信音讯的场景,须要申请自分类权限,以防因营销音讯频次管控导致服务与通信类音讯下发失败三. 申请音讯自分类权限1. 自分类权利申请要求:a. 已上架利用市场的利用,在不违反华为告诉违规行为的前提下推送音讯,可按要求申请音讯自分类权利。 b. 未上架利用市场的利用,满足以下所有条件后须发送邮件(开明自分类申请资质)至hwpush@huawei.com,邮件审核通过之后再申请音讯自分类权利。 1) 仅服务于本身企业或政府组织单位外部。 2) 提供蕴含被服务主体盖章的证实函(证实函请参考下文),证实该App申请此权限仅为外部办公应用。 3) 其余类型的利用请先上架利用市场再申请自分类。 未上架利用申请开明自分类资质邮件模板示例: 邮件主题:未上架利用申请开明自分类资质-利用名称邮件注释:公司全称:XXX利用名称:XXXAppId:XXXX利用包名:XXX利用是否已上架:是/否承诺函请参考附件:[承诺函-利用名称]()2. 自分类权利申请流程:a. 具体能够查看文档。 b. 待申请通过之后,肯定要点击界面上方的“激活性能”进行激活。若超过两个月未激活,须要从新申请。 四. 利用适配开发自分类权限申请通过之后,下发服务与通信类音讯时音讯体中肯定要携带category字段,否则自分类权利是不会失效的,如下发IM类音讯。 a. 创立音讯体并携带category字段,进行音讯下发申请。 b. 端侧收到下发的音讯,在告诉治理页面查看告诉类别为服务揭示,且音讯有限频,可知自分类权利已失效。 c. 如果音讯体未携带category字段标识,那么自分类权利是不会失效的,如创立音讯体然而未携带category字段,进行音讯下发申请。 d. 端侧收到下发的音讯,在告诉治理页面查看告诉类别为内容征询,可知若音讯体中未携带category字段标识,自分类权利是不会失效的。 五. 问题解答申请音讯下发接口胜利且接口返回80000000码,音讯肯定会下发到设施吗?答:不是的,音讯下发接口返回80000000码的意思是音讯下发的申请是胜利的,然而并不代表音讯胜利达到了设施,音讯是否胜利达到设施能够通过音讯回执的回执码进行判断。 未申请自分类权利,如何保障发送的测试音讯不被频控?答:为了不便开发者测试音讯,在推送音讯时能够设置target_user_type参数为1。每个利用每日可发送500条测试音讯且不受每日单设施推送数量下限要求。 如何获悉当日推送数量曾经超过限度的Push Token?答:您能够开明音讯回执并基于接管到的回执状态码256来获取推送数量超过限度的Push Token。建议您在推送资讯营销类音讯前,依据此回执信息过滤掉当日曾经超过限度的Push Token,防止有效的音讯推送申请。 因服务与通信类音讯下达到设施时揭示形式为非静默揭示,如何保障服务与通信类音讯以静默揭示的形式下发到设施?答:若您心愿服务与通信类音讯依照静默(无铃声振动)形式发送,能够在满足自分类适配要求的根底上,增加importance字段且传值为“LOW”。 带有category字段的音讯体示例是什么?{ "validate_only": false, "message": { "android": { "notification": { "title": "小明", "body": "明天的周报已发,有工夫请看一下", "click_action": { "type": 3 } }, "category":"IM" }, "token": ["IQAAAACy0****************_7FL_0P******************g5K-ODO1_*********************_zb7v9OAK**************lmgQ"] }}六. 参考资料推送数量治理细则音讯分类规范上行音讯接口音讯回执自助剖析(Beta)自分类权利申请理解更多详情>> ...

April 19, 2023 · 1 min · jiezi

关于android:MobPush-Android-SDK厂商通道申请指南

华为厂商申请创立利用登录华为开发者联盟,注册您的利用,在利用信息中获取APP ID和Client Secret 配置SHA256证书指纹在华为开发者联盟配置SHA256证书指纹。获取及配置请参见华为官网文档配置AppGallery Connect 设置音讯回执集成华为厂商通道SDK后,须要在华为后盾配置音讯回执才能够统计到华为厂商的推送数据,具体设置办法请参见:音讯回执 开明回执需配置回调地址:https://report.push.mob.com/huawei/report 留神回执没有配置会无奈统计华为厂商推送的达到数 Mob开发者后盾配置密钥在Mob开发者后盾利用的【MobPush】->【推送设置】填写AppID和Secret 集成SDK在利用 module 的 gradle文件中找到MobSDK代码块,增加HUAWEI代码块。具体设置办法请参见:厂商SDK集成指南 华为厂商FAQ华为厂商的具体错误码,可参考华为常见错误码,点击理解 华为厂商集成问题,请参考问题FAQ,点击理解 光荣厂商申请创立利用登录光荣开发者服务平台,如果还未注册,可参考:账号注册创立利用并申请开明推送服务,可参考:申请开明推送服务获取利用的APP ID、APP Secret、Client ID、Client Secret 目前光荣仅反对Magic UI 4.0+,请参考:光荣推送业务介绍 Mob开发者后盾配置密钥在Mob开发者后盾利用的【MobPush】->【推送设置】填写APP ID、、APP Secret、Client ID、Client Secret 集成SDK在利用 module 的 gradle文件中找到MobSDK代码块,增加HONOR代码块。具体设置办法请参见:厂商SDK集成指南 光荣厂商FAQ光荣厂商的具体应用问题,可参考光荣平台FAQ,点击理解 小米厂商申请创立利用登录小米开放平台,注册您的App,在利用信息中获取AppID、AppKey、AppSecret。 Mob开发者后盾配置密钥在Mob开发者后盾利用的【MobPush】->【推送设置】填写AppID、AppKey、AppSecret。 集成SDK在利用 module 的 gradle文件中找到MobSDK代码块,增加XIAOMI代码块。具体设置办法请参见:厂商SDK集成指南 小米厂商FAQ小米厂商的具体应用问题,可参考小米平台FAQ,点击理解 OPPO厂商申请创立利用登录OPPO开放平台,抉择推送服务,在推送服务中注册您的利用,在利用信息中获取AppID、AppKey、AppSecret、MasterSecret。 Mob开发者后盾配置密钥在Mob开发者后盾利用的【MobPush】->【推送设置】填写AppID、AppKey、AppSecret、MasterSecret。 注:channelId参数为可选参数,对于target API≥ 26(Android 8.0)的利用,必须适配告诉通道,未指定通道的状况下收回的告诉将无奈显示,对于target API ≤ 25(Android 7.1)的利用,能够不适配,在8.0及以上的设施,告诉也能失常收回。 详情能够参考OPPO平台告诉通道(Channel)适配文档,点击理解 集成SDK在利用 module 的 gradle文件中找到MobSDK代码块,增加OPPO代码块。具体设置办法请参见:厂商SDK集成指南 OPPO厂商FAQOPPO厂商的具体应用问题,可参考OPPO平台FAQ,点击理解 vivo厂商申请创立利用登录vivo推送服务后盾,注册您的利用,在利用信息中获取AppID、AppKey、AppSecret。 Mob开发者后盾配置密钥在Mob开发者后盾利用的【MobPush】->【推送设置】增加相干信息后保留配置 集成SDK在利用 module 的 gradle文件中找到MobSDK代码块,增加VIVO代码块。具体设置办法请参见:厂商SDK集成指南 ...

April 19, 2023 · 1 min · jiezi

关于android:阿里云ACP大数据考试内容是什么考试费用是多少

作为目前市场占比最大的云计算厂商,阿里云旗下的认证在业界外部相当受欢迎的,并且具备很大的含金量,很多人通过学习阿里云的证书常识,晋升本人的业余能力,并且在通过考试后拿到相干证书,以此取得进入阿里云以及其单干企业的机会。 而阿里云旗下的产品泛滥,也领有多种证书,例如云计算、大数据、人工智能、大数据分析师等等,而且分为了三个等级,别离是ACA、ACP、ACE,每个人能够依据本人的需要来考据书,综合下来ACP的证书考的人很多,其中大数据是热门证书之一,上面大使简略介绍一下阿里云ACP大数据证书,有须要的能够在认证大使上具体理解。 阿里云大数据ACP考试概述 阿里云大数据工程师ACP认证(Alibaba Cloud Certified Professional – Big Data)是面向大数据开发工程师的业余技术认证,同时也实用于大数据产业中的架构、剖析、运维等相干从业人员。本认证次要波及的内容包含:大数据计算服务、大数据开发与治理平台、实时计算、实时数据仓库、检索剖析服务、数据湖、大数据分析与可视化。 阿里云大数据ACP考试内容 1、大数据根底与阿里云大数据平台 理解大数据基本概念及以后大数据的发展趋势;理解开源大数据平台经典架构、罕用组件及其利用场景理解阿里云大数据产品体系、罕用产品及利用场景 2、大数据计算服务 理解 MaxCompute 的产品价值及产品架构;相熟 MaxCompute 的外围概念及罕用开发工具;相熟MaxCompute 罕用的数据迁徙工具;把握 MaxCompute SQL 的罕用 DDL、DML操作及内置函数的应用;把握 MaxCompute SQL 自定义函数的分类、开发及应用相熟 MaxCompute SQL 性能调优的罕用办法;相熟 MaxCompute 的权限及平安的治理 3、大数据开发与治理平台 理解阿里云 DataWorks 的产品架构及利用场景;把握基于数据集成进行数据离线与实时同步;相熟大数据建模的方法论、数据仓库布局及维度建模的规范;把握数据开发与运维的根本流程;理解大数据治理的概念及其需要档次,相熟 DataWorks 大数据治理的体系及施行门路;理解数据地图及其操作、相熟数据品质监控、理解数据保护伞;理解阿里云 DataWorks 中数据分析、数据服务、迁徙助手等性能 4、实时计算 相熟实时计算的概念及其利用场景;相熟业界支流实时计算框架;相熟Apache Flink 架构及工作原理;理解阿里云实时计算 Flink 产品相干概念;把握阿里云实时计算 Flink SQL 及其操作;相熟阿里云实时计算 Fink 作业管理及调优 5、实时数据仓库 相熟实时数据仓库架构的演进;理解实时数据仓库造型的次要根据;理解数据仓库的罕用架构及云原生 HSAP 的理念;相熟阿里云实时数据仓库 Hologres 的产品个性、技术架构及原理、利用场景;相熟实时数据仓库面临的挑战以及 Hologres 的利用对策;把握 Hologres 开发工具的应用;把握 Hologres 的数据同步的次要办法;把握 Hologres 数据开发过程中的数据类型、SQL 及 Binlog的操作;相熟 Hologres 的性能调优的次要办法,包含外部表的优化及 Key/Value 的查问;把握 Hologres 实时数据仓库建设的 3 种典型场景 ...

April 18, 2023 · 1 min · jiezi

关于android:MobPush-Android-SDK-API

推送监听接口增加推送监听性能阐明增加推送监听,音讯下发到设施,可依据推送监听进行业务逻辑操作自定义音讯达到(透传音讯)、告诉音讯达到、告诉栏音讯点击、增删别名、增删标签事件。参数阐明参数 类型 形容 mobPushReceiver MobPushReceiver 注册推送监听 示例代码/** * import com.mob.pushsdk.MobPushReceiver; */public static void addPushReceiver(MobPushReceiver mobPushReceiver)MobPushReceiver mobPushReceiver = new MobPushReceiver() { @Override public void onCustomMessageReceive(Context context, MobPushCustomMessage message) { //接管到自定义音讯(透传音讯) message.getMessageId();//获取工作ID message.getContent();//获取推送内容 ... } @Override public void onNotifyMessageReceive(Context context, MobPushNotifyMessage message) { //告诉音讯达到 message.getMobNotifyId();//获取音讯ID message.getMessageId();//获取工作ID message.getTitle();//获取推送题目 message.getContent();//获取推送内容 ... } @Override public void onNotifyMessageOpenedReceive(Context context, MobPushNotifyMessage message) { //告诉被点击事件 message.getMobNotifyId();//获取音讯ID message.getMessageId();//获取工作ID message.getTitle();//获取推送题目 message.getContent();//获取推送内容 ... } @Override public void onTagsCallback(Context context, String[] tags, int operation, int errorCode) { //标签操作回调 //tags 已增加的标签汇合 //operation 0:获取标签 1:设置标签 2:删除标签 //errorCode 0:操作胜利 其它:操作失败 ... } @Override public void onAliasCallback(Context context, String alias, int operation, int errorCode) { //别名操作回调 //alias 对应的别名 //operation 0:获取别名 1:设置别名 2:删除别名 //errorCode 0:操作胜利 其它:操作失败 ... } };MobPush.addPushReceiver(mobPushReceiver);登记推送监听性能阐明登记推送监听,在利用销毁时调用登记函数,登记已增加过的推送监听。参数阐明参数 ...

April 18, 2023 · 3 min · jiezi

关于android:从零学习SDK7如何打包SDK

打包SDK的目标是为了不便将SDK提供给其余开发者或用户应用,以及保障SDK的兼容性和安全性。打包SDK能够有以下几个益处: 缩小依赖:打包SDK能够将SDK所需的库、资源、文档等打包成一个文件或者一个目录,这样就不须要用户再去装置或配置其余的依赖,简化了应用流程。提高效率:打包SDK能够对SDK进行编译、压缩、优化等操作,这样能够进步SDK的运行速度和性能,缩小内存和磁盘的占用。加强兼容性:打包SDK能够针对不同的平台、语言、框架或畛域进行定制和适配,这样能够保障SDK在不同的环境下都能失常工作,避免出现兼容性问题。保障安全性:打包SDK能够对SDK进行签名、加密、混同等操作,这样能够保障SDK的完整性和起源可信性,避免被篡改或反编译。SDK的优化和打包工具通常包含以下几个方面:编译器:编译器是一种将源代码转换为可执行代码的工具,它能够对源代码进行语法分析、类型查看、优化等操作,以进步代码的执行速度和安全性。例如,Java SDK提供了javac编译器,它能够将Java源代码编译成字节码,并进行优化。要应用javac编译器,咱们须要在命令行中输出以下命令:javac [options] [source files]其中,options是一些可选的编译参数,例如-d指定输入目录,-g指定生成调试信息等;source files是一个或多个Java源文件的门路,例如HelloWorld.java。 压缩器:压缩器是一种将可执行代码或资源文件进行压缩的工具,它能够去除冗余的空格、正文、变量名等,以缩小代码或资源文件的大小。例如,Android SDK提供了ProGuard压缩器,它能够对Android应用程序的字节码进行压缩和混同。要应用ProGuard压缩器,咱们须要在Android我的项目中配置proguard-rules.pro文件,并在build.gradle文件中启用minifyEnabled选项:android { buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}打包器:打包器是一种将多个可执行代码或资源文件打包成一个文件的工具,它能够不便地散发和部署应用程序或零碎。例如,Java SDK提供了jar打包器,它能够将多个字节码文件打包成一个jar文件。要应用jar打包器,咱们须要在命令行中输出以下命令:jar [options] [jar-file] [manifest-file] [entry-point] [-C dir] files ...其中,options是一些可选的打包参数,例如-c创立新的jar文件,-v生成具体输入等;jar-file是要创立或更新的jar文件的名称;manifest-file是一个可选的清单文件,用于指定jar文件的元数据;entry-point是一个可选的主类名,用于指定jar文件的入口点;-C dir是一个可选的切换目录选项;files是一个或多个要增加到jar文件中的文件或目录。 签名器:签名器是一种对打包后的文件进行数字签名的工具,它能够保障文件的完整性和起源可信性。例如,Android SDK提供了apksigner签名器,它能够对Android应用程序的apk文件进行签名。要应用apksigner签名器,咱们须要在命令行中输出以下命令:apksigner sign --ks [keystore] --ks-key-alias [alias] [apk-file]其中,keystore是一个密钥库文件,用于存储密钥和证书;alias是一个密钥库条目标别名,用于标识密钥和证书;apk-file是要签名的apk文件的门路。 总之,SDK的优化和打包是一种晋升代码品质和可移植性的形式,能够依据不同的指标和需要进行抉择和应用。

April 18, 2023 · 1 min · jiezi

关于android:游戏内嵌社区服务开放助力开发者提升玩家互动与留存

华为 HMS Core 游戏内嵌社区服务提供快速访问华为游戏核心论坛能力,反对玩家间接在游戏内浏览帖子和交换互动,助力开发者扩大内容生产和触达的场景。 一、为什么要游戏内嵌社区? 二、游戏内嵌社区的典型应用场景1、游戏内关上论坛 您能够在游戏内绘制论坛入口,为玩家提供沉迷式发帖、浏览、点赞、回帖、参加投票等各类互动体验。 阐明:您可依据游戏格调,自定义论坛背景图片和横竖屏方向。 2、提供丰盛的流动入口您可在游戏内绘制流动入口,减少流动曝光量,晋升玩家参与度。 3、攻略帖指引玩家您可在游戏完结或关卡失败后等场景,举荐更多优质的社区内容吸引玩家,例如攻略帖、教训帖等。 4、内容一键分享玩家在进行截图等操作时,能够抉择一键公布至华为游戏核心论坛,简略便捷,促成内容生产。 三、胜利案例《江南百景图》是由椰岛游戏自主研发的古风模仿经营类手游。玩家将梦回明朝江南地区,成为城市的设计师,描述蓝图、兴造修建、布局布局、经营赚钱,打造专属于玩家的江南小镇。 1、接入内嵌社区后,内容生产晋升显著 *以上数据来自华为游戏核心2023年2月28日业务统计数据 2、举荐位的单帖浏览量晋升显著 *以上数据来自华为游戏核心2023年2月28日业务统计数据 四、如何接入游戏内嵌社区1、已开明社区板块应用游戏内嵌社区前,游戏需已开明社区板块。 点击链接,理解社区板块开明和治理流程。 2、已开明游戏内嵌社区服务 3、集成内嵌社区SDK接口简略,仅需接入大量接口。 点击链接,理解更多接入游戏内嵌社区性能。 五、常见问题游戏内嵌社区SDK较Deeplink关上华为游戏核心论坛的形式有什么区别和劣势?Deeplink形式仅能拉起游戏核心App竖屏论坛页面,存在过程切换和横竖屏切换的问题,玩家体验不佳;而游戏内嵌社区SDK可提供横屏和竖屏布局,反对在游戏内间接拉起论坛页面,并且反对背景色彩,背景图片配置,为玩家提供沉迷式体验。此外,还有快捷公布内容至论坛、跳转流动或攻略帖等扩大能力。 理解更多详情>> 拜访华为开发者联盟官网 获取开发领导文档 华为挪动服务开源仓库地址:GitHub、Gitee 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

April 18, 2023 · 1 min · jiezi

关于android:MobPush-Android-SDK-集成指南

开发工具:Android Studio 集成形式:Gradle在线集成 安卓版本反对:minSdkVersion 19 集成筹备注册账号应用PushSDK之前,须要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情能够点击查看注册流程 MobPush后盾配置注册MobTech账号后,须要在MobTech后盾进行相干信息的配置,详情能够点击查看具体配置信息 MobPush流程图 集成配置配置Maven在我的项目Gradle文件中注册MobSDK的Maven地址 buildscript { repositories { // 1.增加MobSDK Maven地址 maven { url "https://mvn.mob.com/android" } } dependencies { // 2.注册MobSDK classpath "com.mob.sdk:MobSDK2:+" }allprojects { repositories { maven { url "https://mvn.mob.com/android" } } }}配置依赖在我的项目App Module的Gradle文件中增加插件和MobSDK块(如果是多moudle我的项目,请在子moudle和主module下均配置以下代码) // 调用MobTech SDKapply plugin: 'com.mob.sdk'MobSDK { appKey "替换为MobTech官网申请的appkey" appSecret "替换为MobTech官网申请的appkey对应的appSecret" MobPush {}}配置标识在gradle.properties中增加代码 MobSDK.spEdition=FP配置混同代码在我的项目中增加如下混同代码 -keep class com.mob.**{*;}-dontwarn com.mob.**隐衷受权回传用户隐衷受权后果(submitPolicyGrantResult)为保障您的App在集成MobSDK之后可能满足工信部相干合规要求,您应确保App装置首次冷启动且获得用户浏览您《隐衷政策》受权之后,调用MobSDK.submitPolicyGrantResult回传隐衷协定受权后果。 反之,如果用户不批准您App《隐衷政策》受权,则不能调用MobSDK.submitPolicyGrantResult回传隐衷协定受权后果。 请参考链接合规指南 /** * com.mob.MobSDK.class * 回传用户隐衷受权后果 * @param isGranted 用户是否批准隐衷协定 */ public static void submitPolicyGrantResult(boolean isGranted)示例代码 注:调用地位开发者能够本人指定,只需在应用SDK性能之前调用即可,强烈建议开发者在终端用户点击利用隐衷协定弹窗批准按钮后调用。 ...

April 17, 2023 · 1 min · jiezi

关于android:未来源码什么是数据集成超全的SeaTunnel-集成工具介绍

以下文章来源于大数据与云原生技术分享 ,作者liugp 举荐语:随着互联网流量爆发式增长,越来越多的公司业务须要撑持海量数据存储,对高并发、高可用、高可扩展性等个性提出了更高的要求。这也促使各种类型的数据库疾速倒退,至今常见数据库曾经达到 200 多个。与之相伴的便是,各种数据库之间的同步与转换需要激增,数据集成便成了大数据畛域的一个亟需解决的方向。以后市面上没有一个简略易用且反对每天数百亿条海量数据同步的开源软件,于是 SeaTunnel 应运而生。 SeaTunnel 是一个十分好用、超高性能的分布式数据集成平台,架构于 Apache Spark 和 Apache Flink 之上,实现了海量数据的实时同步与转换。每天能够稳固高效地同步数百亿数据,目前已靠近百家公司在生产上应用。 ——MobTech袤博科技政府产研部Java开发专家  竹石 一、什么是数据集成? 数据集成是指将来自不同数据源的数据整合到一起造成一个对立的数据集。这个过程包含从不同的数据源中收集数据,对数据进行荡涤、转换、重构和整合,以便可能在一个对立的数据仓库或数据湖中进行存储和治理。数据集成能够帮忙企业更好地了解和利用他们的数据,并促成数据驱动的决策和业务流程优化。在数据集成过程中,须要思考数据品质、数据安全性、数据格式、数据结构等方面的问题,并采纳适当的技术和工具来解决这些问题,例如 ETL(抽取、转换、加载)工具、数据映射工具、数据荡涤工具、数据建模工具等。个别数据集成用到的工具次要有:Sqoop、DataX、或是本章解说的 SeaTunnel,这三个工具都是数据转换集成工具,应用其中一个即可,其实也能够这样认为 Sqoop 是第一代,DataX 是第二代,SeaTunnel 是第三代工具,Sqoop 用的不是很多了,Datax 应该用的还是比拟多的,SeaTunnel 是 Apache 顶级我的项目,也是最新代的数据集成工具,有趣味的小伙追随我的文章一起理解 SeaTunnel 工具。想理解 Sqoop 和 DataX 小伙伴能够查阅我以下文章:[大数据Hadoop之——数据同步工具Sqoop][大数据Hadoop之——数据同步工具DataX] 二、ETL 又是什么?后面的文章其实讲过 ETL,这里只是再次回顾以下,ETL 中的 E 是extract,数据抽取;T 是 Transform,代表数据的转换;L 代表Load,数据加载。 三、SeaTunnel 介绍1)概述Apache SeaTunnel 是一个分布式、高性能、易扩大、用于海量数据(离线&实时)同步和转化的数据集成平台,每天可稳固高效地同步数百亿数据,并具备 已用于生产近100家公司。 SeaTunnel 官网:https://seatunnel.apache.org/SeaTunnel GitHub:https://github.com/apache/incubator-seatunnelSeaTunnel 工作流程图: 2)SeaTunnel 的作用SeaTunnel专一于数据集成和数据同步,次要针对解决数据集成畛域的常见问题: 各种数据源:有数百个罕用数据源,其版本不兼容。随着新技术的呈现,更多的数据源正在呈现。用户很难找到可能齐全疾速反对这些数据源的工具。简单同步场景:数据同步须要反对离线-全量同步、离线-增量同步、CDC、实时同步、数据库全量同步等多种同步场景。资源需要高:现有的数据集成和数据同步工具往往须要大量的计算资源或JDBC连贯资源来实现海量小表的实时同步。这在肯定水平上减轻了企业的累赘。不足品质和监控:数据集成和同步过程常常会遇到数据失落或反复的状况。同步过程不足监控,无奈直观地理解工作过程中数据的真实情况。简单的技术栈:企业应用的技术组件不同,用户须要针对不同的组件开发相应的同步程序来实现数据集成。治理和保护难度大:受限于不同的底层技术组件(Flink/Spark),离线同步和实时同步往往离开开发和治理,减少了治理和保护的难度。3)SeaTunnel 的特点丰盛且可扩大的连接器:SeaTunnel 提供了一个不依赖于特定执行引擎的连接器 API。基于此 API 开发的连接器(源、转换、接收器)能够在许多不同的引擎上运行,例如以后反对的 SeaTunnel 引擎、Flink、Spark。连接器插件:插件设计容许用户轻松开发本人的连接器并将其集成到 SeaTunnel 我的项目中。目前,SeaTunnel曾经反对100多个连接器,而且数量还在激增。有列表 以后反对的连接器批量流集成:基于 SeaTunnel 连接器API开发的连接器,完满兼容离线同步、实时同步、全同步、增量同步等场景。它大大降低了治理数据集成工作的难度。 反对分布式快照算法,保证数据一致性。多引擎反对:SeaTunnel 默认应用 SeaTunnel 引擎进行数据同步。同时,SeaTunnel 还反对应用 Flink 或 Spark 作为连接器的执行引擎,以适应企业现有的技术组件。SeaTunnel 反对多个版本的 Spark 和 Flink。JDBC多路复用,数据库日志多表解析:SeaTunnel反对多表或全数据库同步,解决了JDBC连贯过多的问题;反对多表或全库日志读写解析,解决了CDC多表同步场景反复读取解析日志的问题。高吞吐、低时延:SeaTunnel 反对并行读写,提供稳固牢靠的数据同步能力,高吞吐、低时延。欠缺的实时监控:SeaTunnel反对数据同步过程中每个步骤的具体监控信息,让用户轻松理解同步工作读写的数据数量、数据大小、QPS等信息。4)Seatunnel 劣势与毛病劣势 简略易用,灵便配置,无需开发模块化和插件化反对利用SQL做数据处理和聚合因为其高度封装的计算引擎架构,能够很好的与中台进行交融,对外提供分布式计算能力毛病 Spark反对2.2.0 - 2.4.8,不反对spark3.xFlink反对1.9.0,目前flink曾经迭代至1.14.x,无奈向上兼容Spark作业尽管能够很快配置,但相干人员还须要懂一些参数的调优能力让作业效率更优5)核心理念SeaTunnel 设计的外围是利用设计模式中的“管制翻转”或者叫“依赖注入”,次要概括为以下两点: 下层不依赖底层,两者都依赖形象;流程代码与业务逻辑应该拆散。整个数据处理过程,大抵能够分为以下几个流程:输出 -> 转换 -> 输入,对于更简单的数据处理,本质上也是这几种行为的组合: ...

April 14, 2023 · 2 min · jiezi

关于android:安卓手机安装magisk

刷机与装置Magisk,工具与流程,雏鹰腾飞,一条龙手把手式文档 Magisk呈现的背景抉择Android手机的同时,也抉择了一种有限的可能,究竟还是时势造英雄 为了冲破OEM(Original Equipment Manufacturer,代工生产)定制利用的机型限度,给Android插上一双翅膀为了解决Netflix,Google Play等一众利用不能在曾经root的手机上失常运行为了解决改变过的系统文件的ROM(硬盘存储)不能通过OEM渠道进行失常的OTA降级(Over-the-Air Technology, 在线降级手机零碎)Magisk做了什么通过挂载一个与系统文件相隔离的文件系统来加载自定义内容,为零碎分区关上了一个通往平行世界的入口,所有改变在那个世界(Magisk 分区)里产生,在必要的时候却又能够被认为是(从零碎分区的角度而言)没有产生过 达到的成果不毁坏或更改原有零碎的完整性,零碎处于一个非root状态,然而Magisk外部运行的模块能够获取到root权限当被挂载的 Magisk 分区被暗藏甚至被勾销挂载时,原有零碎分区的完整性丝毫未损能够运行须要 root 验证的程序能够运行对设施认证状态有要求的利用能够进行须要验证零碎完整性的 OTA 更新Magisk能够被看作是一种挂载文件系统,这种文件系统通过奇妙的实现形式避开了对系统文件的间接批改,从稳定性上来看要优于以往任何一种零碎框架Magisk我的项目信息官网我的项目地址 https://github.com/topjohnwu/Magiskrelease包信息 https://github.com/topjohnwu/Magisk/releases须要在release模块下载一个release apk包,目前最新的是Magisk-v26.1.apk,后续如果有更新的就先尝试下载更新的包,下载实现之后把文件名称改一下,后缀改成zip,改成Magisk.zip 本机测试的时候可能因为机型比拟旧,Magisk装置实现之后点击Android图标无反馈,所以就降版本到Magisk-v25.2.apk之后再次装置才胜利 前提常识手机刷机root和unlockBootloader的比照root手机是获得了零碎的最高权限,应用该账号能够读写以及执行零碎的任意文件UnlockBootloader是解除系统启动加载器Bootloader的原厂限度,让用户能够进行更多操作(刷新内核,刷ROM),bootloader/fastboot模式处于设施上电开机到进入零碎前的一个阶段或者模式,实现刷机是在bootloader阶段之后的recovery模式Android分区与模式Android设施有3个重要分区: 启动加载程序(Boot loader)、复原(Recovery)和 手机零碎(Android ROM)Boot loader最先加载并决定要加载的下一个分区,此分区通常是Android ROMRecovery模式是一个小型Linux操作系统, 用于装置Android ROM分区更新的模式, 在对手机复原出厂设置时也会应用Recovery模式Fastboot是一种协定,可用于通过USB从计算机连贯到设施,并向设施的分区收回更新fastboot模式是android sdk附带的工具,能够用来 re-flash 设施的分区,能够装置recovery image进入到不同的模式每个手机进入到fastboot界面和recovery的按钮操作是不同的 小米手机是按住电源键 + 音量下键进入到fastboot界面小米手机在启动的时候,按住电源键 +音量上键,当呈现小米logo界面,松开电源键,呈现recovery界面的时候能力松开音量上键其余手机进入到fastboot界面,参考 https://tutorials.how/android/boot-into-fastboot-mode/其余手机进入到recovery界面,参考 https://www.xda-developers.com/how-to-boot-to-recovery/?newsletter_popup=1试验设施信息Xiaomi Redmi note 7 Pro 小米/一加等手机官网反对unlock Bootloader ,操作起来会比拟不便 最初要做好思维筹备,试验手机上的所有数据即便全副失落也没关系,当手机启动的时候界面弹出your system has been destroyed而后只能关机的时候也不要慌乱(这个状况下尽管不能进入到手机零碎,然而还是能够进入到bootloader界面,能够进入到recovery模式刷机解决) 手机刷机必要步骤unlock bootloader配置手机的明码解锁(输出字符的)以及图案明码,如果有指纹解锁,也配置一下,如果不配置可能影响到前面手机进入recovery 模式时候的操作,手机进入到recovery模式失常的时候是须要输出一下明码的,该明码就是配置的手机解锁明码开启手机USB调试模式,手机刷机过程中,重启之后USB调试模式可能会被敞开,所以每次开机实现之后尽量检查一下该模式解锁bootloader关上开发者选项,点击进入设施解锁状态,而后会看到官网的设施解锁操作流程,依照其流程操作 个别是插入SIM卡之后,绑定实现小米账号从小米的官网获取到解锁工具地址,在windows零碎上,下载安装解锁工具,拜访地址 http://www.miui.com/unlock/index.html进行下载,下载之后运行压缩包外面的miflash_unlock.exe,这时须要再次登录小米账号(如果显示miflash有更新,肯定要抉择更新)之后应用usb数据线连贯手机与电脑,同时手机须要关上USB调试模式,配置USB可传输文件形式 在windows上关上设施管理器,在其余设施选项上面会有一个Android Phone的选项,点击更新驱动,抉择浏览计算机以查找驱动程序软件(R),抉择从http://www.miui.com/unlock/index.html的miui下载的解锁工具解压进去的driver文件夹进行驱动更新(旧版本的解锁工具是没有driver文件夹的,所以在运行解锁工具的时候有更新提醒,肯定要更新,目前下载的版本是miflash_unlock-6.5.406.31,解压进去会有个driver文件夹)更新实现之后查看电脑端解锁工具,根据提醒操作手机 操作手机进入到bootloader模式,该模式有点相似与PC装机时候常常看到的BIOS模式最初windows上的解锁工具检测到设施之后点击解锁,重启手机,进入开发者模式,看到如下信息,示意手机unlock胜利 Android platform tools装置官网下载拜访地址 https://developer.android.com/tools/releases/platform-tools在Ubuntu零碎装置ADB与fastboot $ sudo apt install android-tools-adb android-tools-fastbootADB工具(Android Debug Bridge)一种容许模拟器或已连贯的 Android 设施进行通信的命令行工具,它可为各种设施操作提供便当,如装置和调试利用,并提供对 Unix shell(可用来在模拟器或连贯的设施上运行各种命令)的拜访 ...

April 14, 2023 · 3 min · jiezi

关于android:Android-Crash-前的最后抢救

家喻户晓,当 Andoird 程序产生未捕捉的异样的时候,程序会间接 Crash 退出。而所谓安全气囊,是指在 Crash 产生时捕捉异样,而后触发兜底逻辑,在程序退出前做最初的抢救。 一,Java捕捉异样在实现安全气囊之前,咱们先思考一个问题,像 bugly、sentry 这种监控框架是如何捕捉异样并上传堆栈的呢?要理解这个问题,咱们首先要理解一下当异样产生时是怎么流传的。 能够看到,异样到奔溃的流程很简略,次要分为以下几步: 当抛出异样时,通过Thread.dispatchUncaughtException进行散发。顺次由Thread,ThreadGroup,Thread.getDefaultUncaughtExceptionHandler解决。在默认状况下,KillApplicationHandler会被设置defaultUncaughtExceptionHandler。而后KillApplicationHandler中会调用Process.killProcess退出利用。能够看出,如果咱们通过Thread.setDefaultUncaughtExceptionHandler设置自定义处理器,就能够捕捉异样做一些兜底操作了,其实 bugly 这些库也是这么做的。 二、自定义异样处理器那么如果咱们设置了自定义处理器,在外面只做一些打印日志的操作,而不是退出利用,是不是就能够让 app 永不解体了呢?答案当然是否定的,次要有以下两个问题: 2.1 Looper 循环问题咱们晓得,App 的运行在很大程序上依赖于 Handler 音讯机制,Handler 一直的往 MessageQueue 中发送 Message,而Looper则死循环的一直从MessageQueue中取出Message并生产,整个 app 能力运行起来。而当异样产生时,Looper.loop 循环被退出了,事件也就不会被生产了,因而尽管 app 不会间接退出,但也会因为无响应产生 ANR。因而,当解体产生在主线程时,咱们须要复原一下Looper.loop。 2.2 主流程抛出异样问题当咱们在主淤积抛出异样时,比方在onCreate办法中,尽管咱们捕捉住了异样,但程序的执行也被中断了,界面的绘制可能无奈实现,点击事件的设置也没有失效。这就导致了 app 尽管没有退出,但用户却无奈操作的问题,这种状况仿佛还不如间接 Crash 了呢。 因而咱们的安全气囊应该反对配置,只解决那些非主流程的操作,比方点击按钮触发的解体,或者一些打点等对用户无感知操作造成的解体。  三、方案设计为了解决下面提到的两个问题,咱们提出了如下的计划: 思路如下: 注册自定义DefaultUncaughtExceptionHandler。当异样产生时捕捉异样。匹配异样堆栈是否合乎配置,如果合乎则捕捉,否则交给默认处理器解决。判断异样产生时是否是主线程,如果是则重启Looper。 上面是实现代码: fun setUpJavaAirBag(configList: List<JavaAirBagConfig>) { val preDefaultExceptionHandler = Thread.getDefaultUncaughtExceptionHandler() // 设置自定义处理器 Thread.setDefaultUncaughtExceptionHandler { thread, exception -> handleException(preDefaultExceptionHandler, configList, thread, exception) if (thread == Looper.getMainLooper().thread) { // 重启 Looper while (true) { try { Looper.loop() } catch (e: Throwable) { handleException( preDefaultExceptionHandler, configList, Thread.currentThread(), e ) } } } }}private fun handleException( preDefaultExceptionHandler: Thread.UncaughtExceptionHandler, configList: List<JavaAirBagConfig>, thread: Thread, exception: Throwable) { // 匹配配置 if (configList.any { isStackTraceMatching(exception, it) }) { Log.w("StabilityOptimize", "Java Crash 已捕捉") } else { Log.w("StabilityOptimize", "Java Crash 未捕捉,交给原有 ExceptionHandler 解决") preDefaultExceptionHandler.uncaughtException(thread, exception) }}通过下面的步骤,咱们实现了一个 Java 层安全气囊,然而如果产生 Native 层解体时,程序还是会解体。那么咱们能不能依照 Java 层安全气囊的思路,实现一个 Native 层的安全气囊。 ...

April 14, 2023 · 2 min · jiezi

关于android:从零学习SDK6调试和测试SDK的库

在后面的文章中,咱们介绍了什么是SDK,以及如何抉择和接入适合的SDK。在本文中,咱们将重点解说如何调试和测试SDK的库,以确保咱们的利用可能失常运行,没有谬误或异样。 SDK的库是什么呢?简略来说,就是SDK中提供的一些预编译或封装好的代码模块,能够不便开发者调用或援用,实现特定的性能或成果。例如,Java SDK(JDK)中就有很多罕用的库,如java.lang、java.util、java.io等。SDK的库能够进步开发效率,缩小重复劳动,保障代码的稳定性和兼容性。 调试和测试SDK的库的目标是为了查看咱们的代码是否正确地应用了SDK提供的性能,是否存在潜在的问题或危险,以及是否可能达到预期的成果。调试和测试SDK的库的办法有很多,这里咱们只介绍一些罕用的。 应用SDK提供的文档和示例很多SDK都会提供具体的文档和示例,阐明如何应用SDK的库,以及注意事项和常见问题。咱们能够参考文档和示例,学习如何正确地调用SDK的库,以及如何解决可能呈现的谬误或异样。文档和示例也能够帮忙咱们了解SDK的库的工作原理和逻辑,不便咱们进行调试和测试。 应用IDE或编辑器的调试工具IDE或编辑器有内置或插件式的调试工具,能够帮咱们在编写代码时实时查看语法错误,设置断点,单步执行,查看变量值等。这些调试工具能够帮忙咱们疾速定位代码中的问题,以及跟踪代码的执行流程。咱们能够利用这些调试工具,查看咱们是否正确地应用了SDK的库,以及是否有潜在的逻辑谬误或内存透露等。 应用单元测试或集成测试工具单元测试或集成测试是指对代码中的某个模块或性能进行独立或协同的测试,验证其是否合乎预期。很多SDK都会提供单元测试或集成测试工具,如JUnit、TestNG等。咱们能够利用这些测试工具,编写针对SDK的库的测试用例,笼罩各种输入输出状况,查看是否有谬误或异样产生,以及是否可能达到预期的成果。 应用模拟器或真机进行运行测试咱们编写的利用部署到模拟器或真机上进行理论运行,察看其体现和性能。一些罕用的运行测试框架,例如Android Studio、Xcode。咱们能够利用这些运行测试工具,在不同的设施、零碎、网络等环境下运行咱们的利用,查看是否有兼容性问题、性能问题、平安问题等。 通过以上几种办法,咱们就能够对SDK的库进行无效地调试和测试,进步咱们利用的品质和稳定性。当然,这些办法并不是一次性实现的,而是须要在开发过程中一直地进行重复地进行。同时,也须要依据不同的SDK和利用场景抉择适合的办法和工具。

April 14, 2023 · 1 min · jiezi

关于android:MobTech-ShareSDK如何从分享到回流

一、反对40+支流平台的分享与受权ShareSDK是一个社会化登录分享组件,能够让开发者轻松地在APP中集成微信、抖音、QQ、微博、Facebook、Twitter等寰球40多个支流社交平台的分享与受权性能。这样,用户能够用本人相熟的社交账号登录APP,也能够把APP中的内容疾速地分享到本人的社交圈,从而为APP引入大量的社交流量。 社交流量是一种高质量的流量,因为它来源于用户的自发举荐和口碑流传,具备很高的信任度和转化率。通过ShareSDK,开发者能够让APP领有更宽泛的曝光和流传能力,进步APP的用户增长和活跃度。 二、提供残缺清晰的分享数据统计ShareSDK不仅提供了弱小的分享性能,还提供了残缺清晰的分享数据统计,在开发者平台能查看到分享次数、分享渠道、分享用户等数据。这些数据能够帮忙开发者理解到用户的分享行为偏好,以此优化分享页面的设计和分享内容的制作。 例如,开发者能够通过数据分析出哪些平台、哪些内容、哪些时间段是用户最喜爱分享的,而后针对性地调整分享按钮的地位、大小、色彩等视觉元素,以及优化分享文案、图片、链接等内容元素,从而进步用户的分享志愿和点击率。 三、统计分享要害用户,实现精细化的用户经营ShareSDK还能够统计出哪些用户是通过分享引入的新用户,以及哪些用户是通过本人的分享带来了新用户。这些用户是APP经营中十分重要的要害用户,因为他们具备很高的价值和影响力。开发者能够通过ShareSDK对这些要害用户进行标签化和分群治理,实现精细化的用户经营。 例如,开发者能够针对老带新的要害用户设计一些处分模式,如积分、红包、优惠券等,激励他们持续进行分享邀请。也能够针对新引入的要害用户设计一些疏导模式,如老手教程、工作挑战、收费试用等,促成他们疾速相熟和应用APP。这样,就能够进步要害用户的忠诚度和留存率。

April 13, 2023 · 1 min · jiezi

关于android:MobTech-MobPush不同手机厂商推送问题

配置了华为厂商推送,为什么有的华为设施无奈接管离线音讯首先,排查配置的华为厂商参数是否正确; 其次,查看华为设施EMUI版本,低于5.0可能不反对,如果低于5.0,能够尝试降级设施里的‘华为挪动服务’利用,降级‘华为挪动服务’可能会反对华为厂商推送。 华为厂商长文本款式有效应用华为长文本款式,题目(title)为必填项。 华为厂商解析intent为空华为传递数据给利用仅在NC版本在在9.11及以上版本失效,NC版本查看形式(设置-利用-利用治理-推送服务),老旧设施存在无推送服务或版本较低问题,可尝试降级版本解决,如无奈降级,华为未给出老旧设施兼容计划。具体阐明可查看:自定义点击音讯动作 集成华为厂商通道上架Google商店被拒,应该怎么解决?如上架google商店被拒文案中有“We found your app is using a non-compliant version of Huawei Mobile Services SDK which contains code to download or install applications from unknown sources outside of Google Play”字样,起因是您以后应用的华为厂商SDK版本过低,华为在 6.3.0.304(2022-03-31)及以上的版本修复了该问题,您可在Gradle脚本中被动申明该版本,示例如下。 OPPO推送时按全副人群进行推送,为什么有的OPPO设施接管不到因为OPPO推送对应全副人群这种全量推送是有个工夫限度规定的,当全量推送时当天新注册的OPPO设施是不失效的,第二天才失效,被全量推送计算在指标设备组中,T+1规定。 而对应繁多OPPO设施推送时,没有T+1规定限度,注册胜利即立刻失效。 OPPO和VIVO设施告诉权限开关问题OPPO: 在未接入OPPO PUSH前,利用的告诉栏权限是默认敞开状态; 接入OPPO PUSH后,ColorOS3.1至5.0版本的OPPO手机,用户激活了相干利用后,告诉栏权限会默认关上。特地阐明,若用户在应用旧版本利用(未集成OPPO PUSH),手动将利用的告诉栏权限进行了敞开,则只有用户手动卸载旧版本利用,再装置新版本(集成OPPO PUSH)并激活,告诉栏才会默认关上。采纳笼罩装置的形式,告诉栏权限不会默认开启; ColorOS5.1及当前的版本的手机,告诉栏权限由零碎对立敞开,需用户手动关上。 VIVO: 集成VPUSH,告诉权限总开关根本默认关上,但下方类别开关默认敞开,须要用户手动关上。 配置vivo厂商推送的appId和AppKey时,须要把“-”去掉吗不须要 接入vivo厂商推送,发送推送胜利,vivo设施未接管到推送查看配置是否正确,包名是否和申请vivo推送服务时的包名统一;手机告诉权限是否关上;查看音讯是否曾经送达然而折叠到了音讯盒子外面?目前的策略是利用存活时展现,不存活时折叠;查看设施联网是否有问题,如果连贯的wifi设置了代理,个别须要重启手机,能够切换手机网络重试;小米手机接管不到推送如果未在小米商店公布的挪动利用(APP),小米推送团队将有权不再提供推送服务。小米利用商店对开发者利用定期平安审核的后果,调整该利用的推送权限,如开发者利用未能通过小米利用商店定期平安审核,小米有权双方解除协定,或立刻敞开该利用的推送权限,直至该利用通过小米利用商店的平安审核并在小米利用商店公布。详情可参考:dev.mi.com/console/doc… 如果小米手机接管不到推送,请先查看告诉权限是否开启,同时小米设施从MIUI9开始告诉栏应用不重要告诉过滤,查看告诉栏里不重要告诉里是否有对应利用的告诉。 如果利用应用的其余第三方产品中的魅族厂商推送和MobPush的魅族厂商推送抵触了,推送时其中一个不起作用因为魅族厂商推送对接管监听回调只取AndroidManifest.xml中配置的第一个Reciever,所以谁在后面配置哪个产品就失效,前面配置多少个魅族厂商推送回调监听都有效。 解决办法: 自定义一个Receiver,继承自MzPushMessageReceiver,从新外面所有的办法,而后这个自定义的Receiver里调用MobPush的魅族回调和第三方产品的魅族回调;而后再AndroidManifest.xml文件中进行配置: <receiver android:name="自定义Receiver"> <intent-filter> <action android:name="com.meizu.flyme.push.intent.MESSAGE" /> <action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" /> <action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" /> <action android:name="com.meizu.c2dm.intent.REGISTRATION" /> <action android:name="com.meizu.c2dm.intent.RECEIVE" /> <category android:name="包名" /> </intent-filter> </receiver>复制代码在自定义的Receiver里实现示例: ...

April 13, 2023 · 2 min · jiezi

关于android:投放视频广告时如何快速与第三方播放器兼容

新媒体时代,广告款式越来越丰盛。相较于传统的图文信息,视频类广告更具备直观性,可能让消费者在理解产品常识和性能的同时加深对产品的印象。 因而在各类网站或App上投放视频类广告是个很好的宣传形式,但广告商们如果想在网站上展现视频广告,必须确保视频广告投放协定与公布渠道的播放器兼容;如果不能兼容,广告商或者视频广告投放平台必须创立不同的响应,来与特定视频播放器兼容。为此,互联网广告署(IAB)开发了视频广告投放模板 (VAST)这种 XML 模式,容许通过视频广告服务器提供流内视频广告,并在多个网站和设施上的视频播放器中播放,不仅解决兼容性问题,还进步了视频广告投放的效率和可扩展性。 为帮忙广告商们更好投放广告,华为鲸鸿动能平台提供了HUAWEI VAST SDK的集成,目前仅反对合乎VAST协定的线性广告(投放模式为前、中、后贴片广告)。 开发筹备集成SDK应用VAST协定时须要集成HUAWEI VAST SDK。同时如果您须要应用默认的播放器,请集成HUAWEI Player SDK。 配置Maven仓地址。Android Studio的代码库配置在Gradle 插件7.0以下版本、7.0版本和7.1及以上版本有所不同。请依据您以后的Gradle 插件版本,抉择对应的配置过程。 以7.0版本为例: a) 关上Android Studio我的项目级“build.gradle”文件。 b) 增加Maven代码库。 在“buildscript > repositories”中配置Maven仓地址。 buildscript { repositories { google() jcenter() // 配置鲸鸿动能SDK的Maven仓地址 maven {url 'https://developer.huawei.com/repo/'} }}c) 关上我的项目级“settings.gradle”文件,配置Maven仓地址。 dependencyResolutionManagement { ... repositories { google() jcenter() // 配置鲸鸿动能SDK的Maven仓地址 maven {url 'https://developer.huawei.com/repo/'} }}配置网络权限在targetSdkVersion 28及以上的手机上容许HTTP(S)网络申请,在“AndroidManifest.xml”做以下配置。 <application ... android:usesCleartextTraffic="true" > ...</application>配置混同脚本您编译APK前须要配置混同配置文件,防止混同HUAWEI VAST SDK导致性能异样。 关上Android工程利用级根目录下的“proguard-rules.pro”混同配置文件,退出排除HUAWEI VAST SDK的混同配置。 -keep class com.huawei.openalliance.ad.** { *; }-keep class com.huawei.hms.ads.** { *; }初始化SDK初始化HUAWEI VAST SDK集成HUAWEI VAST SDK后,在利用的DemoApplication类中,初始化HUAWEI VAST SDK。 ...

April 13, 2023 · 2 min · jiezi

关于android:从零学习SDK5SDK文档的学习和参考

要想充分利用SDK的劣势,仅仅下载和装置SDK是不够的,还须要学习和参考SDK提供的文档和资源。文档和资源是SDK的重要组成部分,它们能够帮忙开发者把握SDK的基本概念、构造、用法、限度和最佳实际,以及解决常见的问题和谬误。 查找SDK的文档和资源不同的SDK可能提供不同模式和渠道的文档和资源,一般来说,开发者能够从以下几个方面查找: SDK的官方网站或下载页面。这里通常会提供SDK的概述、装置指南、更新日志、常见问题等根本信息,以及指向更具体的文档和资源的链接。SDK的开发者文档。这里通常会提供SDK的具体阐明,包含SDK的架构、组件、接口、参数、返回值、错误码等,以及如何应用SDK进行开发的教程、示例代码、案例剖析等。SDK的社区或论坛。这里通常会有其余开发者分享他们应用SDK的教训、心得、问题、解决方案等,也能够与其余开发者交换和求助。SDK的源代码或GitHub仓库。这里通常会展现SDK的外部实现,也能够查看SDK的版本历史、变更记录、贡献者等。二、浏览SDK的文档和资源浏览SDK的文档和资源时,开发者应该留神以下几点:依据本人的目标和需要抉择适合的文档和资源。例如,如果只是想疾速理解SDK的基本功能和用法,能够先浏览SDK的概述和装置指南;如果想深刻理解SDK的原理和机制,能够浏览SDK的开发者文档;如果遇到了具体的问题或艰难,能够查看SDK的常见问题或社区论坛。关注SDK的版本和更新状况。不同版本的SDK可能有不同的性能和个性,也可能有不同的兼容性和稳定性。开发者应该抉择适宜本人我的项目需要和环境条件的版本,并及时关注SDK的更新日志,理解是否有新性能或修复bug。仔细阅读并了解SDK的接口阐明。接口是SDK与内部程序交互的形式,它定义了输入输出参数、返回值、错误码等信息。开发者应该仔细阅读并了解接口阐明,遵循接口标准,避免出现谬误或异样。尝试运行并批改SDK的示例代码。示例代码是展现SDK用法和成果的最直观形式,它通常蕴含了最根本或最罕用的性能。开发者应该尝试运行并批改示例代码,察看后果变动,并依据本人我的项目需要进行调整。总之,应用SDK的文档和资源进行学习和参考是从零学习SDK的重要步骤之一,也是进步开发程度和能力的有效途径之一。心愿本文能对你有所帮忙。

April 12, 2023 · 1 min · jiezi

关于android:MobPush创建推送

性能阐明MobPush提供遵循REST标准的HTTP接口,实用各开发语言环境调用。IP绑定工作台能够绑定服务器IP地址,未绑定之前所有IP均可进行REST API的调用,绑定后进仅绑定的IP才有调用权限。 调用地址POSThttp://api.push.mob.com/v3/push/createPush申请头字段名 类型 选项 含意 Content-Type string 必填 必要参数,固定值application/json key string 必填 MobTech提供的AppKey sign string 必填 加密参数,加密规定为: md5(申请参数+MobAppSecret) 推送对象以 JSON 格局表白,示意一条推送相干的所有信息。字段名 类型 选项 含意 workno string 可选 自定义工作id,默认由MobTech主动生成,无需传递(需保障唯一性) source string 必填 固定值webapi appkey string 必填 MobTech提供的AppKey pushTarget object 必填 推送指标 pushNotify object 必填 推送展现细节配置 pushOperator object 可选 经营保障相干配置 pushForward object 可选 link 相干关上配置 pushCallback object 可选 推送回调配置 pushFactoryExtra object 可选 厂商非凡配置 userExtra object 可选 用于给客户提供一些用于解释推送工作的字段裁减 groupId string 可选 ...

April 11, 2023 · 7 min · jiezi

关于android:MobTech-MobLink裂变拓新助力运营

一、突破挪动利用孤岛在挪动互联网时代,利用的数量和品质都在一直回升,用户的需要和体验也越来越高。然而,利用之间的跳转和互通却存在很多阻碍和不便,导致用户的散失和挫败感。例如: 用户在浏览器或社交平台上看到一个乏味的内容,想要进入对应的App查看更多,却发现须要下载安装或者从新注册登录,消耗工夫和流量,打断了用户的趣味和行为。用户在App内分享了一个精彩的场景或流动给好友,好友点击链接却只能关上一个动态的网页或者下载页,无奈间接体验到App内的丰盛内容和性能,升高了分享的价值和成果。用户在不同的App之间切换,须要重复输出账号密码或者扫码验证,减少了用户的操作老本和平安危险,影响了用户的忠诚度和信任感。这些问题都反映了挪动利用之间存在着一个微小的孤岛景象,妨碍了用户的晦涩体验和利用的增长效率。为了解决这个问题,MobTech推出了一款挪动场景还原解决方案——Moblink。 二、从Web和其余平台完满跳转到AppMoblink是一种基于深度链接技术的服务性能,能够实现从Web页面、小程序、二维码等多种形式跳转到App内对应页面,并反对无码邀请、专属短链、起源追溯等性能。通过Moblink,经营人员能够实现以下几个方面的指标: 进步用户获取率:通过Moblink,经营人员能够在各种渠道和场景中,疏导用户一键唤醒App,或者首次装置启动后,间接复原对应的场景,进步用户的留存和粘性。例如,在微信公众号、小程序、朋友圈等平台上公布乏味的内容或流动,并附上Moblink链接,用户点击后就能够间接进入App内查看更多详情,无需下载安装或者从新注册登录。进步用户转化率:通过Moblink,经营人员能够实现用户之间的主动关系匹配,无需填写邀请码,简化邀请流程,进步邀请转化率,减少用户的社交属性和活跃度。例如,在App内设置一个邀请好友送红包的流动,并生成一个Moblink链接,用户分享给好友后,好友点击链接就能够间接支付红包并进入App内体验性能,无需输出邀请码或者扫码验证。进步用户分享率:通过Moblink,经营人员能够为每个用户生成一个专属的短链,反对全平台分享短链卡片,丰盛分享成果,一触即达,晋升分享流传效率和转化率。例如,在App内设置一个晒单或评估的性能,并生成一个Moblink链接,用户分享到微博、QQ、微信等平台后,其余用户点击链接就能够间接进入App内查看商品或服务的详情,并进行购买或预约。三、统计分享数据,评估渠道品质,优化经营方向除了实现从Web和其余平台跳转到App的性能外,Moblink还能够帮忙经营人员统计和剖析分享数据,评估各个渠道的品质,帮忙经营优化产品方向。通过Moblink,经营人员能够取得以下几个方面的数据服务: 实时追踪新装置或新注册用户的起源渠道:通过Moblink,经营人员能够实时追踪每个新装置或新注册用户是从哪个渠道或场景进入App的,例如是从微信公众号、小程序、朋友圈、微博、QQ等平台点击了哪个Moblink链接进入的。这样,经营人员就能够分明地理解哪些渠道或场景对用户获取有更大的奉献和影响。继续监控和评估渠道品质:通过Moblink,经营人员能够继续监控和评估每个渠道或场景的品质和成果,例如每个渠道或场景的点击量、装置量、注册量、转化量、留存率、活跃度等指标。这样,经营人员就能够及时发现哪些渠道或场景有较高的ROI(投入产出比),哪些渠道或场景有较低的ROI,从而进行相应的调整和优化。协同优化调整产品经营方向和策略:通过Moblink,经营人员能够依据数据分析后果,协同优化调整产品经营方向和策略,例如减少或缩小某些渠道或场景的投入和推广力度,优化或扭转某些渠道或场景的内容和模式,减少或删除某些性能或流动等。这样,经营人员就能够更好地满足用户的需要和爱好,进步用户的满意度和忠诚度。

April 11, 2023 · 1 min · jiezi

关于android:华为运动健康服务Health-Kit-6100版本新增功能速览

华为静止衰弱服务(HUAWEI Health Kit)6.10.0 版本新增的能力有哪些? 浏览本文寻找答案,一起退出静止衰弱服务生态小家庭! 一、 反对三方利用查问用户测量的间断血糖数据合乎申请Health Kit服务中开发者申请资质要求的企业开发者,可申请拜访用户的心率、压力、血糖等衰弱数据。 在新版本中,血糖数据类型在原有指尖血糖数据凋谢的根底上,新增反对用户间断血糖数据的凋谢。取得用户受权的开发者,可通过对应的数据凋谢接口,获取用户在一段间断测量过程中产生的多个时刻的血糖值。 二、 反对开发者获取用户对华为静止衰弱App凋谢受权的后果开发者若想拜访华为静止衰弱App的数据,须要疏导用户开启华为静止衰弱App对华为静止衰弱服务的凋谢受权。用户开启华为静止衰弱服务受权操作如图所示: 开发者在以往的集成过程中,通常会拉起用户华为静止衰弱服务连贯页面,在用户点击连贯后开启受权,然而开发者往往无奈感知用户是否真实有效的实现受权。在最新版本的性能中,咱们提供了新的机制,用于开发者感知用户华为静止衰弱App凋谢受权的后果,并针对返回后果做相应的解决,详情请参见华为静止衰弱App凋谢受权章节。 三、 新增反对衰弱预警事件订阅Health Kit云侧提供了订阅告诉机制,当用户数据发生变化时,咱们会实时告诉开发者,以便开发者利用及时获取用户最新静止衰弱数据。 针对关注用户心脏衰弱的开发者,咱们提供了对于不同心律失常类型进行订阅的衰弱预警事件。以后反对的订阅的心律失常衰弱预警类型蕴含:房性早搏、室性早搏、房颤。当用户呈现此类心律失常景象时,开发者可通过数据订阅进行感知。 四、 路线数据/跑步课程写入性能正式上线反对生态单个路线数据主动导入至华为静止衰弱App,并下发到穿戴设施(以后反对的设施:HUAWEI WATCH GT 3系列、HUAWEI WATCH GT RUNNER)。用户能够在设施上间接应用下发的路线导航,进行跑步、爬山等流动,无需掏出手机,利用手表即可轻松导航。 反对生态利用的跑步课程数据写入至华为静止衰弱App,并在已有的华为智能穿戴设施连贯并反对课程导入时,间接将课表推送到设施上,用户能够轻松便捷地投入到跑步课程训练中。 想理解更多HUAWEI Health Kit开发领导?点击链接中转。 理解更多详情>> 拜访华为开发者联盟官网 获取开发领导文档 华为挪动服务开源仓库地址:GitHub、Gitee 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

April 11, 2023 · 1 min · jiezi

关于android:MobTech-MobPush推送的下发逻辑是什么样的

Mobpush是一款由MobTech提供的业余收费的推送SDK,能够帮忙开发者实现智能化的推送服务。它反对多种推送音讯类型,全链路数据统计分析,多种厂商通道,以及用户行为剖析等性能。那么,Mobpush是如何将推送音讯下发到用户设施的呢?本文将从以下几个方面介绍Mobpush推送的下发逻辑: 推送模式推送协定厂商通道心跳机制推送模式Mobpush整体应用Mobpush自有通道+厂商通道的形式,厂商通道包含iOS的APNs,Android的厂商通道包含华为、小米、魅族、OPPO、vivo等。如下图先看下整体的推送流程:以上是Mobpush整体的流程。iOS的告诉栏音讯全副是基于APNs首先下发的,然而如果APNs发送失败,咱们会再尝试应用自有音讯通道进行音讯下发,而后再由客户端解决为本地告诉的形式达到告诉栏,这样能够保障更高的音讯达到能力。Android的告诉音讯如果对接了厂商通道,则优先会通过厂商零碎级别的通道发送,并且如果厂商通道失败,会采纳离线的形式保留,待客户端下次上线之后采纳Mobpush通道下发;所有的透传音讯都是须要通过Mobpush自有通道下发的。 推送协定Mobpush自有通道是自定义的一套基于UDP的更为简略的二进制网络通信协定。为什么会思考应用UDP协定呢?有以下几个起因: Mobpush定位为宽广开发者提供稳固、实时的推送服务,须要可能接受极大的网络累赘压力,会连贯大量的客户端,并且要踊跃保障可疾速响应;对于推送服务来说音讯内容却更多是短消息内容,并非短文,大多相似于短信长度的揭示、告诉、营销内容,能够管制在UDP数据包长度内,不须要进行分包解决,Internet上的规范MTU(最大传输单元)值为576字节,网络层IP须要占据20,UDP首部占用8个,所以只须要管制下发内容长度在576-20-8 =548字节即可;对于PUSH 来说,对数据的达到程序性要求比拟低,不像IM这种交互须要保障音讯的程序。UDP更加适宜Mobpush的协定选型了,当然在Mobpush也并不是齐全放弃如MQTT的Qos机制,这个会在对应的设置条件下可保障音讯有一次的达到。Mobpush在音讯平安上也有所思考,会在下发音讯通过压缩、AES加密解决,而加密的AES KEY是动静生成。厂商通道厂商通道是指一些手机厂商提供的推送服务,如iOS的APNs,Android的华为、小米、魅族、OPPO、vivo等。厂商通道的劣势是能够利用零碎级别的权限和资源,保障推送音讯的高效达到和低耗电。Mobpush能够主动适配不同厂商的通道,实现多通道的智能推送。为什么须要对接厂商通道呢?其实这个也是和APP的保活有及大的关系,以后Android的保活、互拉及其艰难,然而相对重要。个别的保活形式包含:利用零碎Service机制、设置过程优先级的形式、利用零碎播送、应用AlarmManager、过程间互相拉起、利用Native过程等等,然而当初android的对这些机制都有了对应策略,很难施展绝对大的作用。诚然在华为、小米、魅族各零碎中曾经有厂商本人的推送链接服务,厂商本人的推送服务必定是不会被杀死的,所以在思考推送服务的时候,利用好厂商自有通道,能够很好的保障音讯的精确达到,并且有的机型能够很好唤醒APP。 心跳机制心跳机制是指客户端和服务器之间定期发送一些小数据包来维持连贯状态和检测网络情况。Mobpush依附心跳的机制来保护客户端、路由器、基站、服务端的关系,以此反抗NAT老化问题,以确保UDP链接的套接字保活。NAT老化问题是指因为IP资源的无限以及路由器端口数量无限导致路由器会定期清理不沉闷的连贯记录。Mobpush的心跳包体只有一个字节长度,可能很大的节俭Client的流量,而且对于心跳工夫也能够调整。依据不同网络环境和设施状态,Mobpush会动静调整心跳距离,从而达到最佳的推送成果。

April 10, 2023 · 1 min · jiezi

关于android:从零学习SDK4使用SDK创建一个简单的应用程序

SDK(Software Development Kit)即软件开发工具包,是一组帮忙咱们开发出软件的工具,包含代码、文档、示例等。个别状况下,咱们须要将SDK引入到咱们的我的项目中能力应用它。比方,学Java的敌人最早接触的JDK,就是用来开发Java软件的工具包,应用时须要编写相似import java.util.*的语句来引入。此外,大部分的SDK,都须要咱们通过人工或项目管理工具,将其文件下载到指定门路能力引入。SDK通常包含以下三种类型文件: 头文件 (.h):定义了SDK提供的类、函数、变量等接口。库文件 (.lib):蕴含了SDK提供的类、函数、变量等实现代码。动静库 (.dll):在运行时动静加载到内存中,提供了SDK提供的类、函数、变量等性能。上面以C++为例,介绍如何应用SDK创立一个简略的应用程序。 第一步:在我的项目目录中新建一个Libs文件夹,再在该文件夹中别离新建inc文件夹和lib文件夹。将SDK提供的头文件放到inc文件夹中,将库文件放到lib文件夹中。第二步:在我的项目属性中配置头文件和库文件门路。抉择C/C++,惯例,附加蕴含目录,增加inc文件夹门路。抉择链接器,惯例,附加库目录,增加lib文件夹门路。抉择链接器,输出,附加依赖项,增加库文件名称。第三步:在代码中引入头文件。应用#include语句引入SDK提供的头文件。第四步:将动静库(.dll)放到可执行程序(.exe)所在的目录下。第五步:调用SDK提供的类、函数、变量等性能。以下是可供参考的示例代码: // 假如SDK提供了一个头文件mySDK.h,一个库文件mySDK.lib,一个动静库mySDK.dll// 假如SDK提供了一个类MyClass,一个函数myFunc,一个变量myVar// 引入头文件#include "mySDK.h"// 主函数int main(){ // 创立MyClass对象 MyClass myObj; // 调用myFunc函数 myFunc(); // 拜访myVar变量 int x = myVar; // 返回0 return 0;}

April 10, 2023 · 1 min · jiezi

关于android:ijkplayer升级ndk版本

因为打算近期打算重构ijkplayer的安卓局部代码 思考对于安卓硬解码局部反对c++版本须要最低21的版本,而ijkplayer仅反对16的版本,所以特记录在ndk的降级过程中须要批改的一些中央。 修改 android/contrib/tools/do-detect-env.shIJK_NDK_REL=$(grep -o '^Pkg\.Revision.*=[0-9]*.*' $ANDROID_NDK/source.properties 2>/dev/null | sed 's/[[:space:]]*//g' | cut -d "=" -f 2)echo "IJK_NDK_REL=$IJK_NDK_REL"case "$IJK_NDK_REL" in- 11*|12*|13*|14*|15*|16*)+ 11*|12*|13*|14*|15*|16*|21*)if test -d ${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9thenecho "NDKr$IJK_NDK_REL detected"在上述代码中 增加21的版本反对 修改 android/ijkplayer/build.gradlebuildToolsVersion = "30.0.3"targetSdkVersion = 30- ndkVersion = "16.1.4479499"+ ndkVersion = "21.1.6352462"versionCode = property("VERSION_CODE").toInteger()versionName = property("VERSION_NAME")将ndkVersion版本晋升至21 批改 extra/CMakeLists.txt.yuvif(ANDROID) if(${ANDROID_ABI} STREQUAL "armeabi-va7")- add_definitions(-DLIBYUV_NEON)+ add_definitions(-LIBYUV_NEON) list(APPEND ly_source_files source/compare_neon.cc.neon source/rotate_neon.cc.neon source/row_neon.cc.neon source/scale_neon.cc.neon ) elseif(${ANDROID_ABI} STREQUAL "arm64-v8a")- add_definitions(-DLIBYUV_NEON)+ add_definitions(-LIBYUV_NEON) list(APPEND ly_source_files source/compare_neon64.cc source/rotate_neon64.cc减少 android/ijkplayer/fijkplayer-full/gradle.propertiesPOM_ARTIFACT_ID=fijkplayer-fullPOM_PACKAGING=aarIJK_CXX_STL=c++_static+ APP_STL=c++_static批改 android/ijkplayer/ijkplayer-armv5/src/main/jni/Application.mkAPP_OPTIM := release- APP_PLATFORM := android-9+ APP_PLATFORM := android-16APP_ABI := armeabiNDK_TOOLCHAIN_VERSION=4.9APP_PIE := false- APP_STL := stlport_static+ APP_STL := c++_staticAPP_CFLAGS := -O3 -Wall -pipe \ -ffast-math \批改 android/ijkplayer/ijkplayer-armv5/build.gradle buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { - minSdkVersion 9 + minSdkVersion 16 targetSdkVersion rootProject.ext.targetSdkVersion } buildTypes {注: 这里仅仅是列举了 armv5 其余的平台的也须要批改 ...

April 8, 2023 · 1 min · jiezi

关于android:MobTech-ShareSDK分享报错怎么办

QQ-分享报错901111,9001010等因为QQ当初须要审核后才能够分享(之前分享不须要审核),所以此谬误解决办法只需通过腾讯开放平台的审核即可,另外要查看注册好的利用的根本信息,包名、md5签名和Bundle id是不是填写正确,和我的项目里是统一的; Android端微信分享失败微信分享失败,提醒toast:分享失败,或者进入onerror中,首先查看分享的办法参数是否足够,分享类型是否须要配置,如果这些配置没有问题,那么查看图片,能够先测试下独自分享文本,如果能够,必定是图片因为的问题,首先查看下是否有存储权限,其次查看下可能是图片加载失败,能够换个图片链接再做测试; Android端微信海内主体利用问题-分享图片失败目前微信海内主体的微信开发者张不反对分享图片,只反对网页、小程序类型的音讯,具体详情见链接:developers.weixin.qq.com/community/d… Android端QQ-分享报错25201错误码25201是Android包名查看未通过,个别是因为包名配置谬误或者是在腾讯开放平台上线,但没有与QQ开放平台关联导致; QQ开放平台关联步骤: 登录QQ开放平台-利用治理–挪动利用–关联腾讯开放平台–绑定了AppId和AppKey –而后查看–批改平台信息–Android平台,输出包名和签名能够了 Android端新浪微博客户端分享报签名谬误查看没有微博状态是不是在草稿箱中,并且有SSO的相干提醒,此类问题个别是是因为微博开放平台配置的包名和签名与您的app的不统一导致的,确保签名和包名配置的 统一即可; Android端新浪微博网页端分享问题-提醒不反对登录目前新浪微博平台反对网页短信分享,但局部账号会报错“不反对登录”,是因为该微博账号曾经开启了“多重验证”,但网页端不反对验证码验证,所以会报错“不反对登录” Android端高版本机型上分享图片不显示,低版本机型分享失常这个个别是没有应用ShareSDKFileProvider导致的,反编译apk检查一下Manifest,看一下是否有一下配置,如果没有手动在Manifest中增加上 <provider android:name="cn.sharesdk.framework.utils.ShareSDKFileProvider" android:authorities="${applicationId}.cn.sharesdk.ShareSDKFileProvider" android:exported="false" android:grantUriPermissions="true" />复制代码iOS分享微信报错(因为不反对的分享类型,无奈分享到微信)首先得查看结构分享参数里传的参数,传的类型是不是微信反对的,其次如果注册的是海内的利用,微信目前只反对分享网页类型,其余的暂不反对!如果说要分享小程序,然而userName或者开发类型传的不对,就报这个谬误 iOS端微信微信分享链接或者分享小程序报200300的错误信息的问题须要查看下结构分享参数里传值问题,有可能是图片太大,或者是链接参数问题导致的问题,也可能是Universal\_Links,存在本地多个利用host雷同的问题导致,还有可能是有新旧SDK混用 iOS端微信分享报如下谬误:error\_code=200302, error\_message=The request timed out., description=Request failed网络问题,设置了代理; iOS端微信有的时候呈现,分享缩略图,本人分享的只有本人能看见图片,他人看不见的问题通过测试发现有红包和支付者两个词不能同时呈现,红包两头加空格,标点符号都不行。 iOS端微信好友分享链接,从苹果端分享进来,在从安卓端无奈关上分享的链接问题查看结构分享参数这块,其中type类型须要抉择webpage类型,不能抉择auto类型 iOS端APICloud里微信分享报错:registerApp:universalLink除了白名单以及配置Universal link,须要查看下config.xml里是不是有querySchemes这个参数设置,设置了这个,须要增加weixinULAPI ,那么res里的info.plist里的白名单列表,不会拷贝到 工程里了,会有效,这个应该是ApiCloud自身的机制导致的 iOS端企业微信分享报错,不反对的SDK调用,应用程序没有调用此API的权限须要转到相应企业下能力分享受权的,在企业微信上,我->设置->切换企业这里转下,或者音讯->其余企业 都能切换企业,利用(应用企业A的AppKey ) 分享或受权时 企业微信以后处于企业A能力失常分享或受权,否则会呈现权限问题,企业微信只能对应的企业去分享 iOS端微信,QQ分享到客户端,然而只是关上了客户端,并没有跳转到好友列表界面须要查看下配置的URLScheme,白名单以及Universal Links,像QQ跳转到客户端,只是关上了App,可能是白名单漏写了,也可能是结构分享参数里的参数问题;微信当初多了Universal Links,除了URL Scheme,白名单,还有Universal Links,没有配置或者域名过期了都可能呈现这种状况,还有分享进来了,然而跳不回来App; iOS端QQ分享提醒以后QQ版本太低,须要更新至新版本才能够反对失落了mqqopensdkapiV4这个白名单 iOS端分享QQ,跳转到QQ之后,网页报错问题 查看了QQ的SDK版本号,还有配置的Universal links,还要查看下qq的客户端的版本,版本太低也不行,须要卸载qq客户端,重新安装才行,还有须要查看下用户是否在零碎回调里做了解决 iOS端QQ,QQ空间分享图片,然而看不到图片的问题查看白名单配置是否残缺,有可能是这个配置问题 iOS端更新到4.4.0版本的SDK,QQ会报如下谬误 Cannot find protocol declaration for 'QQApiInterfaceDelegate'; did you mean 'TencentApiInterfaceDelegate'最新的SDK里同步更新了QQ的SDK,这个问题是之前旧版本的QQ SDK没有删除洁净,要删除洁净,另外之前QQ的头文件援用都要删除掉,应用 #import <TencentOpenAPI/TencentOpenApiUmbrellaHeader.h>复制代码这个才行,因为新版本QQSDK适配了swift iOS端Facebook分享链接模式没有任何内容显示的问题 须要查看下本人传的链接,可能是传的链接有问题 iOS端Twitter分享报错问题Error Domain=ShareSDKErrorDomain Code=200302 "(null)" UserInfo={error\_code=200302, user\_data={ error = "Read-only application cannot POST."; request = "/1.1/statuses/update.json"; }} ...

April 7, 2023 · 1 min · jiezi

关于android:从零学习SDK3如何安装和配置SDK

摘要本文介绍了如何在Android和iOS两个零碎上来装置和配置SDK。SDK是软件开发工具包,它提供了一些预约义的函数、接口、文档、示例和工具,让开发者能够应用某种服务或性能。装置和配置SDK时要依据开发指标和环境来抉择适合的SDK,并依据文档或示例来设置参数和选项,并测试其性能是否失常。 如何从Android角度装置和配置SDK如果你想开发一个Android利用,那么你能够Android SDK。Android SDK是一套专门为Android零碎设计的开发工具,它蕴含了各种组件、库、模拟器和文档,让你能够轻松地创立和测试你的利用。要应用AndroidS DK,你只须要几个简略的步骤: 首先,你须要下载并装置Android Studio,这是一个弱小的集成开发环境(IDE),它曾经蕴含了Android SDK的根本组件,并提供了代码编辑、调试、测试等性能。而后,你须要在Android Studio中创立一个新的我的项目,抉择你想要开发的利用类型、最低反对的Android版本、主题等。接着,你须要在我的项目中增加你想要用到的SDK,你能够在Android Studio中搜寻并下载各种第三方SDK,比方百度AI平台、腾讯云AI平台等,或者手动导入本地的SDK文件。而后,你须要在我的项目中配置你想要用到的SDK,你能够在Android Studio中批改我的项目的build.gradle文件,增加相干的依赖库、权限、参数等。最初,你须要在我的项目中调用你想要用到的SDK,你能够在Android Studio中编写代码,应用相干的类、办法、接口等,实现你想要的性能。最初的最初,你须要在我的项目中测试你想要用到的SDK,你能够在Android Studio中运行模拟器或连贯真机,察看输入后果是否合乎预期。如果遇到任何问题或谬误,你能够查看日志或错误信息,并依据提醒进行调试或批改。如何从iOS角度装置和配置SDK开发一个iOS利用,应用iOS SDK,须要以下几个步骤: 装置Xcode,这是一个集成开发环境(IDE),它蕴含了iOS SDK的根本组件,并提供了代码编辑、调试、测试等性能。在Xcode中创立一个新的我的项目,抉择你要开发的利用类型、最低反对的iOS版本、主题等。在我的项目中增加你须要的SDK,你能够在Xcode中搜寻并下载各种第三方SDK,如百度AI平台、腾讯云AI平台等,或者手动导入本地的SDK文件。在我的项目中配置你须要的SDK,你能够在Xcode中批改我的项目的info.plist文件,增加相干的依赖库、权限、参数等。在我的项目中调用你须要的SDK,你能够在Xcode中编写代码,应用相干的类、办法、接口等,实现你想要的性能。在我的项目中测试你须要的SDK,你能够在Xcode中运行模拟器或连贯真机,察看输入后果是否合乎预期。如果遇到任何问题或谬误,你能够查看日志或错误信息,并依据提醒进行调试或批改。

April 7, 2023 · 1 min · jiezi

关于android:MobTech-MobLink无码邀请是怎么处理的

无码邀请是一种挪动场景还原的性能,它能够让用户在装置或关上App后,主动匹配邀请人的信息,无需输出邀请码。这样能够优化用户体验,进步转化率,同时缩小开发者的开发和保护老本。 无码邀请的实现原理是利用深度链接技术,将邀请人的信息作为参数附加在分享的链接中,当被邀请人点击链接时,会触发App的唤醒或下载,并将参数传递给App。App在启动后,会依据参数进行关系匹配,实现无码邀请的流程。无码邀请的具体步骤如下: 邀请人在App内生成一个专属的短链,并分享给被邀请人。短链中蕴含了邀请人的信息和指标页面的信息。开发者能够依据不同的场景和需要,自定义短链的域名、长度、有效期等属性。被邀请人点击短链,如果曾经装置了App,则间接唤醒App并跳转到指标页面;如果没有装置App,则跳转到下载页面,并在下载实现后主动关上App并跳转到指标页面。开发者能够依据用户体验和转化率的考量,自定义下载页面的款式、内容、跳转逻辑等。App在启动后,会从短链中获取邀请人的信息,并与服务器进行关系匹配,确认被邀请人是否合乎无码邀请的条件。开发者能够依据不同的业务场景和指标,自定义关系匹配的规定、处分机制、反作弊策略等。如果符合条件,则主动为被邀请人和邀请人别离发放相应的处分或优惠;如果不符合条件,则提醒被邀请人输出邀请码或从新获取无效的短链。开发者能够依据激励用户参加和分享的目标,自定义处分或优惠的类型、数量、有效期等。总结无码邀请是一种简略而无效的挪动场景还原计划,能够帮忙开发者晋升用户增长和留存。

April 6, 2023 · 1 min · jiezi

关于android:从零学习SDK2SDK的基本概念和组成部分

在上一篇文章中,咱们介绍了什么是SDK,以及为什么须要应用SDK。在这篇文章中,咱们将探讨SDK的基本概念和组成部分。 SDK的基本概念SDK是Software Development Kit的缩写,意思是软件开发工具包。它是一组专门为开发某个平台或服务的软件或应用程序而设计的工具、库、文档和示例代码。通过应用SDK,咱们能够不便地利用指标平台或服务提供的性能和接口,而无需本人编写大量的底层代码。 为了不便开发者利用集成电路提供的性能和接口,开发出各种各样的软件或应用程序,各个平台或服务商就开始提供相应的软件开发工具包——SDK。SDK能够看作是一个桥梁,连贯了底层的硬件和下层的软件,简化了软件开发的过程,进步了软件开发的效率和品质。 SDK是针对特定平台或服务而设计的。不同的平台或服务可能提供不同的SDK,比方Android SDK、iOS SDK、微信 SDK 等等。每个SDK都是为了让开发者可能更好地应用该平台或服务提供的性能和接口而定制的。 SDK的组成部分SDK是由多个局部组成的。一般来说,一个残缺的SDK应该蕴含以下几个局部: 工具:工具是指用于辅助开发者进行软件开发的应用程序或软件。例如,编译器、调试器、模拟器、测试工具等。工具能够帮忙开发者编译、运行、调试、测试他们的代码,查看并解决可能存在的谬误或问题。库:库是指封装了特定性能或接口的代码汇合,能够被开发者援用或链接到他们的我的项目中。例如,图形库、网络库、数据库库等。库能够为开发者提供各种罕用或高级的性能和接口,让他们无需本人实现它们。文档:文档是指介绍SDK中各个组件和办法的阐明和指南,通常包含API参考、教程、FAQ等。文档能够帮忙开发者理解并把握SDK中提供的性能和接口,以及如何正确地应用它们。示例代码:示例代码是指展现了如何应用SDK中各个性能或接口的代码片段或我的项目,通常能够作为开发者的参考或模板。示例代码能够帮忙开发者疾速地学习并实际SDK中提供的性能和接口,以及如何将它们利用到他们本人的我的项目中。总结在这篇文章中,咱们探讨了SDK的基本概念和组成部分。在下一篇文章中,咱们将介绍如何抉择适合的SDK,并如何装置和配置它。

April 6, 2023 · 1 min · jiezi

关于android:MobTech-秒验本机号码一键登录会泄露隐私吗

本机号码一键登录是一种新型的利用登录形式,它能够利用运营商的数据网关认证能力,实现手机号免密登录,进步用户体验和转化率,升高验证老本和流失率。本机号码一键登录反对三大运营商号码认证,3秒内实现手机号验证,无短信黑名单,无通道拥挤,验证胜利计费。本机号码一键登录提供了Android和iOS两种平台的SDK,开发者能够通过简略的集成和调用,实现本机号码一键登录性能。 本机号码一键登录的原理是:利用首先向用户展现带有本机号码掩码的受权登录页面,用户点击“批准受权”的按钮之后,利用即可获取到残缺的本机号码,从而实现用户的登录认证。在这个过程中,利用只有确认登录用的手机号码是在绑定了此号码的手机上发动的即可认证胜利。 对于很多用户来说,手机号码是一个重要的个人信息,波及到通话记录、短信内容、缴费详单等隐衷数据。那么应用本机号码一键登录时,这些数据会不会被利用获取或泄露呢? 答案是:不会。应用本机号码一键登录时,利用只能获取到用户的手机号码,并不能获取到其余任何与手机号码相干的信息。这是因为: 运营商提供的数据网关认证能力只能返回手机号码,并不能返回其余信息。运营商也有任务爱护用户的隐衷平安,不会随便向第三方提供用户的敏感信息。 利用获取到用户手机号码后,也不能通过其余路径获取到用户的其余信息。例如,利用不能通过拨打电话或发送短信来获取用户的通话记录或短信内容,因为这些操作须要用户的受权和确认。利用也不能通过服务明码或其余形式来获取用户的缴费详单或通讯录等信息,因为这些操作须要用户输出服务明码或其余凭证。 利用获取到用户手机号码后,也有责任爱护用户的隐衷平安,不会随便向第三方泄露或发售用户的手机号码。如果利用违反了相干法律法规或用户协定,将面临法律责任和信用损失。

April 4, 2023 · 1 min · jiezi

关于android:MobPush推送查询API

设施详情接口接口地址:http://api.push.mob.com/device-v3/getById/+registrationId接口示例:http://api.push.mob.com/device-v3/getById/65ou4rojokauxog申请形式:GET接口拜访频率限度:受限,参照接口频率限度申请头部参数名 参数类型 参数阐明 Content-Type application/json 必要参数 key String Mob后盾的MobAppKey sign String Mob后盾的MobAppSecret md5(因为不须要参数所以间接对Secret进行md5) 申请参数:无返回参数阐明参数名 参数类型 参数阐明 registrationId String rid 用户客户端获取的registrationId tags String[] 设施标签数组 alias String 设施别名 mobile String 手机号码( 用于短信补量等性能) openPush number 是否开启推送 1:开启,0:敞开 status number 设施状态 1:失常,3:卸载,0:删除(卸载统计未开明) 依据别名查问设施信息接口地址:http://api.push.mob.com/device-v3/getByAlias/+alias接口示例:http://api.push.mob.com/device-v3/getByAlias/554804申请形式:GET接口拜访频率限度:受限,参照接口频率限度申请头部参数名 参数类型 参数阐明 Content-Type application/json 必要参数 key String Mob后盾的MobAppKey sign String Mob后盾的MobAppSecret md5(因为不须要参数所以间接对Secret进行md5) 申请参数:无返回参数阐明参数名 参数类型 参数阐明 registrationId String rid 用户客户端获取的registrationId tags String[] 设施标签数组 alias String 设施别名 mobile String 手机号码( 用于短信补量等性能) openPush ...

April 4, 2023 · 5 min · jiezi

关于android:从零学习SDK1什么是SDK为什么要使用它

什么是SDKSDK即“软件开发工具包”,软件开发工具包个别都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建设应用软件时的开发工具的汇合。 SDK通常蕴含以下内容: 接口文件和库文件:即API,将底层的代码进行封装爱护,提供给用户一个调用底层代码的接口。帮忙文档:解释接口文件和库文件性能,以及介绍相干的开发工具,操作示例等。开发示例:做进去的一个DEMO展现,也要包含源代码。实用工具:用来帮助用户进行二次开发的工具,比方二次开发向导、API搜寻工具、软件打包工具等。 为什么要应用SDK应用SDK有以下益处: 简化开发过程:应用SDK能够省去本人编写底层代码的工夫和精力,间接调用现成的接口和性能,进步开发效率和品质。保障兼容性:应用SDK能够防止因为不同的软件包、软件框架、硬件平台、操作系统等造成的兼容性问题,确保应用软件在不同的环境下失常运行。获取业余反对:应用SDK能够取得第三方服务商或集体提供的业余反对和服务,比方技术咨询、问题反馈、更新保护等。总结SDK是一种罕用的软件开发工具包,它能够帮忙咱们疾速地创立应用软件,并且保障其稳定性和兼容性。在本系列文章中,咱们将介绍如何从零开始学习SDK,并且实际一些常见的SDK的应用场景。

April 4, 2023 · 1 min · jiezi

关于android:免费广告效果监测服务实现全链路营销效果跟踪

广告主们都心愿以低估算取得更高的广告投放收益,在投放广告后,想要理解高回报的渠道,往往须要收集并剖析繁冗的数据,耗时耗力。通过广告监测,广告主能够精确的追溯用户渠道起源,看到不同流量的用户价值,剖析广告投放成果,从而领导广告的出价和投放素材的优化,把估算花在刀刃上。 针对广告主们广告监测的需要,华为剖析服务提供收费的广告监测能力,为有广告监测需要的广告主节俭昂扬的服务老本。作为一个收费的多平台、跨设施的智能数据分析平台,华为剖析服务除了提供实时多维数据分析、全方位用户画像洞察等能力以外,已实现和鲸鸿动能广告平台的深度耦合,疾速且高效的帮忙广告主实现在鲸鸿动能广告平台投放广告的归因监测,并通过华为剖析丰盛的剖析报告为开发者提供广告投放策略调整的数据撑持,实现全链路营销成果监测。 一、 性能原理:广告主能够通过华为剖析服务上报转化事件,华为剖析依据归因模型进行归因,并回传至鲸鸿动能广告平台,实现 “曝光、点击、下载、激活、注册、留存、付费、加购”的全链路监测,缩小繁冗的数据收集、整顿工夫,更专一于思考投放策略的调整方向。 二、 劣势收费:广告主可收费应用华为剖析服务,对于有广告监测需要的广告主来说每年能够节俭数十万的服务老本。2. 开发工作量低:30min疾速集成,一键主动回传,节俭开发者工夫和技术老本。 提供丰盛的转化事件跟踪:除了激活、注册、付费、加购等转化事件以外,华为剖析服务提供了丰盛的事件埋点模板,满足不同类型广告主的须要;广告主回传个性化转化事件,实现个性化指标的转化跟踪。4. 优化获客老本:转化事件(利用激活、利用启动、付费、注册、加购)主动回传鲸鸿动能广告平台,赋能OCPX学习深度转化数据, 晋升智能出价与精准投放,优化获客老本。 广告成果实时监测:转化事件回传通道稳固高效,广告主可全链路剖析转化成果、实时监测广告成果并优化投放策略,实现ROI无效晋升。丰盛的剖析报告:华为剖析服务提供营销剖析、用户剖析、行为剖析等丰盛的剖析报告,助力广告主深刻洞察天然量和买量用户利用内的行为事件,实现精细化经营。预测与卸载剖析能力:华为剖析服务提供行为预测能力和卸载剖析能力,通过预测算法模型预测用户的潜在行为,如散失预测、卸载预测、付费预测等;针对卸载用户提供卸载用户画像、卸载前行为、卸载后流向等剖析。三、 简略五步,实现归因开明华为剖析服务并集成、初始化SDK。a) 开明华为剖析服务详情请参见开明服务。 b) 集成Android SDK详情请参见集成SDK。 c) 初始化Android SDK详情请参见初始化AnalyticsSDK。 在鲸鸿动能广告平台抉择“SDK接入”新建利用跟踪(或快利用跟踪),填写转化名称、利用ID,抉择转化类别。 在华为剖析服务侧注册并标记转化事件。a) 抉择“华为剖析 > 治理 > 事件治理”进入事件治理页面。 b) 注册并埋点须要回传的预置事件(自采集事件无需此操作)。 i. 预置事件注册办法请参考新建预置事件或自定义事件。 ii. 预置事件在SDK侧的埋点办法请参考预置事件应用领导。 c) 将须要回传的事件标记为转化事件。 在华为剖析服务侧配置转化事件回传。a) 抉择“华为剖析 > 治理 > 事件治理”进入事件治理页面。 b) 抉择“配置转化事件回传”页签,并通过页面右侧的“新增”按钮,进入配置转化事件回传页面。 c) 配置回传转化事件相干信息。 i. 抉择平台:抉择“鲸鸿动能广告”。 ii. 抉择利用:抉择须要配置回传事件的利用的名称。 iii. (可不配置)在抉择回传事件下方,配置剖析服务事件与广告事件的映射关系。 iv. 勾选须要回传的事件后面的复选框(仅无默认映射关系的须要手动勾选,有默认映射关系的已主动勾选)。 v. 点击“保留”,实现配置。 在华为剖析服务查看归因剖析报告。a) 抉择“华为剖析 > 营销剖析 > 营销流动”进入营销流动页面。 页面提供营销渠道、广告系列、广告工作维度查看的归因报告,掂量不同营销渠道、广告系列、广告工作带来的转化数据以及相干信息。 b) 查看对应营销流动的归因剖析报告。 详情请点击鲸鸿动能广告归因应用领导链接。 ...

April 4, 2023 · 1 min · jiezi

关于android:Android-RecyclerView-实现瀑布流

Android RecyclerView 应用大全 - 根底应用,item 动画,下拉刷新等 瀑布流也是个罕用的显示控件了,然而在应用时常常遇到一些问题,比方滑动回顶部后呈现空隙、item在滑动时乱跳等问题。 上面就来说说我怎么实现的瀑布流,并且怎么解决下面所说的这些问题的。 我应用了原生控件RecyclerView+StaggeredGridLayoutManager来实现的瀑布流,没有用第三方开源框架。上面以2列的瀑布流为例子开始解说。 因为应用了StaggeredGridLayoutManager实现瀑布流,然而在设置后发现图片在滑动加载过程中高度会发生变化,在网上搜寻了很多材料后,总结解决办法是在onBindViewHolder中绑定View时,给ImageView设置宽高,就能解决这个问题。 先看一下最终实现成果: 失常显示的瀑布流.gif 提前阐明下,我应用的是Glide3,读者们能够自行批改为Glide4。 1.实现瀑布流先说说实现思路: 写布局文件,别离有2个布局文件,Activity的布局文件和Adapter的布局文件写适配器,瀑布流的适配器里须要设置ImageView的宽高。写RecyclerView,给RecyclerView设置StaggeredGridLayoutManager并设置适配器。增加数据测试成果,依据成果反馈进行批改第一步:写布局文件Activity的布局文件只有一个RecyclerView就不贴了,贴一下Adapter的布局文件: adapter_item_card.xml <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/card" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:background="@android:color/holo_green_dark" android:orientation="vertical"> <ImageView android:id="@+id/card_image" android:layout_width="match_parent" android:layout_height="wrap_content" tools:src="@mipmap/ic_launcher" /> <TextView android:id="@+id/card_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="8dp" android:layout_marginBottom="2dp" tools:text="hello" /></LinearLayout>第二步:写适配器适配器中蕴含数据Card的汇合,Card类蕴含如下几个属性: private String title; private String img_url; private int width; private int height;在适配器中次要就是将数据绑定到view上,最要害的步骤是依据图片的宽高算出图片的宽高比,而后依据宽高比抉择正方形显示,还是长方形显示,最初通过setLayoutParams办法来设置图片的宽高。 思路如下: 计算图片宽度依据图片宽高比,确定图片应用正方形或是4比3的长方形显示应用setLayoutParams办法设置图片宽高应用Glide加载图片并用override重写图片宽高适配器外围代码如下: private final double STANDARD_SCALE = 1.1; //当图片宽高比例大于STANDARD_SCALE时,采纳3:4比例,小于时,则采纳1:1比例private final float SCALE = 4 * 1.0f / 3; //图片缩放比例private List<Card> cards = new ArrayList<>();@Overridepublic void onBindViewHolder(@NonNull ViewHolder holder, int position) { Card card = mCards.get(position); setCardView(holder, card);}private void setCardView(ViewHolder holder, Card card) { //计算图片宽高 LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) holder.image.getLayoutParams(); //2列的瀑布流,屏幕宽度减去两列间的间距space所的值再除以2,计算出单列的imageview的宽度,space的值在RecyclerView初始化时传入 float itemWidth = (ScreenUtil.getScreenWidth(context) - space) / 2; layoutParams.width = (int) itemWidth; float width = card.getWidth(); float height = card.getHeight(); float scale = height / width; if (scale > STANDARD_SCALE) { //采纳3:4显示 layoutParams.height = (int) (itemWidth * SCALE); } else { //采纳1:1显示 layoutParams.height = (int) itemWidth; } holder.image.setLayoutParams(layoutParams); Glide.with(context).load(card.getImg_url()).asBitmap().placeholder(R.mipmap.ic_launcher) .diskCacheStrategy(DiskCacheStrategy.RESULT).centerCrop().into(holder.image); holder.title.setText(card.getTitle());}写好适配器后,就能够在MAinActivity中初始化RecyclerView和适配器了,代码如下: ...

April 3, 2023 · 1 min · jiezi

关于android:想从事信息技术行业考什么证书最有用

当初的社会内卷十分重大,每个人都心愿能够进入一个好的行业,取得丰富的薪资报酬,而信息通信行业能够说是当初最为热门的行业之一。作为第四次工业革命的次要力量,咱们的生存被信息通信行业所扭转,传统的购物、出行都有了新的形式,而这背地也须要大量的人力物力来维持,也就是须要大量的专业人才来维持,然而这个行业的高薪,也就代表着高要求,能证实本人能力的证书有很多,能够依据须要来抉择报考,具体的能够在认证大使资询。 1、华为云认证 尽管华为云成立的工夫比价晚,然而最近几年发展势头十分猛,很多政企单位都会抉择华为云作为本人的单干商,同时华为云的认证体系建设的最早,曾经十分成熟了,每个方向下更粗疏地分出了很多方向,考生能够依据本人的需要来抉择。 2、腾讯云认证 最近几年腾讯云的市场占比逐步放大,然而却占据了咱们生存中最重要的两个畛域,那就是社交和游戏,当初很多电竞较量的技术支持就是腾讯云,能够说市场需求是十分坚硬的,因而其旗下的云从、运维、架构以及开发认证,都有很多人考 3、阿里云认证 作为目前市场占比最大的云计算厂商,阿里云在业界内的名气很大,其旗下的证书受认可度也很高,考生能够依据本人的能力去抉择对应的证书,分为ACA、ACP、ACE三个等级,每个等级下有云计算、大数据、云平安、人工智能等十几个方向,考生能够依据本人的业余来抉择。 4、PMP证书 PMP指的是项目管理专业人士资格认证。它是由美国项目管理协会(Project Management Institute,简称PMI)发动的,严格评估项目管理人员常识技能是否具备高品质的资格认证考试。其目标是为了给项目管理人员提供对立的行业标准。美国项目管理协会建设的认证考试有:PMP(项目管理师)和CAPM(项目管理助理师)已在全世界190多个国家和地区设立了认证考试机构。 5、计算机技术与软件业余技术资格(程度)考试 软考是由国家工信部设立的证书,有很多方向,考取后能够评职称、抵税、挂靠,对考生来说能够说是百利而无一害。 6、容器认证 容器认证考试是由Linux基金会和云原生计算基金会(CNCF)创立的,以促成Kubernetes生态系统的继续倒退。该考试是一种近程在线、有监考、基于实操的认证考试,须要在运行Kubernetes的命令行中解决多个工作。有CKA、CKS认证,考试是专为Kubernetes管理员、云管理员和其余治理Kubernetes实例的IT业余人员而设的。 7、国家信息安全程度证书 NISP一级证书是由中国信息安全测评核心颁发的国家级认证证书,是面向全社会各行各业通用的信息安全意识遍及和信息安全爱护常识培训,学习网络安全基础理论和网络安全意识的遍及通过考试的学员可俱备根本的网络安全常识和意识,在工作和生存中对单位的信息安全爱护和个人信息及隐衷爱护有肯定的解决能力持NISP一级证书可在信息安全窃密较高的单位或得加分项。

April 3, 2023 · 1 min · jiezi

关于android:ShareSDK-Android-SDK第三方平台分享参数说明

 尽管ShareSDK尽可能屏蔽了不同社交平台间接口api差别,然而分享接口须要传递的差别仍然会因平台而异,本文将以列表的模式展现不同平台的分享参数(ShareParams)的字段要求,以不便开发者应用时翻阅。 留神没有表明可选的就是必填参数,不能为null或者空字符串,另一种状况是例如有imageUrl(”网络图片链接”)、imagePath(“/sdcard/abc.jpg”)、imageData(bitmap)是三选一。 国内平台新浪微博新浪微博反对分享文字、本地图片、网络图片 参数阐明 text:140字符以内 image:web分享ShareSDK不做限度间接提交给微博解决,微博客户端分享图片不能大于2M,仅反对JPEG、GIF、PNG格局; 注:微博分享链接是将链接写到setText内:eg:setText(“分享文本 http://mob.com”); ImageArray String类型图片数组,可传手机本地图片门路和图片链接,分享多图的时候须要将Url参数正文掉,否则会默认分享链接; 分享文本 text 留神:以下分享类型必须有新浪微博客户端才能够分享,如果imagePath和imageUrl同时存在,imageUrl将被疏忽; 分享图文 text imagePathimageUrlimageData分享本地视频 FilePath("/sdcard/video.MP4") text("文本")linkcard 腾讯微博腾讯微博反对分享文字、本地图片、网络图片和经纬度信息 参数阐明 text:最多140个字字符 image:图片最大4M 分享文本 text latitude(可选) longitude(可选)分享图文 text imagePath latitude(可选) longitude(可选)imageUrl ImageArray2.5.0当前的版本新增分享多张图片的性能ImageArray。 因为腾讯微博分享网络图片并不属于高级接口,因而imageUrl优先级高于imagePath,这就是说,如果imagePath和imageUrl同时存在,imagePath将被疏忽。 QQ空间提醒:必须须要QQ客户端才能够分享 QQ空间反对分享文字和图文 参数阐明 title:最多200个字符 text:最多600个字符 分享视频 FilePth("/sdcard/视频.mp4") ShareType(platform.SHARE_VIDEO)分享文本 text ShareType(platform.SHARE_TEXT)分享网页 text imagePath title titleUrl ShareType(platform.SHARE_WEBPAGE)imageUrl分享图片 imagePath ShareType(platform.SHARE_IMAGE)imageUrl微信(好友、朋友圈、珍藏)提醒:1.必须须要客户端才能够分享;2.微信客户端版本从6.7.2以上开始,勾销分享提醒分享胜利;即勾销分享和分享胜利都返回胜利事件;3.Android11及之后的版本,微信分享图片不反对用imageData(bitmap)接口设置参数; 绕过审核只对微信好友、微信朋友圈无效 微信分享如果是绕过审核(配置信息BypassApproval属性设置为true为绕过审核),微信朋友圈能够分享单张图片或者图片与文字一起分享,微信好友能够进行文字或者单张图片进行分享,分享回调不会正确回调。 不绕过审核,微信三个平台中,好友的性能最残缺,朋友圈不能分享利用,珍藏不能分享利用,表格下以好友为例子: 参数阐明 title:512Bytes以内 text:10KB以内 imageData:10M以内 imagePath:10M以内(传递的imagePath门路不能超过10KB) imageUrl:10KB以内 musicUrl:10KB以内 url:10KB以内(MobSDK没有对参数另做限度,参数限度详细情况能够参考微信官网的限度详情点击这里查看) 留神:微信分享分绕过审核和不绕过审核,不绕过审核必须保障微信后盾配置的签名与您的app的签名统一,否则无奈分享; 分享文本 shareType(Platform.SHARE_TEXT) text分享图片 shareType(Platform.SHARE_IMAGE) text(设置了不会显示,可选参数) imagePathimageUrlimageData分享音乐 shareType(Platform.SHARE_MUSIC) title text(朋友圈不显示此字段) imagePath musicUrl url(音讯点击后关上的页面)imageUrlimageData分享视频 shareType(Platform.SHARE_VIDEO) title text(朋友圈不显示此字段) imagePath url(视频网页地址)imageUrlimageData分享网页 shareType(Platform.SHARE_WEBPAGE) title text(朋友圈不显示此字段) imagePath urlimageUrlimageData分享文件 shareType(Platform.SHARE_FILE) title text(不显示此字段) filePath分享小程序 shareType(Platform.SHARE_WXMINIPROGRAM) title setWxUserName("小程序原始ID") setWxPath("小程序页面门路") url text imagePathimageUrlimageData微信并无理论的分享网络图片和分享bitmap的性能,如果设置了网络图片,此图片会先下载会本地,之后再当作本地图片分享,因而提早较大。bitmap则好一些,然而因为bitmap并不知道图片的格局,因而都会被当作png编码,再提交微信客户端。 ...

April 3, 2023 · 3 min · jiezi

关于android:集成华为运动健康服务干货总览

在接入华为静止衰弱服务的过程中你是否遇到过权限申请有艰难、性能不会用的状况? 本期超强精华帖,一帖汇总集成华为静止衰弱服务你可能须要的各类干货,还不连忙珍藏起来!开发有艰难,随时可查阅~ 如果你有感兴趣或想进一步理解的内容,欢送进行留言,或查看华为静止衰弱文档获取更多详情! 权限申请篇在申请静止衰弱服务的权限的过程中,你是否遇到这些纳闷:申请审核时长是多久?集体开发者与企业开发者申请权限有什么区别?申请材料有什么要求? 看完测试/验证权限须知,就能够解答你的问题! 测试权限开明须知 华为静止衰弱服务(HUAWEI Health Kit)提供原子化数据凋谢,在获取用户对数据的受权后,利用可通过接口拜访静止衰弱数据,对用户数据进行增、删、改、查等操作,为用户提供静止衰弱类数据服务。这篇文章中咱们汇总了申请开明Health Kit测试权限的常见问题,并给出了具体的解答,心愿为其余遇到相似问题的开发者提供参考。 权限申请验证须知 开发者利用在开发、测试阶段拜访用户静止、衰弱数据时,会有100个用户的数量限度,须要通过"申请验证"来解除此限度。这篇文章中咱们汇总了申请验证的相干问题,并给出了具体的解答,心愿为其余遇到相似问题的开发者提供参考。 性能介绍篇华为静止衰弱服务(HUAWEI Health Kit,简称Health Kit)是为华为生态利用打造的基于华为帐号和用户受权的静止衰弱数据开放平台。在获取用户受权后,开发者能够应用Health Kit提供的凋谢能力获取静止衰弱数据,基于多种类型数据构建静止衰弱畛域利用与服务,为用户打造丰盛、便捷、业余的静止衰弱场景体验。 静止衰弱凋谢能力非常丰盛,接口调用、云侧订阅、路线导入……总有你想理解的内容,一起来看看! 获取华为静止衰弱服务受权码并调用Rest API拜访数据 华为静止衰弱服务(HUAWEI Health Kit)容许三方生态利用在获取用户受权后,通过REST API接口拜访数据库,读取华为和生态搭档凋谢的静止衰弱数据或写入数据到华为静止衰弱服务,为用户提供更加个性化的衰弱改善服务。如静止类App在获取受权码后能够读取华为用户的心率、步数等静止数据,最终给用户提供衰弱倡议。 云侧订阅性能应用 数据订阅是静止衰弱类利用中很常见的性能,用户订阅静止记录、衰弱记录等数据,当这些数据发生变化时,用户可能即时在App上接管到推送告诉。 例如某位用户最近正在锻炼身体,为本人设定了每天走1万步,每周达成3次的指标;惯例的数据订阅能够做到每天给用户推送当天步数,但用户须要本人进行二次计算能力得悉本人是否实现了本周指标。 而场景事件订阅能够补救这个毛病。场景事件订阅不仅仅是针对某一种数据类型,而是并重由一种或者多种数据类型组合起来的场景。还是以下面这个情景为例,一周内有任意3天走到1万步就是一个场景,若用户达成了场景指标,才会收到利用的推送揭示。 用户路线导入性能介绍 华为静止衰弱服务反对通过REST API,以GPX文件格式写入用户路线数据。能够导入轨迹(Track)或途程(Route)类型的数据,并实现用户路线数据在华为静止衰弱App中展现的成果。 如果华为静止衰弱App连贯的穿戴设施反对路线导入,那么用户路线数据将主动下发至穿戴设施。用户可应用手表轻松导航,依照既定路线进行跑步、爬山等流动。 教训分享篇接入静止衰弱服务过程中,必定遇到过一些开发问题,优先查看教训分享帖,在伟人的肩膀上疾速成长~ Health Kit受权常见问题及解决办法 依据收到的集成HUAWEI Health Kit的内部开发者声音,对问题进行分类并提取了局部典型常识,本文分享的是开发者提出的受权相干典型问题。 更新订阅记录接口报错 集成静止衰弱服务时,注册订阅记录新增/更新订阅记录时,接口调试报错无奈连贯到 URL怎么办?本文给出了解决方案。 查问和用户数据为空,如何进行问题排查 静止衰弱App上显示有静止或者衰弱数据,然而调用受权凋谢的查问接口返回为空,须要如何解决? 理解更多详情>> 拜访华为开发者联盟官网 获取开发领导文档 华为挪动服务开源仓库地址:GitHub、Gitee 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

April 3, 2023 · 1 min · jiezi

关于android:ShareSDK-iOS-SDK-集成指南

开发工具:Xcode 集成形式:手动导入SDK或者Pod集成 SDK版本反对:SDK反对Xcode 9.1.0, iOS8.0+及以上版本集成前筹备注册账号应用ShareSDK之前,须要先在MobTech官网注册开发者账号,并获取AppKey和AppSecret,详情能够点击查看创立利用流程 分享到第三方平台,须要当初对应第三方平台申请平台的AppKey,详情能够点击查看注册利用流程 ShareSDK流程图 ShareSDK集成手动集成获取ShareSDK在 MobService下载核心 下载最新版本SDK 选中ShareSDK,抉择须要的平台,而后点击“保留配置”: 舒适提醒: 各平台的左边有个问号,将鼠标搁置下来会弹出该平台的简略阐明 选中所须要的平台后,点击“下载”按钮,就会下载好SDK 下载下来的SDK构造 SDK目录构造阐明SDK: Required: MOBFoundation.framework (根底工具库) ShareSDK: ShareSDK.framework (主业务实现) Support: Required: ShareSDK.bundle (ShareSDK资源文件) ShareSDKConnector.framework(v4.2.0版本后已废除) PlatformConnector: ... (各个平台独立逻辑依赖库,只须要集成须要的平台即可) PlatformSDK: ... (各个平台的SDK文件,不集成默认走去SDK业务逻辑,目前反对大部分支流 平台,如QQ 微博 微信等) Optional:(可选) ShareSDKUI.bundle (分享UI的资源文件) ShareSDKUI.framework (分享UI库) ShareSDKConfigFile.framework(xml配置文件模式分享依赖库) ShareSDKConfigFile.bundle (xml配置文件模式分享资源文件) ShareSDKExtension.framework(性能的扩大框架插件。(第三方平台检测、 一键分享、截屏分享、摇一摇分享等相干性能) ShareSDKLink.framework(闭环分享库)留神:导入的时候,须要将整个SDK资源文件导入到我的项目里 手动导入SDK将下面获取到的SDK,间接将整个SDK资源文件拖进我的项目里,如下图: 并且勾选以下3个选项 在点击Finish,实现导入。 增加依赖库 点击“+”号,并在弹框里输出以下依赖库,进行增加 必要依赖库: libc++.tbdlibz.tbdlibsqlite3.tbd社交平台依赖库(依据本人需要增加): 苹果登录依赖库: AuthenticationServices.frameworkFacebook依赖库: AuthenticationServices.frameworkSafariServices.frameworkAccelerate.framework新浪微博 ImageIO.frameworkPhotos.frameworkInstagram AssetsLibrary.frameworkPhotos.framework美拍 AssetsLibrary.frameworkXcode配置(1)在我的项目的Build Settings中的Other Linker Flags双击增加”-ObjC” ,留神大小写 ...

April 3, 2023 · 3 min · jiezi

关于android:JetpackCompose-学习笔记二-Compose-布局你学会了么

在前一篇笔记中,咱们晓得了 Compose 布局的一些基本知识,这篇笔记就来具体看看 Compose 布局吧!还有些 Compose 其余的常识,依据官网的实例,咱们边看边说。 1. Compose 布局形式Android 目前的布局 Layout 有许多:LinearLayout 线性布局、RelativeLayout 绝对布局、ConstraintLayout 束缚布局、FrameLayout 帧布局、TableLayout 表格布局、AbsoluteLayout 相对布局、GridLayout 网格布局 7 种。前面的几种基本上用的很少了,而 Compose 的布局形式总共有三种:Column 纵向排列布局、Row 横向排列布局、Box 重叠排列布局。先来个简略的例子: // code 1@Composablefun PhotographerCard() { Column { Text("小明", fontWeight = FontWeight.Bold) CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) { Text("3 分钟前", style = MaterialTheme.typography.body2) } }} 留神到在展现第二行文本的时候,外面包了一层 CompositionLocalProvider 办法,这个是干嘛用的?要想晓得这个,就必须先晓得 CompositionLocal 是什么了。 1.1 CompositionLocal 用法简介CompositionLocal 类位于 androidx.compose.runtime 包下,总的来说是用于在 composition 树中共享变量的值。在 Compose 构建的 composition 树中,如果须要将顶层的 Composable 函数中的某个变量传递到最底层的 Composable 函数,通常最简略无效的办法就是:1)定义一个全局变量,通过全局变量传值;2)中间层的 Composable 函数增加一个形参,层层传递。 ...

April 1, 2023 · 7 min · jiezi

关于android:JetpackCompose-学习笔记三-Compose-的自定义View

在上一篇中,咱们不仅理解了 Compose 中的 Column、Row、Box 等几种常见的布局形式 还学习了 CompositionLocal 类在 Compose 中进行传值的办法;还有可疾速搭建 App 构造的 Scaffold 脚手架组件,顺便学习了 Surface、Modifier 的一些应用,还有 ConstraintLayout 在Compose 中的应用办法。尽管官网提供了这么多 Compose 组件,但在理论需要开发中,定制化组件依然必不可少。 在传统的 View 体系中,零碎为开发者提供了许多能够间接应用的组件 View,比方:TextView、ImageView、RelativeLayout等。咱们也能够通过自定义 View 来创立一些零碎没有提供给咱们的、具备非凡性能的 View。Compose 当然也不甘落后,在 Compose 中咱们能够应用 Layout 组件来自定义咱们本人的 Composable 组件。实际上,所有相似于 Column、Row 等组件底层都是用 Layout 进行扩大实现的。 在 View 体系中,自定义 View 最为常见的两种状况是:1)继承已有 View 进行性能扩大,例如继承 TextView 或间接继承 View 进行改写;2)继承 ViewGroup,并重写父类的 onMeasure 和 onLayout 办法。而在 Compose 中咱们只须要简略地应用 Layout 组件自定义就能够了。 在开始之前,咱们须要先理解一下 Layout Composable 组件的一些基础知识。 1. Compose 自定义 Layout 的根本准则在 Compose 中,一个 Composable 办法被执行时,会被增加到 UI 树中,而后会被渲染展现在屏幕上。这个 Composable 办法咱们能够看成是一个 View 零碎中的布局,在 Compose 中称为 Layout。每个 Layout 都有一个 parent Layout 和 0 个或多个 children,这跟 View 体系很像。当然,这个 Layout 本身含有在它的 parent Layout 中的地位信息,包含地位坐标(x, y)和它的尺寸大小 width和height。 ...

April 1, 2023 · 8 min · jiezi

关于android:MobPush-厂商通道SDK集成指南

开发工具:Android Studio 集成形式:Gradle 安卓版本反对:minSdkVersion 19 集成筹备MobPush疾速集成在应用厂商通道之前,请确保您已申请MobTech开发者账号并已依照MobPush疾速集成文档进行集成,本篇文档将默认您已实现该步骤 Mob开发者后盾配置注册MobTech账号后,须要在MobTech后盾进行相干信息的配置,详情能够点击查看具体配置信息 日志调试性能请在AndroidManifest.xml文件中 <application>下增加下面配置,在日志控制台即可查看到TAG为MobPushLog的相干日志: <meta-data android:name="com.mob.mobpush.debugLevel" android:value="4" /> 小米通道集成指南配置依赖在利用 module 的 gradle文件中找到MobSDK代码块,增加XIAOMI代码块: MobSDK { ...... MobPush { devInfo { //小米推送配置信息 XIAOMI{ appId "您的利用对应的小米的APPID"// 小米平台注册的appid appKey "您的利用对应的小米的APPKEY"// 小米平台注册的appkey } }}配置代码混同如果应用了 proguard,为了避免误报的 warning 导致无奈胜利编译,须要在配置文件中退出以下内容: -dontwarn com.xiaomi.push.**-keep class com.xiaomi.push.** { *; }-keep class com.mob.pushsdk.plugins.xiaomi.PushXiaoMiRevicer {*;}-dontwarn com.xiaomi.**-keep class com.xiaomi.**{*;}-keep class com.xiaomi.mipush.sdk.**{*;}-dontwarn com.xiaomi.mipush.sdk.**集成后果判断若集成胜利,日志显示如下: [MobPush]MobPush start init...[MobPush]MobPush wait for auth ...[MobPush]MobPush real start init ...[MobPush][XIAOMI] channel start init[MobPush]Mob-XIAOMI plugins initing[MobPush]Check push channel [XIAOMI] configuration information, appId:xxxxxxxxxx, appKey:xxxxxxxxxx[MobPush]request deviceToken success:xxxxxxxxxxxxxxxxxxxxxxx[MobPush][XIAOMI] channel register successful.华为通道集成指南配置maven在 Project 根目录的主 gradle 中配置华为maven地址。 ...

March 31, 2023 · 4 min · jiezi

关于android:直播回顾-点击率提升400Ta是怎么做到的

Discovery第18期直播已于3月30日圆满结束,本期直播邀请天眼查做客直播间,从天眼查与华为Push用户增长服务单干历程切入,聚焦用户增长,分享晋升利用活跃度和渠道ROI的教训与见解。一起来回顾本期精彩内容吧! 【精彩对话】 Q1: 天眼查为什么抉择华为Push用户增长服务实现拉新、促活和转化? 刘树维:天眼查作为国内当先的商业查问平台,咱们发现用户对企业经营风险、股权结构、老板详情、法律诉讼等等信息非常关注,同时对和集体工作生存密切相关的如查问企业联系电话用于拓展客户、查问身边老板、甚至是辨认身边有没有失信被执行人等也有较强的诉求。在接入华为Push用户增长服务之前,天眼查常常会遇到几个问题:推送音讯一多会被折叠、推送的款式也比拟繁多影响点击率、Push条数受限制等等……这些问题导致咱们没有把想要推送给用户的内容高效、残缺地送达用户。而华为Push用户增长服务因为领有卓越的商业化产品能力,且其经营团队还会提供业余的经营倡议与开发者独特摸索。咱们测试出贴合天眼查APP个性及用户期待接管的信息,在推送款式上应用了华为用增Push特有的产品性能,从而实现高效的触达和转化。例如,华为Push用户增长服务定制化推送,通过多轮A/B测试,最终抉择了题目换色、音讯不折叠、下拉告诉栏的性能组合拳,将点击率晋升了400%,大幅减少了日活/月活用户量。 Q2:华为Push用户增长服务如何帮忙天眼查进步ROI? 刘树维&Zora:一方面,咱们做了更深刻的用户分层+推送内容测试。让设施级标签与天眼查端内标签相结合,独特为用户分层及文案匹配做综合撑持,针对指标人群去迭代推送他们更关注的内容。这些信息更有深度,用户也有更强的点击、甚至付费志愿。 另一方面,咱们接入了RTA,防止适度反复拉起同一用户,适当缩小对用户的打搅,最终卸载率和告诉敞开率都有所升高;配合千人千面的策略,能够针对用户浏览过、监控过的企业,发送包含但不限于企业变更信息/危险信息等,最终使得ROI大幅晋升。 Q3:华为Push用户增长服务向开发者提供什么能力?为什么说华为Push用户增长服务是一个既有用户体验,又可能助力开发者实现用户增长的产品? Winify:华为Push用户增长服务从孵化以来就始终聚焦两个方面:一方面是内容:要发送用户感兴趣的内容,才有可能引起用户的关注,带来后端的点击和转化,同时缩小对用户的打搅,保障用户的音讯体验。针对内容精准度的晋升咱们有一系列产品和经营方面的动作:首先,咱们提供的API能力能够反对开发者自主依据用户的爱好发送千人千面的音讯;其次,咱们还提供了各类脱敏的人群标签,在爱护用户及合作伙伴隐衷和数据的根底上反对合作伙伴依据人群爱好投放相应的内容。这些都能帮忙咱们的合作伙伴进行精准的推送,把音讯送到真正有须要的用户手上。 另一方面是推送,在适宜的机会以适宜的伎俩进行投放,针对这个场景,华为用户增长服务会向开发者提供一些丰盛的款式,加强用户的感知。 背景图:能够更换告诉栏的音讯底色,让这条音讯在多条音讯中怀才不遇,引起用户关注。 题目换色:能够扭转音讯题目的色彩,将要害音讯传播至用户。 右侧小图展现:在音讯右侧能够搁置配图,图文并茂。 同利用音讯不折叠:当利用发送多条音讯的时候能够将音讯独立平铺展现,防止要害信息折叠。 亮屏展现:用户抬起手机,点亮屏幕时,弹出音讯。 下拉告诉栏展现:下拉告诉栏的时刻弹出音讯。 Zora:从经营层面,咱们的经营团队也会行业、人群、工夫以及舆论热点等提供策略倡议,与APP发展联结经营,依据产品个性,提供音讯展现及款式方面的组合倡议,配合APP需要,打造场景化触达体验,助力合作伙伴在失当的机会,向每个用户推送他们感兴趣的个性化内容,让华为Push用户增长服务成为使用户生存更便捷、更丰盛的消息来源。 【理解更多】 点击官网,理解华为Push用户增长服务 如有相干技术需要,请分割Pushservices@huawei.com反馈,获取专属咨询服务。 理解更多详情>> 拜访华为开发者联盟官网 获取开发领导文档 华为挪动服务开源仓库地址:GitHub、Gitee 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

March 30, 2023 · 1 min · jiezi

关于android:钥匙环服务打造无缝的跨设备登录体验

近些年来,随着手机技术迭代更新越来越快,用户更换手机的周期也在缩短,在这样的背景下,开发者不得不面临以下问题: 同一开发者旗下经常有多个安卓利用和多状态利用(快利用和Web利用),用户更换一个新的设施(手机或平板)后,在新设施上登录各利用时每次都须要反复输出帐号和明码,导致用户在登录阶段流失率减少,同时开发者还须要承当额定的短信老本(如用户应用短信登录)。 华为HMS Core钥匙环服务(Keyring)提供凭据治理接口(Credentials Management API),为Android手机、平板提供用户登录凭据存储和跨利用、跨利用状态、跨设施共享的能力。 钥匙环服务提供了Android API、Web API和快利用API,应用程序通过调用这些API来应用钥匙环服务。无论调用哪种模式的接口,所有的用户凭据最终都会存储在HMS Core的钥匙环服务中,以便实现对立的凭据治理能力和共享能力。 一、性能特点钥匙环服务提供登录凭据本地贮存和跨状态、跨利用共享能力。钥匙环服务将用户登录凭据加密贮存在本地设施,被保留的凭据通过钥匙环服务共享至同一开发者旗下的其余快利用、Web利用和安卓利用;实现跨状态、跨利用无缝登录体验。 钥匙环服务应用端到端加密同步技术实现登录凭据跨设施同步能力。用户在新老设施上关上“凭据多设施同步”性能,就能够在新设施上免密登录同一开发者旗下的各状态利用,实现跨设施无缝登录体验。 例如,同一开发者将旗下的两个安卓利用和两个快利用接入钥匙环服务后,用户只须要在手机A和手机B上关上“凭据多设施同步”性能,手机A上登录一个利用后,用手机B登录时无需再输出帐号和明码,实现跨设施、跨利用、跨状态的无缝登录体验。 二、接入劣势打造无缝登录体验 通过钥匙环服务接口获取本地存储的用户凭据,实现便捷登录。 保障数据安全可靠 用户登录凭据在设施内加密存储,在设施间通过端到端加密技术同步,云端无奈解密。 升高登录流失率 简化用户登录时操作流程,升高流失率 升高经营老本 缩小应用短信登录,升高经营老本 三、开发步骤开发筹备 具体筹备步骤可参考华为开发者联盟官网。 集成Keyring客户端用户登录场景 1、应用一个Activity实例初始化CredentialClient,能够写在Activity的onCreate办法中。 CredentialClient credentialClient = CredentialManager.getCredentialClient(this);2、查问是否存在可用的凭据。 List<AppIdentity> trustedAppList = new ArrayList<>();trustedAppList.add(new AndroidAppIdentity("yourAppName", "yourAppPackageName", "yourAppCodeSigningCertHash"));trustedAppList.add(new WebAppIdentity("youWebSiteName", "www.yourdomain.com"));trustedAppList.add(new WebAppIdentity("youWebSiteName", "login.yourdomain.com"));SharedCredentialFilter sharedCredentialFilter = SharedCredentialFilter.acceptTrustedApps(trustedAppList);credentialClient.findCredential(sharedCredentialFilter, new CredentialCallback<List<Credential>>() { @Override public void onSuccess(List<Credential> credentials) { if (credentials.isEmpty()) { Toast.makeText(MainActivity.this, R.string.no_available_credential, Toast.LENGTH_SHORT).show(); } else { for (Credential credential : credentials) { } } } @Override public void onFailure(long errorCode, CharSequence description) { Toast.makeText(MainActivity.this, R.string.query_credential_failed, Toast.LENGTH_SHORT).show(); }});3、调用Credential.getContent获取凭据内容,在CredentialCallback<T>获取后果。 ...

March 30, 2023 · 2 min · jiezi

关于android:MobTech-MobLink场景分享的原理

MobLink场景分享的原理是基于深度链接(Deeplinking)的技术,即在Web和App之间建设一个可跟踪的链接,能够携带参数和状态信息,实现从Web到App的无缝跳转和场景还原。 深度链接有两种模式:规范深度链接(Standard Deeplink)和通用深度链接(Universal Deeplink)。规范深度链接是指应用自定义的URL Scheme或App Link来唤起App,并传递参数。通用深度链接是指应用HTTPS协定的URL来唤起App,并兼容没有装置App的状况。 MobLink应用通用深度链接的形式,为每个场景生成一个对应的短链或二维码,用户点击短链或扫描二维码后,会先拜访MobLink的服务器,服务器会依据用户的设施类型、浏览器类型、网络环境等因素,判断是否可能唤起App,并返回相应的响应。如果可能唤起App,那么服务器会返回一个302重定向响应,让浏览器跳转到App的URL Scheme或App Link,并附带场景参数。如果不能唤起App,那么服务器会返回一个200失常响应,让浏览器显示一个疏导下载页面,让用户下载并装置App。 当用户关上App时,MobLink的SDK会向服务器发送一个申请,获取场景参数,并依据参数跳转到对应的页面。如果用户是首次装置并关上App,那么MobLink还会将用户与分享者进行关系匹配,实现无码邀请性能。

March 30, 2023 · 1 min · jiezi