Launcher和Setting是客户需求经常改动的地方,不过其代码量也不容小觑。今天就初略来看一下,以下内容都是本人查阅资料加上自己的理解得出,由于自己水平有限,如果误导还请指出:

先从AndroidManifest文件入手,Launcher3的工程名是ToggleWeightWatcher,包名是com.android.launcher3。

关于权限,Launcher3的权限有permission和uses-permission两种。

permission是自定义的权限,uses-permission是调用系统的permission。其中自定义permission有几个属性:

android:permissionGroup可选,为Permission进行分组,可以由以下常量定义:

ACCOUNTS:  账户管理相关

COST_MONEY:让用户花钱但不需要通过与他们直接牵涉

DEVELOPMENT_TOOLS:开发相关

HARDWARE_CONTROLS:直接访问硬件设备

LOCATION:  访问用户当前位置

MESSAGE:  信息相关

NETWORK:  访问网络服务相关

PERSONAL_INFO:访问用户私人数据相关

PHONE_CALLS:拨号相关

STORAGE:SD卡相关

SYSTEM_TOOLS:系统API有关

android:protectionLevel必有,

normal:低风险权限,只要申请了就可以使用(在AndroidManifest.xml中添加标签),安装时不需要用户确认;

dangerous:高风险权限,安装时需要用户的确认才可使用;

signature:只有当申请权限的应用程序的数字签名与声明此权限的应用程序的数字签名相同时(如果是申请系统权限,则需要与系统签名相同),才能将权限授给它;

signatureOrSystem:签名相同,或者申请权限的应用为系统应用(在system image中)

其他的android:label, android:name, android:description是描述性信息

android:name="com.android.launcher3.permission.PRELOAD_WORKSPACE"

android:permissionGroup="android.permission-group.SYSTEM_TOOLS"

android:protectionLevel="system|signature"/>

android:name="com.android.launcher.permission.INSTALL_SHORTCUT"

android:permissionGroup="android.permission-group.SYSTEM_TOOLS"

android:protectionLevel="dangerous"

android:label="@string/permlab_install_shortcut"

android:description="@string/permdesc_install_shortcut"/>

android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"

android:permissionGroup="android.permission-group.SYSTEM_TOOLS"

android:protectionLevel="dangerous"

android:label="@string/permlab_uninstall_shortcut"

android:description="@string/permdesc_uninstall_shortcut"/>

android:name="com.android.launcher3.permission.READ_SETTINGS"

android:permissionGroup="android.permission-group.SYSTEM_TOOLS"

android:protectionLevel="normal"

android:label="@string/permlab_read_settings"

android:description="@string/permdesc_read_settings"/>

android:name="com.android.launcher3.permission.WRITE_SETTINGS"

android:permissionGroup="android.permission-group.SYSTEM_TOOLS"

android:protectionLevel="normal"

android:label="@string/permlab_write_settings"

android:description="@string/permdesc_write_settings"/>

android:name="com.android.launcher3.permission.RECEIVE_LAUNCH_BROADCASTS"

android:protectionLevel="signature"

/>

下面逐一看一下各个权限:

相关推荐

android launcher3源码分析,Android Launcher3源码分析与修改相关推荐

  1. AOSP源码Gallery2和Launcher3导入Android Studio

    本文适用于有一定Android源码编译能力的开发者,对AOSP没有什么概念的同学可以参考涅槃1992发表的文章:自己动手编译Android源码(超详细),正如作者所说,超详细,也很简单. 引入 我之前 ...

  2. Android10.0 日志系统分析(三)-logd、logcat读写日志源码分析-[Android取经之路]

    摘要:本节主要来讲解Android10.0 logd.logcat读写日志源码内容 阅读本文大约需要花费20分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Andro ...

  3. 【Android 插件化】Hook 插件化框架 ( 从 Hook 应用角度分析 Activity 启动流程 二 | AMS 进程相关源码 | 主进程相关源码 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  4. 【Android 电量优化】JobScheduler 相关源码分析 ( ConnectivityController 底层源码分析 | 构造函数 | 追踪任务更新 | 注册接收者监听连接变化 )

    文章目录 一.ConnectivityController 连接控制器引入 二.ConnectivityController 构造方法解析 ( 注册接收者 ) 三.mConnectivityRecei ...

  5. 【Android 性能优化】应用启动优化 ( 阶段总结 | Trace 文件分析及解决方案 | 源码分析梳理 | 设置主题的方案总结 ) ★

    文章目录 一. 常用的耗时方法优化方案 ( 重要 ) 二. 源码分析梳理 1. 应用启动时间计算相关源码分析 2. Launcher 应用中启动 Android 应用流程 三. 启动白屏解决方案 An ...

  6. 命令构建gradle项目_【Android 修炼手册】Gradle 篇 -- Gradle 源码分析

    预备知识 理解 gradle 的基本开发 了解 gradle task 和 plugin 使用及开发 了解 android gradle plugin 的使用 看完本文可以达到什么程度 了解 grad ...

  7. 【Android 修炼手册】Gradle 篇 -- Gradle 源码分析

    预备知识 理解 gradle 的基本开发 了解 gradle task 和 plugin 使用及开发 了解 android gradle plugin 的使用 看完本文可以达到什么程度 了解 grad ...

  8. 源码分析Android Handler是如何实现线程间通信的

    源码分析Android Handler是如何实现线程间通信的 Handler作为Android消息通信的基础,它的使用是每一个开发者都必须掌握的.开发者从一开始就被告知必须在主线程中进行UI操作.但H ...

  9. Android 系统(177)---Android消息机制分析:Handler、Looper、MessageQueue源码分析

    Android消息机制分析:Handler.Looper.MessageQueue源码分析 1.前言 关于Handler消息机制的博客实际上是非常多的了. 之前也是看别人的博客过来的,但是过了一段时间 ...

最新文章

  1. 电机编码器调零步骤_西门子伺服电机电缆选型
  2. Mysql 死锁过程及案例详解之清空缓存锁Flush Lock
  3. php实现mysql分表
  4. linux中until循环的特点,Bash 中的 until 循环详解
  5. 《面向对象程序设计》作业(四)
  6. 读书笔记_打开量化投资的黑箱07
  7. Data Center TCP (DCTCP)学习笔记
  8. 2020年云计算就业前景怎么样?
  9. 快速原型工具,帮你从0开始画原型图
  10. html怎么统计总访问量,如何实现对网站页面访问量的统计?
  11. Opencv -- 13像素值统计及平均值和方差的意义
  12. Windows 10 支持AAC编码的方法
  13. 基于中文语义词典的语义相关度量方法比较研究
  14. 【小白米日志】树莓派3b+四位共阴数码管的连接和驱动
  15. 快速屏蔽百度热榜百度广告百度推广
  16. scrapy爬虫实战教程
  17. Java 简单的用户管理系统(代码注释超全超详细!!!)
  18. SiO2/罗丹明B荧光杂化纳米微球/硅钼比核壳结构二氧化硅微球钼酸钙荧光粉的性能
  19. window 7 笔记本电源损耗修复(简单方法)
  20. 中国可再生能源行业深度研究与未来前景规划趋势报告2022-2028年新版

热门文章

  1. camerax 自动聚焦_Android实现手机摄像头的自动对焦
  2. 如何比较浮点数相等_『GCTT 出品』Go 语言中的比较操作符
  3. mysql搜索规则_MySQL基于规则优化
  4. 【转】grep搜索子目录中包含某字符串的特定文件
  5. Windows 7 + Fedora 17 双系统安装详解
  6. mysql 查询结果行变列_SQL 查询怎么将行变成列
  7. 小学五年级计算机教学论文,小学五年级数学教学论文 如何激发学生学习数学的兴趣...
  8. android o miui特性,终于来了,小米开启 Android O 内测
  9. fetchtype 动态控制_RouterOS利用aliyun的API接口实现DDNS动态解析
  10. docker linux界面版,centos 7 Docker使用Portainer搭建可视化界面