Framework相关修改记录(基于android9)

记录framework相关修改

1.app弹窗修改权限

  • 源码位置
frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
  • 修改
changedInstallPermission = true;

2.移除systemui后系统卡在开机动画页面

  • 源码位置
frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
  • 修改
//0 seconds for displaying Launcher when SystemUI app doesn't exist, modified by chenweihao
+            mH.sendEmptyMessageDelayed(H.BOOT_TIMEOUT, 0);

3.允许/data/app 预装APK

  • 源码位置
frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java
  • 修改
//注释
/*else { 
                         throw new PackageManagerException(INSTALL_FAILED_INVALID_INSTALL_LOCATION,
                                 "Application package " + pkg.packageName
                                 + " not found; ignoring.");
-                    }
+                    }*/

4.默认授予悬浮窗权限

源码位置 base/core/java/android/app/AppOpsManager.java

AppOpsManager.MODE_ALLOWED, // SYSTEM_ALERT_WINDOW //default:getSystemAlertWindowDefault()
### Android Framework中的键值存储机制 #### SharedPreferences简介 SharedPreferences 是一种轻量级的键值对存储方式,在Android应用开发中广泛用于保存应用程序的小型配置文件。这种机制允许开发者以键值对的形式读取和写入数据,支持的数据类型包括布尔值、浮点数、整数、长整数以及字符串。 对于SharedPreferences的操作主要包括获取编辑器对象、提交更改等内容。下面是一个简单的代码示例来展示如何使用SharedPreferences: ```java // 获取SharedPreferences实例 SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("MyPrefs", MODE_PRIVATE); // 写入操作 SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("key_name", "value"); editor.apply(); // 或者使用commit() // 读取操作 String value = sharedPreferences.getString("key_name", "default_value"); ``` #### ContentProvider概述 ContentProvider 提供了一种标准化的方法让不同应用程序之间共享数据。它基于URI模式定义了一个抽象层,使得其他程序可以通过统一的方式访问指定的内容提供者所管理的数据资源。通常情况下,这些数据会被组织成表格形式,每一列代表一个字段名即键,而每行则对应着具体的记录也就是值。 当涉及到跨进程通信时,ContentProvider就显得尤为重要了。例如,联系人列表就是通过这种方式对外界开放其内部数据库结构以便第三方APP能够方便地查询或修改其中的信息。 #### 文件系统作为KV Store的应用场景 除了上述两种常见的方法外,还可以利用文件系统的目录树特性构建自定义的键值对存储方案。比如JSON/XML格式可以很好地表达层次化的配置项;SQLite数据库也提供了更复杂的关系型表单设计能力,适用于较大规模的数据集处理需求。 综上所述,Android框架内存在多种实现键值对的技术手段可供选择,具体采用哪一种取决于实际应用场景的要求[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值