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

Android15 launcher3

修改布局查看device_profiles.xml ,根据不同的网格数加载

packages/apps/Launcher3/res/xml/device_profiles.xml<grid-optionlauncher:name="6_by_5"launcher:numRows="5"launcher:numColumns="6"launcher:numSearchContainerColumns="3"launcher:numExtendedHotseatIcons="6"launcher:numFolderRows="3"launcher:numFolderColumns="3"launcher:numHotseatIcons="6"launcher:numAllAppsColumns="6"launcher:isScalable="true"launcher:inlineNavButtonsEndSpacing="@dimen/taskbar_button_margin_6_5"launcher:devicePaddingId="@xml/paddings_6x5"launcher:dbFile="launcher_6_by_5.db"launcher:defaultLayoutId="@xml/default_workspace_6x5"launcher:deviceCategory="tablet" >注意device下查看是否有相同的文件如果需要显示 6*5 的布局需要将这个grid-option 对齐其他地方的文件,不然会不起作用。上面的属性如 numRows numColumns 在attrs.xml定义  
packages/apps/Launcher3/res/values/attrs.xml
查看 <declare-styleable name="GridDisplayOption">需要添加6列的Hotseat 不起作用,查看log发现LoaderCursor 有输出error
packages/apps/Launcher3/src/com/android/launcher3/model/LoaderCursor.java
if (item.screenId >= mIDP.numDatabaseHotseatIcons) {Log.e(TAG, "Error loading shortcut " + item+ " into hotseat position screenId=" + item.screenId+ ", position out of bounds: (0 to " + (mIDP.numDatabaseHotseatIcons - 1)+ ")");return false;
}//mIDP.numDatabaseHotseatIcons  这个位置一直输出 4,最后只加载4个图标,反追查搜索numDatabaseHotseatIcons 找到位置  InvariantDeviceProfile.java 追查实例化过程可以查看 numDatabaseHotseatIcons 
packages/apps/Launcher3/src/com/android/launcher3/InvariantDeviceProfile.java
查看实例化方法 initGrid 和 GridOption

AllApp界面拦截apk

packages/apps/Launcher3/src/com/android/launcher3/model/LoaderTask.java

private List<LauncherActivityInfo> loadAllApps() {

......

for (int i = 0; i < apps.size(); i++) {
    LauncherActivityInfo app = apps.get(i);
    //add
    if("com.xxx.packges".equals(apps.get(i).getApplicationInfo().packageName)) {
        continue;
    }

   //add end

......

AppInfo appInfo = new AppInfo(app, mUserCache.getUserInfo(user),
        ApiWrapper.INSTANCE.get(mApp.getContext()), mPmHelper, quietMode);
if (Flags.enableSupportForArchiving() && app.getApplicationInfo().isArchived) {

http://www.xdnf.cn/news/885529.html

相关文章:

  • proteus8安装教程
  • PLM软件:如何打通产品研发全生命周期的“任督二脉”?
  • N2语法 強調、限定
  • C获取unix操作系统的信息
  • Cursor 1.0 版本 GitHub MCP 全面指南:从安装到工作流增强
  • 代码训练LeetCode(24)数组乘积
  • 【JavaEE】Spring Boot项目创建
  • STM32手册上标称的18MHz GPIO翻转速度和你实际测量到的速度之间的差异是预期之内且合理的
  • 量子计算+AI:特征选择与神经网络优化创新应用
  • 【汇编逆向系列】六、函数调用包含多个参数之多个整型-参数压栈顺序,rcx,rdx,r8,r9寄存器
  • 三表查询SQL怎么写?----小白初学+案例引入
  • 【Linux网络篇】:从HTTP到HTTPS协议---加密原理升级与安全机制的全面解析
  • 【Go语言基础】基本语法
  • python摆放花盆 2023年信息素养大赛复赛/决赛真题 小学组/初中组 python编程挑战赛 真题详细解析
  • 【JavaEE】万字详解HTTP协议
  • LangChain 入门指南:基于 DeepSeek 模型构建对话流程(保姆级)
  • 今日科技热点速览
  • 【联网玩具】EN 18031欧盟网络安全认证
  • 数论~~~
  • 曼昆《经济学原理》(第9版)微观经济学第二章第一节作为科学家的经济学家
  • 西门子SCL之IF-ELSIF语句详解及应用(安全控制代码)
  • RDMA简介5之RoCE v2队列
  • 如何做好一份技术文档?(下篇)
  • Windows系统下Cursor与QWQ-32B大模型的本地部署及插件调用实现方法
  • OpenAI 即将推出 GPT-5:开启多模态、持续记忆对话新时代
  • MATLAB读取文件内容:Excel、CSV和TXT文件解析
  • 【C#】异步和多线程
  • 优化09-表连接
  • 各种排序算法的再整理
  • 【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制