当前位置: 首页 > wzjs >正文

营销网站建设流程seo自学网app

营销网站建设流程,seo自学网app,网站改版对优化的影响,安卓开发为什么不火了摘要: 现象: 应用宝的NotificationManagerService_post_com.tencent.android.qqdownloader在Doze下也可以频繁持锁,很猛啊。 解决方案: 直接拦截持锁就行,也可以冻结,限制服务或主动释放锁,…

摘要:

现象:

应用宝的NotificationManagerService_post_com.tencent.android.qqdownloader在Doze下也可以频繁持锁,很猛啊。

解决方案:

直接拦截持锁就行,也可以冻结,限制服务或主动释放锁,反正解决起来很容易。就是没想明白,为了保活目的这么拼干啥。因为在AOSP代码也就是一个if else就屏蔽掉了哈,甚至都不需要查杀或冻结操作。

分析

相关逻辑系统内部调用链

1.应用调用 notify() 后,系统服务的执行流程如下:

2.应用进程 → Binder 调用 → NotificationManagerService.notify()

3.NotificationManagerService 内部处理通知:

4.最终释放 WakeLock 的逻辑由 PostNotificationTracker 在通知处理完成后触发。

其实消息通知触发也没关系,但是太频繁就过分了,会带来频繁的持锁,导致功耗变大哈。

0

日志

从日志看:感觉是定时周期1分钟,就行不断地持锁。这样做的目的是啥,我只知道对手机待机功耗是不友好的哈。

Line 2118: 05-26 17:34:43.610025  1623  1663 D PowerManagerService: acquireWakeLockInternal: lock=110346082, flags=0x1, tag="NotificationManagerService:post:com.tencent.android.qqdownloader", ws=WorkSource{10225 com.tencent.android.qqdownloader}, uid=1000, pid=1623Line 2773: 05-26 17:35:45.094949  1623  3364 D PowerManagerService: acquireWakeLockInternal: lock=206925355, flags=0x1, tag="NotificationManagerService:post:com.tencent.android.qqdownloader", ws=WorkSource{10225 com.tencent.android.qqdownloader}, uid=1000, pid=1623Line 3403: 05-26 17:36:46.593976  1623  3364 D PowerManagerService: acquireWakeLockInternal: lock=200498714, flags=0x1, tag="NotificationManagerService:post:com.tencent.android.qqdownloader", ws=WorkSource{10225 com.tencent.android.qqdownloader}, uid=1000, pid=1623Line 4148: 05-26 17:37:48.095304  1623  3450 D PowerManagerService: acquireWakeLockInternal: lock=91113790, flags=0x1, tag="NotificationManagerService:post:com.tencent.android.qqdownloader", ws=WorkSource{10225 com.tencent.android.qqdownloader}, uid=1000, pid=1623Line 4949: 05-26 17:38:49.596294  1623  3364 D PowerManagerService: acquireWakeLockInternal: lock=101527642, flags=0x1, tag="NotificationManagerService:post:com.tencent.android.qqdownloader", ws=WorkSource{10225 com.tencent.android.qqdownloader}, uid=1000, pid=1623Line 5400: 05-26 17:39:49.768274  1623  3451 D PowerManagerService: acquireWakeLockInternal: lock=190337700, flags=0x1, tag="NotificationManagerService:post:com.tencent.android.qqdownloader", ws=WorkSource{10225 com.tencent.android.qqdownloader}, uid=1000, pid=1623

源码

日志对应的源码:​​​​​​​

private PostNotificationTracker acquireWakeLockForPost(String pkg, int uid) {    // The package probably doesn't have WAKE_LOCK permission and should not require it.    return Binder.withCleanCallingIdentity(() -> {        WakeLock wakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,                "NotificationManagerService:post:" + pkg); // 日志打印位置        wakeLock.setWorkSource(new WorkSource(uid, pkg));        wakeLock.acquire(POST_WAKE_LOCK_TIMEOUT.toMillis());        return mPostNotificationTrackerFactory.newTracker(wakeLock);    });}

相关逻辑系统内部调用链

1.应用调用 notify() 后,系统服务的执行流程如下:

2.应用进程 → Binder 调用 → NotificationManagerService.notify()

3.NotificationManagerService 内部处理通知:

4.最终释放 WakeLock 的逻辑由 PostNotificationTracker 在通知处理完成后触发。​​​​​​​

// 应用发送通知的典型代码NotificationManager nm = getSystemService(NotificationManager.class);Notification notification = new Notification.Builder(this, "channel_id")        .setContentTitle("Test")        .setContentText("Trigger WakeLock")        .setSmallIcon(R.drawable.ic_notification)        .build();nm.notify(1, notification);  // 触发内部 WakeLock 逻辑void enqueueNotificationInternal(...) {    // 检查权限、频道状态等    ...    // 获取 WakeLock(关键步骤)    PostNotificationTracker tracker = acquireWakeLockForPost(pkg, uid);    // 投递通知到系统UI    mHandler.post(new EnqueueNotificationRunnable(tracker));}最终释放 WakeLock 的逻辑由 PostNotificationTracker 在通知处理完成后触发。

解决方案:

直接拦截持锁就行,也可以冻结,限制服务或主动释放锁,反正解决起来很容易。就是没想明白,为了保活目的这么拼干啥。因为在AOSP代码也就是一个if else就屏蔽掉了哈,甚至都不需要查杀或冻结操作。

http://www.dtcms.com/wzjs/185654.html

相关文章:

  • 怎么做网站卖产品网络推广外包要多少钱
  • 做软件的网站php哪个公司做网站推广最好
  • 网络营销为导向的企业网站网站建设情况
  • 免费个人建站系统app推广接单发布平台
  • 怎么自己做三个一网站抖音seo
  • 上海网站建设多少费用电商平台有哪些?
  • 今日头条网站推广怎么做seo做什么网站赚钱
  • debian8 wordpress网站seo优化课程
  • 做外贸必备网站网络营销师资格证
  • 学做西餐的网站seo网站优化软件价格
  • 企业做网站的钱怎么做账百度seo查询工具
  • 凡科申请的网站和qq空间一样吗网络营销产品概念
  • 楼网络规划设计方案湖北seo网站推广
  • aspnet网站开发教程科学新概念外链平台
  • 我要表白网在线生成优化大师下载安装app
  • 网站备案身份证过期分销平台
  • 仿顺丰优选网站源码长沙网站优化指导
  • 做ps赚钱网站有哪些爱站关键词挖掘old
  • 兰州做网站优化网络培训中心
  • 网站管理服务不屏蔽的国外搜索引擎
  • 锦州做网站公司哪家好重庆seo网站管理
  • 免费做问卷的网站佛山网站优化排名推广
  • 广州大型网站建设网店营销的推广方法有哪些
  • 做阿里巴巴网站的电话号码电商运营去哪里学比较好
  • 商标与logo的区别桂林seo顾问
  • app下载官网网站排名优化软件联系方式
  • 广州微网站建设效果网站推广及seo方案
  • 偃师企业网站深圳网络推广招聘
  • 扬州市邗江区建设局网站百度指数有什么作用
  • wordpress 搜狐视频播放厦门seo屈兴东