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

网站引导页在线做/保定百度推广联系电话

网站引导页在线做,保定百度推广联系电话,商务平台搭建,做网站客户要先看效果后付款问题背景 当自写APP发现无缘无故多申请了多个权限,其中一个就是:android.permission.WAKE_LOCK. 一想就知道如果并非自己在APP main中引入的,那就是依赖的库清单文件导入进来的. 定位问题 定位手段 1.manifest-merger-buildVariant-report.txt 根据其内容可知, WAKE_LOCK 权…

问题背景

当自写APP发现无缘无故多申请了多个权限,其中一个就是:android.permission.WAKE_LOCK. 一想就知道如果并非自己在APP main中引入的,那就是依赖的库清单文件导入进来的.

定位问题

定位手段

1.manifest-merger-buildVariant-report.txt

根据其内容可知, WAKE_LOCK 权限来源于work-runtime-2.7.0的库依赖,其清单文件中的25行5-68个字符.

uses-permission#android.permission.WAKE_LOCK
ADDED from [androidx.work:work-runtime:2.7.0] /home/user/.gradle/caches/transforms-3/603a5a760e085f6144531debd6660c46/transformed/work-runtime-2.7.0/AndroidManifest.xml:25:5-68

2.自编AndroidManifest.xml中选中Merged manifest, 通过查看预览merge视图定位来源.

从上视图查看就更加直观了.选中被merge进来的元素,右侧会预览显示merging log. 直接双击该行被引入的元素, 会自动跳转到对应work-runtime的清单文件中.

其内容如下:

<?xml version="1.0" encoding="utf-8"?>
<!--~ Copyright (C) 2016 The Android Open Source Project~~ Licensed under the Apache License, Version 2.0 (the "License");~ you may not use this file except in compliance with the License.~ You may obtain a copy of the License at~~      http://www.apache.org/licenses/LICENSE-2.0~~ Unless required by applicable law or agreed to in writing, software~ distributed under the License is distributed on an "AS IS" BASIS,~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.~ See the License for the specific language governing permissions and~ limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="androidx.work" ><uses-sdkandroid:minSdkVersion="14"android:targetSdkVersion="31" /><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><uses-permission android:name="android.permission.FOREGROUND_SERVICE" /><application><providerandroid:name="androidx.startup.InitializationProvider"android:authorities="${applicationId}.androidx-startup"android:exported="false"tools:node="merge" ><meta-dataandroid:name="androidx.work.WorkManagerInitializer"android:value="androidx.startup" /></provider><serviceandroid:name="androidx.work.impl.background.systemalarm.SystemAlarmService"android:directBootAware="false"android:enabled="@bool/enable_system_alarm_service_default"android:exported="false"tools:targetApi="n" /><serviceandroid:name="androidx.work.impl.background.systemjob.SystemJobService"android:directBootAware="false"android:enabled="@bool/enable_system_job_service_default"android:exported="true"android:permission="android.permission.BIND_JOB_SERVICE"tools:targetApi="n" /><serviceandroid:name="androidx.work.impl.foreground.SystemForegroundService"android:directBootAware="false"android:enabled="@bool/enable_system_foreground_service_default"android:exported="false"tools:targetApi="n" /><receiverandroid:name="androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver"android:directBootAware="false"android:enabled="true"android:exported="false"tools:targetApi="n" /><receiverandroid:name="androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy"android:directBootAware="false"android:enabled="false"android:exported="false"tools:targetApi="n" ><intent-filter><action android:name="android.intent.action.ACTION_POWER_CONNECTED" /><action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /></intent-filter></receiver><receiverandroid:name="androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy"android:directBootAware="false"android:enabled="false"android:exported="false"tools:targetApi="n" ><intent-filter><action android:name="android.intent.action.BATTERY_OKAY" /><action android:name="android.intent.action.BATTERY_LOW" /></intent-filter></receiver><receiverandroid:name="androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy"android:directBootAware="false"android:enabled="false"android:exported="false"tools:targetApi="n" ><intent-filter><action android:name="android.intent.action.DEVICE_STORAGE_LOW" /><action android:name="android.intent.action.DEVICE_STORAGE_OK" /></intent-filter></receiver><receiverandroid:name="androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy"android:directBootAware="false"android:enabled="false"android:exported="false"tools:targetApi="n" ><intent-filter><action android:name="android.net.conn.CONNECTIVITY_CHANGE" /></intent-filter></receiver><receiverandroid:name="androidx.work.impl.background.systemalarm.RescheduleReceiver"android:directBootAware="false"android:enabled="false"android:exported="false"tools:targetApi="n" ><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /><action android:name="android.intent.action.TIME_SET" /><action android:name="android.intent.action.TIMEZONE_CHANGED" /></intent-filter></receiver><receiverandroid:name="androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver"android:directBootAware="false"android:enabled="@bool/enable_system_alarm_service_default"android:exported="false"tools:targetApi="n" ><intent-filter><action android:name="androidx.work.impl.background.systemalarm.UpdateProxies" /></intent-filter></receiver><receiverandroid:name="androidx.work.impl.diagnostics.DiagnosticsReceiver"android:directBootAware="false"android:enabled="true"android:exported="true"android:permission="android.permission.DUMP"tools:targetApi="n" ><intent-filter><action android:name="androidx.work.diagnostics.REQUEST_DIAGNOSTICS" /></intent-filter></receiver></application></manifest>

从清单文件中可知,其中被默认引入了很多androidx相关的能力, 尽管我们自己定义的demo的AndroidManifest.xml很简单.

这时候可能根据自身情况看是否引入了过多不必要的dependencies依赖库.

3.清单文件合并规则

更多清单文件的合并规则,可以参考android开发者网站官方说明.

管理清单文件  |  Android Studio  |  Android Developers

(完)

http://www.lryc.cn/news/577885.html

相关文章:

  • 企业网站在线客服怎么做/淘宝店铺推广
  • jsp mysql 网站开发/seo广州工作好吗
  • 工作室建设规划/天津seo网络营销
  • 做网站界面尺寸是多少/全网营销系统是不是传销
  • 音乐网站如何建设/国内新闻
  • 网站设计的目的是什么/医疗器械龙头股
  • 如何承接设计网站建设/百度浏览器网页
  • 上海企业网站建设方法/seo是干什么的
  • 接做网站需要问什么条件/巩义网络推广公司
  • 做国际交友网站翻译/网站生成
  • 网站建设立项ppt/无锡谷歌优化
  • 最专业的外贸网站建设/合肥全网优化
  • 怎样给网站或者商品做推广/百度网站介绍
  • 做游戏网站有几个要素/成都网站seo技术
  • 网站建设方案书域名备案/网络推广的几种方式
  • 豆各庄做网站的公司/seo网站优化教程
  • 做pc端网站新闻/网站如何让百度收录
  • 黑马程序员项目库/北京公司排名seo
  • 丹阳市网站制作/深圳百度公司地址在哪里
  • 西丽网站建设/正规网络推广服务
  • 吉安建站公司/seo指的是搜索引擎
  • 网站彩票怎么做/排名优化公司哪家效果好
  • 一个高端网站设计/宜兴网站建设
  • 哪里有好的免费成品网站程序/百度站长平台网站提交
  • 陕西建设厅网站/网络推广有哪些方法
  • 企业如何网站建设/关键词优化排名首页
  • 网站建成之后应该怎么做/写文的免费软件
  • seo快速排名站外流量推广/短视频营销的优势
  • wordpress修改搜索框全屏/白城seo
  • 利用博客做网站排名/推广网站有哪些