前言(常见坑):

  1. 小心是AndroidManifest文件被别人改动过。。。。。。
  2. 升级推送SDK时往往可能会引入新问题。。。。。除非有重大更新,否则可以延迟2个版本进行升级
  3. 为了更好应对出问题的用户和测试人员。最好给出推送解决的临时方案,然后再尝试解决问题。
  4. 大部分推送问题都是被杀后自启动失败,不同手机系统不同的坑,好好积累。目前大头是魅族,乐视,三星。 (小米和华为已经有定制的推送支持)

1-bug类型

  • 功能限制问题——>有可能引发“无回调问题”

    • 手机系统限制软件的通知或自启动
    • 手机的第三方管理[自启动管理,省电管理,通知栏显示限制和一键清理动作等]
    • 应用中关闭了通知、震动,或设置了免打扰时段
  • 无回调
    没有任何错误信息,调用SDK函数后,无任何响应

    • 往往是PushService服务未启动或回收后不能自启动导致,往往由“功能限制问题”导致
  • 回调错误信息
    百度错误码说明
    小米错误码说明
    华为错误码说明

  • 回调正确但是业务代码错误

    • 往往是前后台判断有问题

2-排查过程

2.1-收不到通知栏通知的排查流程

联系反馈者,了解是否是无法收到所有推送信息,还是仅个别模块的
【如果是后者,则说明是业务问题,需要进一步了解未收到通知的信息的时间、类型或内容】
【如果是前者,则说明是推送问题,需要进入详细排查】

  • 一、业务服务器问题排查

    • 根据了解到的信息联系后台服务者,查询是否是有次推送的requestid【没有,则说明是业务服务器未推送;有的话进入下一步排查】
  • 二、功能限制问题排查

    • 判断是否是手机设置关闭了应用的通知权限
    • 判断是否是手机设置关闭了应用的自启动功能
    • 判断是否是手机安装的第三方管理软件关闭了应用的通知或自启动功能[尤其注意root机]
    • 判断是否有“冻结后台应用”,“受保护的后台应用”之类的功能,会导致通知栏信息不显示,或者“显示一下信息,下拉后看不到” [问题 #10269]
    • 判断是否有“省电模式”,“后台耗电应用-锁屏继续运行”之类的功能,会导致应用被后台冻结,无法显示 透传信息类型的推送提醒
    • 如果有“隐私和安全->权限管理”,开启信任该应用
    • 是否是在应用中“设置”中关闭了通知、震动、声音等,或者设置了免打扰时段,或者登陆了网页版应用
    • 如果是群聊信息,查看是否关闭了群聊信息通知开关
  • 判断当前的推送平台,通过日志记录,进行进一步判断

    • 判断是否为注册环节失败 (4.2.12)中提及的1-2-3-4-5步骤
    • 查询日志,查询相关 lock_push 标签的日志
      “ [increaseRequireCount]增加请求次数:N”如果n>1,说明已经有多次注册失败,很有可能是注册环节失败导致,该注册失败大部分由于《功能限制问题》导致,如果确认全部正确开启,需要联系第三方平台。
      “[onToken 或 onBind 或 onCommandResult]获取华为推送token成功(等类似字眼)” 如果有类似标签文本,则证明注册成功,进入下一步排查。
  • 日志中有相关推送信息打印(推送已到达)—-绝对是手机设置问题
  • 日志中无相关推送信息打印(推送未到达)—-本地信息排查
    • 根据requestid,进入第三方服务后台,或者在相关聊天群,联系第三方技术支持人员,查询该requestid的事件日志
    • 该requestid有事件回馈,证明信息达到了app中,可能是
      (1) app业务逻辑有bug,导致通知未弹出(譬如前后台判断,声音设置等)。[排查方法:检测日志,是否收到该信息]
      (2) 同时确认[功能问题排查]
      (3) 第三方PushService未正确发送广播,未调用我们的Receiver回调。[排查方法:检测日志,是否收到该信息]
    • 该requestid没有事件回馈,说明信息未到达app中,日志中必然没有相关信息
      (1) 所智能选择的SDK的PushService服务未启动,或者被回收后不能自动重启【该部分在下面的分类bug中详细描述】

3-通用注意事项

  • 推送收不到或者延时问题

    • pushService不能启动或回收后不能自启导致的
  • 功能限制问题

    • 手机系统自带或者第三方“自启动管理” 导致PushService不能正常自启动
    • 手机系统自带或者第三方“通知栏显示限制管理” 导致通知栏信息不能正常显示
    • 手机系统自带或者第三方“一键清理动作” 导致PushService不能正常自启动
    • 手机系统自带或者第三方“省电管理” 导致PushService不能正常自启动
    • 手机系统自带或者第三方“后台耗电应用-锁屏开启” 导致PushService不能正常自启动
    • 手机系统权限管理->口袋助理->开启信任此应用
    • 其他
    • 应用内的“我->设置->消息通知”里面的推送是否被关闭了
    • 应用内的“群聊->消息通知”的信息通知是否被关闭了
  • 锁屏断网导致无法收到推送,有些手机自带的省电优化会在锁屏后一段时间进入无网络模式[通过app的后台日志可以检测到app的联网状态]

  • 回调正确但是业务代码错误

    • 是否是我们的前后台判断有问题
  • 【重复推送问题】一条通知消息看过后,还会收到该信息的一次或多次重复通知 9552
    第三方的PushServer在给运营在客户手机的PushService发送通知后,回收到来自PushService的“回包应答”,如果该回包丢失,则PushServer认为该用户处于离线状态,会将该通知缓存下来,等候一段时间后,再次发送;再次发送成功收到回包,则将该通知移除缓存,否则一直尝试推送。
    如果出现通知一再出现的问题,很有可能是“回包应答”丢失所导致的,可将对应requestid交给第三方工作人员协助调查,PushServer是否收到应答

  • 【即时信息查看后,又收到该信息一次通知】 1919

    • 场景:用户在即时聊天界面,收到某条信息A并查看,而后将应用home到后台,在某些状况下,信息A的通知会再次出现在通知栏。
    • 可能性原因1:.第三方推送数据和即时聊天的数据通道是分离的,服务器在推送信息时,会同时向我们应用的信息通道和第三方的推送通道同时推出信息。如果我们通道的信息先到,而第三方推送的通道由于某些原因导致通知延迟,就会出现用户“已阅读该信息,并迅速将应用后台”并且“延迟的第三方通知到达”时,我们应用判断应用在后台,从而将信息A再次显示在通知栏。
      目前可行的方法是,将本地各种类型的通知信息加入已阅标志位(已读?已到?),并缓存已阅信息的requestid;待第三方通知再次下发到app,判断是否该通知已被阅读,是的话就不再显示。【待实现】
  • 乐视手机推送问题 9435 待解决

    • 应用和推送都挂了,是不是这个letv的手机系统自带了什么后台限制
  • 【小图标问题:不显示,或者显示不对】

    • oppo colorOS 系统低版本上 图标不显示是由于系统配置问题导致:设置–通知中心–口袋助理–在状态栏显示,在锁屏显示
      colorOS 系统高版本上 http://bbs.oppo.cn/thread-6893443-1-1.html
      其实这是由于ColorOS 2.0系统纯净状态栏已设计了白名单和黑名单功能,黑名单程序是不会在状态栏显示图标的。
      ①白名单:是指一些常用第三方程序,如:QQ、微信、陌陌、新浪微博等社交应用是正常优先显示在状态栏。
      ②黑名单:是指一些非常用第三方程序及系统通知,如:截屏图标是不会显示在状态栏,只用…显示。酷狗音乐/QQ音乐在后台播放也是以…显示。(有两个或者是两个以上的程序也仅仅显示一个…图标)
      这个是由系统决定的,所以还请楼楼体谅额。

    • vivo 图标美化—导致图标被删除
      系统设置—通知栏管理—“美化图标”
      “美化图标”有两个功能:
      ①。 统一通知栏小图标的颜色和大小
      ②。 白名单的应用显示小图标,非白名单的显示”…”

    • flyme状态栏通知图标修复Meizu notification fix是一个flyme专用的xposed模块,魅族为了统一界面风格,将大部分的应用在通知栏上的图标显示为一个图标

4-百度注意事项

Android客户端常见问题汇总,收录日期2016年6月3日09:49:52

  • 应用关闭或结束进程后,还能收到推送吗?
    应用退至后台或结束进程,百度云推送的Service会继续在后台运行并接收推送;部分情况下使用安全软件或内存管理工具强制清理后台,Service会被清除,但Push有多种保活机制,会快速重启;在小米和魅族手机上,用户清理后台应用后必须要等到再次打开任意一个集成了PushSDK的app、调用StartWork之后,Service才会在后台启动并继续接收推送。

  • Android应用调用startWork绑定,onbind无回调信息返回
    往往是由于PushService不能启动或回收后不能自启动导致,原因在于“功能限制问题”。
    关注各个系统上自带的或第三方的“功能限制问题”自启动管理,省电管理,通知栏显示限制和一键清理动作等
    有其注意,百度推送内置链式推送规则,在启动PushService时,SDK会获取到当前手机中所有继承百度推送的app,并根据优先级由大到小的顺序组成顺序链条,并按照该链条顺序启动对应的PushServices(实质上,它们使用同一交互通道)。在启动过程中,链条任意位置的一个app应设置自启动限制或相互启动限制导致PushService不能启动,将会导致链条后面的app也不能唤醒PushService

    • 系统管理问题
      【1】 如果是魅族Flyme5及以上系统手机,因增加主动防御机制,请如下操作:手机管家-权限管理-自启动管理-相互启动-打开pushservice优先级最高的应用(用DetectTools工具查看priority值)和自己应用的相互启动开关,请参考http://push.baidu.com/issue/view/1691 。
      【2】如果是华为EMUI4.0及以上系统手机(华为mate8),因增加关联启动机制,请如下操作:设置—权限管理—关联启动—打开pushservice优先级最高的应用(用DetectTools工具查看priority值)和自己应用的启动开关。(已和华为厂商协商,下个版本会完全兼容)
      【3】如果是三星部分5.0及以上系统新机型,因为增加了“自动运行”权限管理,应用在首次安装时,会弹出应用的权限管理提示,“自动运行”权限默认是关闭状态,这种情况下,非pushservice优先级最高的应用会出现绑定无回调信息返回情况,请如下操作:在三星自带的app 智能管理器 中找到:智能管理器->内存->自启动应用程序->打开pushservice优先级最高的应用(在群文件下载DetectTools工具查看priority值)和自己应用的“自动运行”开关。(已和三星厂商协商,后续版本会完全兼容)
      【4】如果非以上特殊机型问题,请在云推送官网常见问题或者群文件里面下载DetectTools工具,打开调试模式,跟一下相关日志。(SDK4.6.0及以后的版本日志输出统一使用”BDPushSDK”这个TAG开头,方便查看日志)
      【5】如以上步骤仍不能解决问题,联系开发者群云推送技术客服协助解决问题。
    • 第三方管理问题
  • 锁屏断网导致无法收到推送,有些手机自带的省电优化会在锁屏后一段时间进入无网络模式

  • Android应用调用startWork绑定不成功(即onbind回调信息中errorcod不为0)

    • 如果errorcode=10101,表示集成错误,请用DetectTools工具检查一下集成方式是否正确,如不正确参照修改建议修改,如未有错误提示,请用DetectTools工具打开调试模式,跟一下相关日志,根据日志错误提示进行修改。(常见集成错误问题:so文件集成不正确、manifest文件必须权限声明不正确、apikey设置不正确等)
    • 如果errorcode=10001,表示网络问题,请检查手机网络连接是否正常。注意如果是小米MIUI7.0及以上的系统手机,因增加不允许后台服务长时间联网特性,请如下操作:设置-其他高级设置-电量和性能-神隐模式-关闭。(已和小米厂商协商,后续版本会完全兼容)
    • 如果是其他错误码,请参考云推送官网或者用户手册中“错误码说明”进行相关问题排查。
    • 如以上步骤仍不能解决问题,联系开发者群云推送技术客服协助解决问题。
  • Android应用绑定成功(onbind返回的errorcode为0)后,推送消息收不到

    • 云推送官网常见问题或者群文件里面下载DetectTools工具,检查一下应用集成方式是否正确,如不正确参照修改建议修改。
    • 用DetectTools工具检查一下设备当前长连接和pushservice是否正常,如不正常退出应用清掉进程重新绑定一下。
    • 用DetectTools工具打开调试模式,跟一下相关日志(PushSDK4.6.0及以后的版本日志输出统一使用”BDPushSDK”这个TAG开头,方便查看日志)。
    • 用云推送官网PushDemo试一下,是否能正常绑定并接收到消息。
    • 如以上步骤仍不能解决问题,请提供appid、channelid、requestid以及推送的具体时间,联系云推送技术客服协助解决问题。
  • 联想Lenovo_K50手机绑定不成功,返回10101,使用检测工具检测不通过
    联想Lenovo_K50这款机型5.1及以上rom有问题,声明了Action但是检测不到,导致push服务不正常。计划会在下个版本单独适配,解决该问题。

  • 是否是我们的前后台判断出问题了?之前在一些手机出现过

5-小米注意事项

小米推送技术常见问题解答,收录日期2016年6月3日09:49:52

  • 当我的应用被杀掉之后,还能否接收到小米推送服务的消息?

答:有如下几种情况:如果是在MIUI系统中,使用通知栏类型的消息,是不需要应用出于启动状态就能接收并弹出通知栏的。使用透传消息,则需要应用驻留后台才能接收,由于MIUI的自启动管理限制,所以如果应用被杀,是收不到透传消息的。而如果是在非MIUI系统中,是需要应用驻留后台才能接收消息的,因此如果应用被杀死并且不能后台自启动的话,是没有办法接收消息的。为了让app尽可能的驻留后台,小米推送服务SDK监听了网络变化等系统事件,并且有应用之间的互相唤醒,但这些措施并不能保证应用可以一直在后台驻留

  • 在较老的MIUI上,有小米系统推送服务这个进程,该进程被限制接受推送的话会导致小米推送异常

  • MIUI的权限管理有自启动开关,这个可能会影响小米推送使用(不知道后面MIUI对小米推送的保护级别会不会下降)

  • 联网被阻止

小米推送服务客户端需要使用5222和443两个端口,如果在公司内网,需要联系IT部门把这两个端口开放。同时需要检查应用的联网是否会被一些手机安全助手阻止。需要特别注意的是,在MIUI系统上,长连接是由“小米服务框架”这个系统应用维护的,因此需要确保这个应用的联网并没有被阻止

  • 如果本地时间差异太多,在一些MIUI系统上会导致注册失败

系统时间错误。由于小米推送服务需要使用https请求向服务器注册一个匿名账号,在次过程中如果系统时间错误,会引起https过期,导致注册不成功

  • 遇过证书过期问题导致注册失败的情况,重启即可

  • 较新的MIUI设置-》高级 里面有个神隐模式,可能会导致小米推送受影响

  • 小米的自定义权限(修改为自定义包名的)被限制了 需要设置开启

  • 为什么我的设备在调用registerPush的时候会出现no account的错误

在app第一次在一台设备上注册推送服务时,sdk会通过https请求,从小米推送服务器生成一个匿名账号。这个错误是由于这个请求失败导致的。一般请求失败常见的原因包括如下几种:1.系统时间错误。时间错误会导致https在校验证书有效期的时候,出现证书过期,导致https请求失败。2.网络原因。这个大部分的原因都是设备架了代理服务器或连了vpn,如果排除这些原因,就检查一下app是否申请了联网权限,是否被什么安全软件阻止了登录,公司wifi是否能用,等等。3.如果是在MIUI系统上,生成匿名账号是在一个叫小米服务框架的系统app上完成的,还需要检查这个app的联网是不是在安全中心的联网控制中被手动关闭了

  • 为什么onNotificationMessageArrived方法没被调用到?

答:首先,确定你的接入是否正确,这个方法需要在manifest中添加这个action。 在接入正确的前提下,这个方法也不是保证一定能被调用的。在MIUI系统上,这个方法的调用需要同时满足如下两个条件:1.新版的MIUI。这个特性是在2015年才加进小米推送服务的,因此需要MIUI升级到较新的版本才能调用这个方法。2.需要应用驻留后台。小米推送服务的通知栏消息,是可以在应用不启动的前提下,就弹出通知栏消息的,在这种情况下, 由于MIUI的自启动管理,限制了应用不能在被杀后被后台唤醒,所以推送消息不能直接唤醒应用执行这个方法

  • 为什么我在onNotificationMessageClicked方法中的startActivity不能调起目标界面?

答:由于onNotificationMessageClicked中传入的context是application context,本身没有activity栈,因此需要在创建activity时候加入NEW_TASK的flag: Intent i = new Intent(context, MyActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i);

  • 收到通知点击推送消息,没任何反应

    • 检测onNotificationMessageClicked事件在日志中是否触发
    • app被回收,小米推送走的是系统推送,收到推送后实际上app的所有进程并没有被初始化,需要等待用户点击通知栏推送。
      点击后进行:

      1. 小米系统调用并唤醒口app;
      2. 然后初始化app进程;
      3. 最后再到解析推送数据进行跳转。
        导致较长时间无响应的原因就是第1步和第2步慢
        修复该BUG,需要解决app启动慢的问题

6-华为注意事项

常见问题,收录日期2016年6月3日09:49:52

  • 是否是我们的前后台判断出问题了?之前也在华为的手机出现过
  • 华为系统设置也有自启动管理等,可能会影响华为推送使用(不知道后面华为系统对华为推送的保护级别会不会下降)
  • 如果开启了省电模式,锁屏后一段时间会进入无网络模式

  • 将app进程杀掉后,发送消息无法拉起该app

push通道在的话发的消息是可以将强行停止的拉起来的,不过要求API level 12以上。Intent.FLAG_INCLUDE_STOPPED_PACKAGES,发广播时这个标记为可以将强行停止的拉起来,Android 3.1以上才支持。确认push在运行,发送消息即可强行拉起,进程名类似:com.huawei.pushtest:pushservice

  • 在小米手机上申请不到token

在小米手机上,给这个应用设置:保持后台运行和允许开机启动。在部分品牌手机上也可以使用该方法解决。

  • 是否可以多次调用 PushManager.requestToken

PushManager.requestToken 这个是申请token的方法 是可以调用多次的 以防止申请token失败。

  • 为什么给手机发了多条消息,手机上线后,只收到一条?

手机不在线时,消息会缓存起来。消息参数中有一个参数是渠道号,collapse_key,对于同一个token,如果渠道号collapse_key相同,则后面的缓存消息会覆盖之前的,手机在48小时内上线时,只能收到最后一条。
collapse_key范围是1-100,对于该token,最多能缓存100条Push消息

HMS sdK 是今后华为对外开放能力的统一入口, 会集成越来越多的华为能力进来, 里面不仅仅有push,还有账号,支付等等能力,以前老的HwPushSDK 的大小是600多K,HMS SDK当前只有200多K
减小了应用的大小,并且HMS push的优势在于会可以提高消息的到达率, 现在大部分手机上都做了各种限制,依赖HMS.APK可以有效的提高消息的到达率
目前老版还是可以用的,但建议接入新版HMS

  • 我们使用华为推送通知栏消息的时候,发现有些机型在应用存活状态下可以走到onEvent()回调,但是应用死亡状态下只能调起应用但走不到onEvent()回调,这个问题有什么解决方法么?

一般只有设保护应用才能解决,是由于ROM侧的广播拦截导致的,建议使用intentUrl

  • 有些机型上不存在这个问题,所以是华为对不同机型或者不同版本Emui制定了不同的规则么

在此处我们就可以注意到,上述客服人员说的“般只有设保护应用才能解决”,其实就是开放了ROM 广播的限制通道。 这是由于一些rom对应用的自启动进行了限制(对应自启动),甚至对广播的发送也进行了限制(对应受保护)。

华为手机上:
Emui3.0上,Push广播有很大概率被限制,如: Mate7 3.0版本,荣耀6plus,P7 3.0版本,4X, 4A等。
Emui3.1上,Push广播基本不被限制,但个别型号机型存在问题,如:荣耀5x等。
Emui4.0及以上,Push广播有较高概率被限制,不被限制的机型如:荣耀畅玩4C,荣耀畅玩4X,Mate S,P8 MAX等。
Emui4.1 , ROM升级到了最新版本的(80%已升),通知消息不走广播,不会被限制,透传消息走广播,会被限制。
Emui5.0以上 ,通知消息不走广播,不会被限制,透传消息走广播,会被限制。
如广播被限制,需要将应用设为开机启动项。所以对于及时性或到达率要求非常高的应用,我们建议应用要考虑替代方案。

后续Push版本,华为将采用新的设计方案,解决被限制的问题,但发布计划待定。

  • meta7要打开应用的时候才收得到推送信息,如果不打开是收不到,用的是系统通知栏推送

将应用设置为开机自启动,并设置为受保护应用 “设置-》应用管理-》找到自己的app”

(4.2.12.3)浅谈第三方推送[bug查询]:百度推送、小米推送、华为推送相关推荐

  1. (4.2.12)浅谈第三方推送[推送基础]:百度推送、小米推送、华为推送

    市面上目前做免费推送服务的有很多,友盟.极光.百度.小米.华为等,由于android机型的多样性,在使用单独的一种推送时,往往会造成一些机型无法获取(当然,内部原因可能很复杂). Android 第三 ...

  2. 从春节12响浅谈漏洞利用

    春节12响是2019大年初一上映的电影<流浪地球>中的一个桥段,天才少年李11通过黑客技术,获得行星发动机控制权,从而拯救地球的故事. 本文简介了unix操作系统内核定时器事件.epoll ...

  3. mysql 用户通配符_浅谈mysql通配符进行模糊查询的实现方法

    在mysql数据库中,当我们需要模糊查询的时候 ,我们会使用到通配符. 首先我们来了解一下2个概念,一个是操作符,一个是通配符. 操作符 like就是SQL语句中的操作符,它的作用是指示在SQL语句后 ...

  4. 浅谈第三方电子支付平台测试方法的研究

    第三方支付平台的功能和结构特点 在信用方面,第三方支付平台作为中介,在网上交易的商家和消费者之间作一个信用的中转,通过改造支付流程来约束双方的行为,从而在一定程度上缓解彼此对双方信用的猜疑,增加对网上 ...

  5. 微积分学在计算机科学中的应用,浅谈微积分学在中学数学教学中的应用解答.doc...

    题 目 浅谈微积分学在中学数学教学中的应用 学生姓名 何凯茜 学号 1109014004 所在学院 数学与计算机科学学院 专业班级 数学与应用数学专业数教1101班 指导教师 权双燕 完成地点 陕西理 ...

  6. 友盟小米收不到推送消息_一个轻量级、可插拔的Android消息推送框架。一键集成推送(极光推送、友盟推送、华为、小米推送等)...

    XPush 一个轻量级.可插拔的Android消息推送框架.一键集成推送(极光推送.友盟推送.华为.小米推送等),提供有效的保活机制,支持推送的拓展,充分解耦推送和业务逻辑,解放你的双手! 在提iss ...

  7. 微信平台第三方服务器,浅谈微信第三方服务平台的发展前景

    伴随着移动端的普及,移动互联网也在飞速的发展,同时也有越来越多的小商家开始抓住了移动互联网的这个渠道开展营销活动.而随着微信的不断更新和发展,微信用户也越来越多,而如今如雨后春笋般出现的各类微信第三方 ...

  8. 浅谈iOS和Android后台实时消息推送的原理和区别

    http://www.52im.net/thread-286-1-1.html 前言 iOS和Android上的实时消息推送差异很大,往小了说是技术实现的差异,往大了说是系统实现理念的不同.实时消息推 ...

  9. 浅谈成功运营12年的传奇2D游戏DNF(地下城与勇士)

    浅谈成功运营12年的传奇2D游戏DNF(地下城与勇士) 一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一   2008年,3D游戏并未风靡市场,中国引进了韩国在05年8 ...

最新文章

  1. HDU 3632 A Captivating Match
  2. Android开发之JNI(一)--HelloWorld及遇到的错误解析
  3. 七夕过后,你分析过自己单身原因的原因吗?
  4. Qt Creator导出QML
  5. 开发RESTful WebService
  6. 快速上手Linux核心命令(三):文件和目录操作命令
  7. [fzu 2273]判断两个三角形的位置关系
  8. python如何读取csv文件列表页_Python:使用列表列表读取CSV文件的字段
  9. Windows 10下使用Xshell5连接虚拟机的ubuntu18系统
  10. 1、XML 简介,2、JSON 教程
  11. MyCat重要概念以及基础配置详解
  12. 新路由3 newifi3 官方固件与离线插件合集
  13. Invenio 数字图书馆框架
  14. Filco圣手二代双模蓝牙机械键盘|科大讯飞鼠标连接Mac方法
  15. 有奖体验 CODING 产品,iPad Pro、HHKB 键盘等超级礼包等你来!
  16. 自由 stm32f103c8t6芯片学习原理图+中文数据手册pdf
  17. 百万级PHP网站架构-Poppen.de
  18. OKR教练:OKRs-E如何帮你落地OKR
  19. 万圣节来了,虾皮选品早知道
  20. Flash11 Stage3D游戏《封神无双》制作团队专访

热门文章

  1. sql选取连续三天登录的用户
  2. [数据结构]数据结构简介和顺序表
  3. 房卡棋牌俱乐部功能开发(一)
  4. 探索 Flutter 异步消息的实现
  5. Morph Age for Mac(变形工具)
  6. 发布即巅峰:Java性能调优六大工具:MAT内存分析工具
  7. 关于 Web 可访问性的神话
  8. 沁恒微 BLE Mesh 接入天猫精灵 教程 三元组
  9. Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据
  10. 计算机分类汇总表格,Excel分类汇总使用全攻略