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

wordpress伪静态怎么弄淘宝seo搜索排名优化

wordpress伪静态怎么弄,淘宝seo搜索排名优化,浦东新区专业网站建设,asp.net做的小网站摘要: adb shell dumpsys connmetrics 的packet wakeup events触发条件:首先App是无法控制packet wakeup events的事件日志打印,主要App联网过程中网络状态或配置发生变化时由系统netd自动触发的统计。 通俗理解:目前主要表示触…

摘要:

adb shell dumpsys connmetrics 的packet wakeup events触发条件:首先App是无法控制packet wakeup events的事件日志打印,主要App联网过程中网络状态或配置发生变化时由系统netd自动触发的统计。

通俗理解:目前主要表示触发了网络连接的属性更新,起码从功耗角度存在联网行为,但是没办法区分是下载、浏览网页、心跳唤醒的类型和次数统计等。好处是告知了uid和对应的联网地址,也是调查功耗问题的利器

  1. 改变网络连接:当应用程序请求系统连接到另一个Wi-Fi网络或断开当前网络连接时,网络属性会发生变化。
  2. 请求网络特性:应用程序可以通过Android的 ConnectivityManager 请求具有特定网络特性的连接
  3. 切换移动数据和Wi-Fi:如果应用程序有权限更改设备的网络连接,它可以切换移动数据和Wi-Fi。当网络从一种类型切换到另一种类型时,网络连接的属性将更新。
  4. VPN连接:当应用程序建立或断开VPN连接时,设备的网络链接属性可能会发生变化,因为VPN会影响设备的路由表和其他网络配置。
  5. 网络配置变化:某些特权应用程序可能能够更改网络配置,如静态IP设置、DNS服务器等。这些变化也会触发网络属性更新。
  6. 系统级网络变化:系统级事件,如飞行模式的切换、SIM卡状态的变化等,也可以影响网络连接属性。

一、日志含义:

packet wakeup events[记录网络唤醒]:

WakeupStats(wlan0, 143654s, total: 7448, root: 0, system: 24, apps: 1713, non-apps: 0, no uid: 5711, l2 unicast/multicast/broadcast: 7448/0/0, ethertype 0x800: 6395, ethertype 0x86dd: 1053, ipNxtHdr 1: 4637, ipNxtHdr 6: 1906, ipNxtHdr 17: 696, ipNxtHdr 58: 209)WakeupEvent(22:44:07.139【时间点】, wlan0【wifi对应的网口】, uid: -1【应用的UID,-1可能路由器导致或未被】, eth=0x800, dstHw=48:12:58:2d:9e:08, ipNxtHdr=1, srcIp=192.168.1.1【sourceIp地址】, dstIp=192.168.1.31【destination IP 地址】)WakeupEvent(22:44:07.140, wlan0, uid: 10164, eth=0x86dd, dstHw=48:12:58:2d:9e:08, ipNxtHdr=6, srcIp=2408:873d:1022:1049:0:ff:b01c:456c, dstIp=2408:823c:4c17:fb38:707d:7c8d:363e:35ca, srcPort=443【source 端口】, dstPort=51710【destination 端口】)WakeupEvent(22:44:07.140, wlan0, uid: -1, eth=0x800, dstHw=48:12:58:2d:9e:08, ipNxtHdr=1, srcIp=192.168.1.1, dstIp=192.168.1.31)

0

uid=-1的现象调查:以下是chatGpt回答和源码调查,可能原因很多

在日志中出现 `WakeupEvent(22:44:07.140, wlan0, uid: -1)` 意味着有一个网络唤醒事件发生在22:44:07.140,发生在`wlan0`接口上,但是该事件没有关联到一个有效的UID。UID值为`-1`可能有以下原因:1. **系统流量**:接收到的数据包可能是系统级别的流量,比如DHCP请求、ARP请求等,并不是由特定用户进程发起的。2. **无法识别的流量**:如果数据包不能与任何已知进程关联,或者它不属于任何特定的用户会话,netd就无法为其分配一个有效的UID。3. **数据包缺少UID信息**:在数据包的Netlink消息中可能缺少了UID信息,导致无法从消息中提取出UID。4. **解析错误**:在处理Netlink消息并提取数据包信息时,可能发生了解析错误,导致无法正确识别或赋值UID。5. **安全或隐私考虑**:由于安全或隐私原因,可能故意不在日志中记录特定UID。6. **广播或多播流量**:接收到的可能是一个广播或多播数据包,它并不直接针对某个特定的进程,因此无法分配UID。7. **数据包来自未识别的网络层**:如果数据包来自未被系统识别或监控的网络层,例如某些VPN流量,可能不会包含UID信息。8. **系统配置或规则**:系统的网络配置或特定的iptables/netfilter规则可能导致一些数据包不被赋予UID。9. **软件缺陷**:netd或相关组件中的软件缺陷可能导致UID信息未被正确处理或记录。10. **内核不支持**:如果内核版本不支持某些功能,比如网络唤醒事件的UID跟踪,那么UID信息也可能无法获取。针对上述情况,可以通过检查系统的配置、相关的网络协议处理、安全策略和软件的日志或代码来确定具体原因。如果需要进一步的诊断,可能需要启用更详细的日志记录,或者使用网络抓包工具来捕获和分析网络流量。源码是:默认值-1source/xref/master_sm8650/android/qssi/system/netd/server/WakeupController.cpp120  netdutils::Status WakeupController::init(NFLogListenerInterface* listener) {121      mListener = listener;122      const auto msgHandler = [this](const nlmsghdr&, const nfgenmsg&, const Slice msg) {123  124          struct WakeupController::ReportArgs args = {125              .uid = -1,126              .gid = -1,127              .ethertype = -1,128              .ipNextHeader = -1,129              .srcPort = -1,130              .dstPort = -1,131              // and all other fields set to 0 as the default132          };133          bool parseAgain = false;134  135          const auto attrHandler = [&args, &parseAgain](const nlattr attr, const Slice payload) {136              switch (attr.nla_type) {137                  case NFULA_TIMESTAMP: {138                      timespec ts = {};139                      extract(payload, ts);140                      constexpr uint64_t kNsPerS = 1000000000ULL;141                      args.timestampNs = ntohl(ts.tv_nsec) + (ntohl(ts.tv_sec) * kNsPerS);142                      break;143                  }144                  case NFULA_PREFIX:145                      // Strip trailing '\0'146                      args.prefix = toString(take(payload, payload.size() - 1));147                      break;148                  case NFULA_UID:149                      extract(payload, args.uid);150                      args.uid = ntohl(args.uid);151                      break;152                  case NFULA_GID:153                      extract(payload, args.gid);154                      args.gid = ntohl(args.gid);155                      break;156                  case NFULA_HWADDR: {157                      struct nfulnl_msg_packet_hw hwaddr = {};158                      extract(payload, hwaddr);159                      size_t hwAddrLen = ntohs(hwaddr.hw_addrlen);160                      hwAddrLen = std::min(hwAddrLen, sizeof(hwaddr.hw_addr));161                      args.dstHw.assign(hwaddr.hw_addr

二、源码:

./frameworks/libs/net/common/netd/binder/android/net/metrics/INetdEventListener.aidl:93:    void onWakeupEvent(String prefix, int uid, int ethertype, int ipNextHeader, in byte[] dstHw,./frameworks/base/services/art-profile:2962:HPLcom/android/server/connectivity/NetdEventListenerService;->onWakeupEvent(Ljava/lang/String;III[BLjava/lang/String;Ljava/lang/String;IIJ)V./frameworks/base/services/core/java/com/android/server/connectivity/NetdEventListenerService.java:322:    public synchronized void onWakeupEvent(String prefix, int uid, int ethertype, int ipNextHeader,

0

/**     * Logs a single RX packet which caused the main CPU to exit sleep state.     * @param prefix arbitrary string provided via wakeupAddInterface()     * @param uid UID of the destination process or -1 if no UID is available.     * @param ethertype of the RX packet encoded in an int in native order, or -1 if not available.     * @param ipNextHeader ip protocol of the RX packet as IPPROTO_* number,              or -1 if the packet was not IPv4 or IPv6.     * @param dstHw destination hardware address, or 0 if not available.     * @param srcIp source IP address, or null if not available.     * @param dstIp destination IP address, or null if not available.     * @param srcPort src port of RX packet in native order, or -1 if the packet was not UDP or TCP.     * @param dstPort dst port of RX packet in native order, or -1 if the packet was not UDP or TCP.     * @param timestampNs receive timestamp for the offending packet. In units of nanoseconds and     *        synchronized to CLOCK_MONOTONIC.     * 记录一个导致主CPU退出睡眠状态的单个RX数据包。     * @param prefix 通过wakeupAddInterface()提供的任意字符串     * @param uid 目标进程的UID,如果没有可用的UID则为-1。     * @param ethertype RX数据包的以太网类型,以原生顺序编码的int值,如果不可用则为-1。     * @param ipNextHeader RX数据包的IP协议号,作为IPPROTO_*数字,如果数据包不是IPv4或IPv6,则为-1。     * @param dstHw 目的地硬件地址,如果不可用则为0。     * @param srcIp 来源IP地址,如果不可用则为null。     * @param dstIp 目的地IP地址,如果不可用则为null。     * @param srcPort RX数据包的源端口,以原生顺序,如果数据包不是UDP或TCP则为-1。     * @param dstPort RX数据包的目的端口,以原生顺序,如果数据包不是UDP或TCP则为-1。     * @param timestampNs 违规数据包的接收时间戳。以纳秒为单位,并且与CLOCK_MONOTONIC同步。*/ void onWakeupEvent(String prefix, int uid, int ethertype, int ipNextHeader, byte[] dstHw, String srcIp, String dstIp, int srcPort, int dstPort, long timestampNs);     */321      @Override322      public synchronized void onWakeupEvent(String prefix, int uid, int ethertype, int ipNextHeader,323              byte[] dstHw, String srcIp, String dstIp, int srcPort, int dstPort, long timestampNs) {324          final String[] prefixParts = prefix.split(WAKEUP_EVENT_PREFIX_DELIM);325          if (prefixParts.length != 2) {326              throw new IllegalArgumentException("Prefix " + prefix327                      + " required in format <nethandle>:<interface>");328          }329          final long netHandle = Long.parseLong(prefixParts[0]);330          final Network network = Network.fromNetworkHandle(netHandle);331  332          final WakeupEvent event = new WakeupEvent();333          event.iface = prefixParts[1];334          event.uid = uid;335          event.ethertype = ethertype;336          if (ArrayUtils.isEmpty(dstHw)) {337              if (hasWifiTransport(network)) {338                  Log.e(TAG, "Empty mac address on WiFi transport, network: " + network);339              }340              event.dstHwAddr = null;341          } else {342              event.dstHwAddr = MacAddress.fromBytes(dstHw);343          }344          event.srcIp = srcIp;345          event.dstIp = dstIp;346          event.ipNextHeader = ipNextHeader;347          event.srcPort = srcPort;348          event.dstPort = dstPort;349          if (timestampNs > 0) {350              event.timestampMs = timestampNs / NANOS_PER_MS;351          } else {352              event.timestampMs = System.currentTimeMillis();353          }354          addWakeupEvent(event);355  356          final BatteryStatsInternal bsi = LocalServices.getService(BatteryStatsInternal.class);357          if (bsi != null) {358              final long elapsedMs = SystemClock.elapsedRealtime() + event.timestampMs359                      - System.currentTimeMillis();360              bsi.noteCpuWakingNetworkPacket(network, elapsedMs, event.uid);361          }362  363          final String dstMac = String

三、App的一些可以触发的示例(理论推测,未实践)

// 获取ConnectivityManager实例ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);// 创建NetworkRequest.Builder对象NetworkRequest.Builder builder = new NetworkRequest.Builder();// 指定网络类型为Wi-Fibuilder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);// 添加网络功能,比如访问互联网builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);// 创建NetworkRequest对象NetworkRequest networkRequest = builder.build();// 创建一个NetworkCallback来处理网络变化ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {    @Override    public void onAvailable(Network network) {        // 当符合条件的网络可用时调用        // 使用该网络进行网络操作        Log.d("NetworkCallback", "Wi-Fi网络现在可用");        // 这里可以通过ConnectivityManager.setProcessDefaultNetwork(network)来设置APP默认网络(API 23已弃用)        // 或使用其他API来绑定数据流到这个网络    }    @Override    public void onLost(Network network) {        // 当满足条件的网络不再可用时调用        Log.d("NetworkCallback", "Wi-Fi网络丢失");    }};// 请求具有特定特性的网络connectivityManager.requestNetwork(networkRequest, networkCallback);

http://www.hengruixuexiao.com/news/56676.html

相关文章:

  • 网站建设需要度搜去自己建个网站要多少钱
  • 微信公众号人工咨询电话优化好搜移动端关键词快速排名
  • 公司制作网站怎么做的优化游戏的软件
  • 大陆人去香港做义工网站河源今日头条新闻最新
  • 跨境电商平台b2b代表有哪些天津seo渠道代理
  • 做网站v1认证需要付费吗上海网站建设
  • 数据库 搭建 网站衡阳百度seo
  • 南京制作网页学校关键词seo排名怎么样
  • 微信辅助做任务网站网上销售有哪些方法
  • 厦门域名空间建网站汕头网站推广排名
  • 广汉市 建设局网站营销网站建设的因素
  • 教育培训类网站模板淘宝关键词工具
  • 中通物流企业网站建设书网站搜索排优化怎么做
  • 做网站赚钱吗 怎么赚钱百度广告公司
  • 河南网站建设网络公司西安seo服务外包
  • 网站建设项目关键词挖掘工具
  • 培训网站建设多少钱建站系统推荐
  • wordpress建立多站点首页关键词优化价格
  • 企业网站建设视频搜索引擎优化的主要特征
  • 用asp做网站的流程百度收录查询代码
  • 邮箱官网注册入口系统优化的方法
  • 深圳云网站建站公司推广优化
  • 网站空间怎样算做国外网站
  • 静态展示类网站谷歌浏览器网页版入口在哪里
  • 专业网站建设最便宜seo自动发布外链工具
  • 包头学做网站餐饮管理和营销方案
  • 河南网站托管软文营销步骤
  • 蓝天使网站建设推广网络营销方案范文
  • 做网站怎么开后台seo 视频
  • 做 爱 网站视频短片爱链