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