Android frameworks 开发总结之九(Settings)

1.移除Settings首頁所有suggestion項

XXX設備按照客人要求需要移除Settings中所有的suggestion項,比喻:Finish setting up your device,Customize your device等。

修改packages/apps/SettingsIntelligence/src/com/android/settings/intelligence/suggestions/SuggestionParser.java 文件中的getSuggestions方法:

public List<Suggestion> getSuggestions() {final SuggestionListBuilder suggestionBuilder = new SuggestionListBuilder();for (SuggestionCategory category : CATEGORIES) {if (category.isExclusive() && !isExclusiveCategoryExpired(category)) {// If suggestions from an exclusive category are present, parsing is stopped// and only suggestions from that category are displayed. Note that subsequent// exclusive categories are also ignored.// Read suggestion and force ignoreSuggestionDismissRule to be false so the rule// defined from each suggestion itself is used.final List<Suggestion> exclusiveSuggestions =readSuggestions(category, false /* ignoreDismissRule */);exclusiveSuggestions.clear(); // remove all suggestion itemif (!exclusiveSuggestions.isEmpty()) {suggestionBuilder.addSuggestions(category, exclusiveSuggestions);return suggestionBuilder.build();}} else {// Either the category is not exclusive, or the exclusiveness expired so we should// treat it as a normal category.final List<Suggestion> suggestions =readSuggestions(category, true /* ignoreDismissRule */);suggestions.clear(); //remove all suggestion itemsuggestionBuilder.addSuggestions(category, suggestions);}}return suggestionBuilder.build();}

2.解決Settings中search results前面的null level

使用settings中的 search功能時,在搜索的結果中最前面多一個null level。修改:packages/apps/SettingsIntelligence/src/com/android/settings/intelligence/search/sitemap/SiteMapManager.java 文件中的buildBreadCrumb 方法.

  public synchronized List<String> buildBreadCrumb(Context context, String clazz,String screenTitle) {init(context);final long startTime = System.currentTimeMillis();final List<String> breadcrumbs = new ArrayList<>();if (!mInitialized) {Log.w(TAG, "SiteMap is not initialized yet, skipping");return breadcrumbs;}breadcrumbs.add(screenTitle);String currentClass = clazz;String currentTitle = screenTitle;// Look up current page's parent, if found add it to breadcrumb string list, and repeat.while (true) {final SiteMapPair pair = lookUpParent(currentClass, currentTitle);//檢測parent title是否爲空,爲空不添加if (pair == null || pair.getParentTitle() == null) {if (DEBUG_TIMING) {Log.d(TAG, "BreadCrumb timing: " + (System.currentTimeMillis() - startTime));}return breadcrumbs;}breadcrumbs.add(0, pair.getParentTitle());currentClass = pair.getParentClass();currentTitle = pair.getParentTitle();}}

3.Settings 获取app存储大小

设置里面的app信息里面存储里面的app Size对应stats.codeSize. 读取流程如下:

StorageStatsService.queryStatsForPackage-->StorageStatsService.queryStatsForUid -->Installer.getAppSize -→InstalldNativeService.cpp

frameworks/base/services/usage/java/com/android/server/usage/StorageStatsService.java

frameworks/base/services/core/java/com/android/server/pm/Installer.java

frameworks/native/cmds/installd/InstalldNativeService.cpp

如果想debug InstallNatvieService文件中读取大小的时候是否有错误,则需要enable MEASURE_DEBUG, 打开方式为设定“frameworks/native/cmds/installd/utils.h“文件中的MEASURE_DEBUG为1。

InstalldNativeService文件中的getAppSize方法里面“calculate_tree_size“这个是在” frameworks/native/cmds/installd/utils.cpp”文件中实现.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/168780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UML建模图文详解教程07——活动图

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl本文参考资料&#xff1a;《UML面向对象分析、建模与设计&#xff08;第2版&#xff09;》吕云翔&#xff0c;赵天宇 著 活动图概述 活动图(activity diagram)是 UML中一种重…

SSM企业风向管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 企业风向管理系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库 &#xff0c;系统主要采用B/…

Java注解与注解处理器

文章目录 标注注解元注解TargetRetentionPolicy 创建自定义注解实现注解处理器AbstractProcessor 里面的Element1.TypeElement :2.VariableElement:3.ExecuteableElement: 需要实现的AbstractProcessor 方法1.init()2.getSupportedSourceVersion()3.getSupportedAnnotationType…

LangChain 9 模型Model I/O 聊天提示词ChatPromptTemplate, 少量样本提示词FewShotPrompt

LangChain系列文章 LangChain 实现给动物取名字&#xff0c;LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储&#xff0c;读取YouTube的视频文本搜索I…

番外篇之矩阵运算

矩阵的运算代码&#xff08;加减乘除&#xff09;&#xff08;内有注释&#xff09; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #define ROW 10 //定义行 #define COL 10 //定义列 //设置全局变量A矩阵的m代表实际矩阵的行数&#xff0c;n代表实际矩阵的列…

ASO优化之如何测试应用的屏幕截图

截取屏幕截图并上传到应用商店后&#xff0c;我们需要对其进行测试和优化&#xff0c;从而来获得更高的转化率&#xff0c;精美的图片有助于提高应用在商店的安装率。 1、定义目标受众。 战略性地决定测试哪些目标受众&#xff0c;可以通过年龄、性别、地点、兴趣等来定义我们…

[黑马程序员SpringBoot2]——原理篇1

目录&#xff1a; bean的加载方式(—)bean的加载方式(二)bean的加载方式(三)FactoryBeanproxyBeanMethod属性bean的加载方式(四)bean的加载方式(五)bean的加载方式(六)bean的加载方式(七)bean的加载方式(八)bean加载控制&#xff08;编程式)bean加载控制&#xff08;注解式)be…

前端uni微信小程序和后端nodejs使用websoket

需求 前端向后台服务器发请求获取验证码&#xff0c;然后端游输入验证码&#xff0c;向我的后端发请求获取验证信息。后台给游戏端返回信息的时候同时给微信小程序端返回验证结果。意思是不要微信小程序端主动触发&#xff0c;验证是否绑定的请求。 思路 后端生成验证码时存…

python-opencv 人脸检测

python-opencv 人脸检测 代码还使用到了dlib 和face_recognition这两个库&#xff0c;需要安装一下&#xff0c;看一下代码&#xff1a; import face_recognition import cv2# 创建视频捕捉对象 video_capture cv2.VideoCapture(0) print(video_capture.isOpened())# video_…

[ZJCTF 2019]NiZhuanSiWei

虽然有include函数但我们无法直接包含flag因为对file进行了过滤&#xff0c;又看见有反序列化的入口&#xff0c;只是并没有发现可利用的方法&#xff0c;但题目有提示所以尝试将其调出来 php伪协议写入内容 看到file_get_contents函数想到使用data协议&#xff0c;去封装一个…

Hive内置表生成函数

Hive内置UDTF 1、UDF、UDAF、UDTF简介2、Hive内置UDTF 1、UDF、UDAF、UDTF简介 在Hive中&#xff0c;所有的运算符和用户定义函数&#xff0c;包括用户定义的和内置的&#xff0c;统称为UDF&#xff08;User-Defined Functions&#xff09;。如下图所示&#xff1a; UDF官方文档…

远程安全访问JumpServer:使用cpolar内网穿透搭建固定公网地址

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机&#xff0c;是符合 4A 规范的专业运维安全审计系统。JumpS…

Python潮流周刊:Twitter 的强敌 Threads 是用 Python 开发的!

&#x1f984;文章&教程 1、聊一聊 Python 和 Golang 的垃圾回收 常见的垃圾回收算法有哪些&#xff0c;它们的优缺点是什么&#xff1f;Python 的垃圾回收机制由什么组成&#xff0c;如何解决内存泄漏问题&#xff1f;Golang 的垃圾回收机制又是怎样的&#xff0c;如何解…

CNN中输入通道数、卷积核的深度、卷积核的个数和输出通道数之间的关系

当涉及卷积神经网络&#xff08;CNN&#xff09;中卷积核的数量和通道数时&#xff0c;通常存在一些混淆。让我为您解释清楚&#xff1a; 通道数&#xff08;Channel&#xff09;&#xff1a;在CNN中&#xff0c;输入数据通常是一个三维张量&#xff0c;具有宽度、高度和通道数…

新式的拉式膜片弹簧离合器设计机械设计CAD

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;离合器 获取完整论文报告工程源文件 减震弹簧 摩擦片 膜片弹簧 压盘 轴 扭转减震器 从动盘 离合器 离合器的结构设计 为了达到计划书所给的数据要求&#xff0c;设计时应根据车型的类别、使用要求、制造条件&#xff0c;…

C#,《小白学程序》第四课:数学计算,总和与平均值

程序是 数据 计算 显示。 1 文本格式 /// <summary> /// 《小白学程序》第四课&#xff1a;数学计算 /// 这节课超级简单&#xff0c;就是计算成绩的平均值&#xff08;平均分&#xff09; /// 这个是老师们经常做的一件事。 /// </summary> /// <param name&…

洛谷P1049装箱问题 ————递归+剪枝+回溯

没没没没没没没没没错&#xff0c;又是一道简单的递归&#xff0c;只不过加了剪枝&#xff0c;我已经不想再多说&#xff0c;这道题写了一开始写了普通深搜&#xff0c;然后tle了一个点&#xff0c;后面改成剪枝&#xff0c;就ac了&#xff0c;虽然数据很水&#xff0c;但是不妨…

ruoyi-plus-vue docker 部署

本文以 ruoyi-vue-plus 5.x docker 部署为基础 安装虚拟机 部署文档 安装docker 安装docker 安装docker-compose 配置idea环境 上传 /doicker 文件夹 到服务器&#xff1b;赋值 777权限 chmod -R 777 /docker idea构建 jar 包 利用 idea 构建镜像; 创建基础服务 docker…

力扣 3. 无重复字符的最长子串

题目 题解 方法 public static int lengthOfLongestSubstring(String s) {HashSet<Character> charSet new HashSet<Character>();int i 0,l0,max0;for (int j 0; j < s.length(); j) {while (charSet.contains(s.charAt(j))) {charSet.remove(s.charAt(l…

【JavaEE初阶】Thread 类及常见方法、线程的状态

目录 1、Thread 类及常见方法 1.1 Thread 的常见构造方法 1.2 Thread 的几个常见属性 1.3 启动⼀个线程 - start() 1.4 中断⼀个线程 1.5 等待⼀个线程 - join() 1.6 获取当前线程引用 1.7 休眠当前线程 2、线程的状态 2.1 观察线程的所有状态 2.2 线程状态和状…