首页
学习
活动
专区
圈层
工具
发布

Android M Launcher3主流程源码浅析

由于一些原因迫使最近开始需要研究一下Launcher3源码,为了不再像以前那么傻逼(研究Settings等代码没作笔记),故这里赶紧将阶段性的感悟整理成文章,方便日后回看。...Launcher基础知识 有些人可能觉得Launcher很高端,其实Launcher的实质也就是一个普通应用,它只是比普通应用多配置了Category 的android:name=”android.intent.category.HOME...下图其实就是Android系统开机启动Launcher的大致过程,如下: ?...Launcher3主流程加载浅析 下面先给出主要的一些类文件的大致含义,这样才能方便理解代码,如下: Launcher:主界面Activity,最核心且唯一的Activity。...有了上面这些图,相信你再打开Android M Launcher3源码进行阅读时就能有个大致框架了,代码也就不贴了,只为记录而已。

2.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android11 Launcher3实现去掉抽屉改为单层

    Android11 Launcher3实现去掉抽屉改为单层1.前言:之前在Android12 Rom定制的时候实现过不去掉抽屉显示所有应用列表,今天来讲解下在Android11时实现去掉抽屉显示在桌面所有应用列表....修改AllAppsTransitionController源码路径:packages/apps/launcher3/src/com/android/launcher3/allapps/AllAppsTransitionController.java.../src/com/android/launcher3/dragndrop/DragController.java作用:控制桌面图标是否可以拖拽。.../src/com/android/launcher3/model/AddWorkspaceItemsTask.java作用:添加App图标到桌面核心修改如下:(不过滤系统和飞系统图标,显示所有的图标)@.../src/com/android/launcher3/InvariantDeviceProfile.java作用:控制桌面图标的排列样式核心修改如下:(这里在单层时修改为5层行5列,真正的Launcher

    31610

    Android启动系列之二:SystemServer和Launcher

    最后一行代码则通过RuntimeInit的applicationInit方法来进入SystemServer的main方法。 下面来具体看一下。...在此之前已经启动的AMS会将Launcher启动起来,Launcher启动过程如图: 启动Launcher的入口是AMS的systemReady方法,它在SystemServer的startOtherServices...Launcher启动后会查询系统中已经安装的应用程序及信息,然后显示到桌面上。...总结 我们通过两篇文章来简单的了解了Android系统的启动流程,这个流程主要有几个部分: 启动电源和系统启动 当电源键按下时引导芯片代码从预定义地方(固化在ROM)开始执行。...启动 被SystemServer进程启动的AMS会启动Launcher,Launcher启动后会将已安装应用的快捷图标显示到界面上 以上就是Android系统启动的完整流程,当然很多细节没有讲,大家有兴趣可以自行研究一下

    29110

    【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | Launcher 应用简介 | Launcher 应用源码简介 | Launcher 应用快捷方式图标点击方法分析 )

    文章目录 一、 Launcher 应用简介 二、 Launcher 应用源码简介 三、 Launcher 图标点击方法分析 一、 Launcher 应用简介 ---- Launcher 应用 : Android...Launcher 应用源码位置及版本 : ① Launcher 版本 : Launcher 有 3 个版本 , 分别是 Launcher , Launcher2 , Launcher3 ; ② 源码位置...: \packages\apps\Launcher2 Launcher3 版本的路径 : \packages\apps\Launcher3 ③ Launcher 版本与安卓版本对应关系 : 2.1 之前使用...Launcher , 2.2 ~ 4.3 使用 Launcher2 , 4.4 以后使用 Launcher3 应用 ; 2 ....启动应用的核心代码 : 在 if (tag instanceof ShortcutInfo) 分支中 , 如果点击应用图标 , 会调用 startActivitySafely 方法 , 启动应用 ;

    2.4K10

    Android Metro风格的Launcher开发系列第二篇

    前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客 Android Metro风格的Launcher开发系列第一篇写了如何配置...Android开发环境,只是用文字和图片展示了开发Metro风格Launcher的初步设计和产品要求,这一篇文章将会从代码上讲解如何实现对应的UI效果,好了,评书开讲!...Launcher主体框架实现: Launcher主体框架我选用的是大家所熟悉的ViewPager控件,因为ViewPager可以很容易做pager之间的切换动画,动画是可以自定义的,这样就轻松搞定滑出屏幕的各种效果...每一屏page之间的切换是通过实现ViewPager.PageTransformer接口来实现的,具体这个接口的讲解我这里就不介绍了,大家可以参考google官方文档:http://developer.android.com...DEFAULT_SCALE); view.setScaleY(SCALE_FACTOR * -position + DEFAULT_SCALE); } } } 3.

    1.3K60

    Android Metro风格的Launcher开发系列第一篇

    (3)安装完系统后一定要安装增强插件,否则窗口无法全屏,安装方法如下图: ? 点击红色箭头所指位置,然后在弹出框输入用户密码确认安装,安装完毕重启就可以全屏了。...二、产品设计: 在电视或者机顶盒上做UI开发,首先要考虑电视尺寸都比较大,你的UI展现要能够在电视屏幕上看着大小合适,展现的简洁舒服,别像原生Launcher那样好多小图标看着密密麻麻的,第二个是要方便遥控器操作...(3)图标对应的应用链接可以在xml文件配置。 (4)page个数可以配置,可以通过简单的修改参数去掉某个page。 设计思路: 拿到上面的产品需求你会怎么做呢?...(3)灵活添加,删除page需要好好考虑一下代码实现。 哎呀,好累,一个周六几个小时就这么过去了,套用《框框日记》里面框框经常说的一句话“多么有意义的一天呀!”。...以上就是我Launcher Metro风格实现的第一篇博文,简单描述了环境配置和设计思路,写的有不足之处还请各位多多包涵和交流,具体代码实现我会在我的下一篇博文中进行讲解,请多多关注!

    1.2K100

    Retinex图像增强算法代码

    本来想把下面的代码改成opencv版本的,但是不太会把读出来的mat里面数据改成BYTE*里面,在主函数里面写的一点都注释了 // Retinex.cpp : Defines the entry point...(sum+i*width+j-1)-*(sum+(i-1)*width+j-1)+*(pCur+i*width+j); //卷积计算 } } return; } // // 局部非线性对比度增强...waitKey(0); return 0; } 后面用opencv改写了一下主要想把像素数据写到BYTE *指向的内存空间中,这样的话可以加载其他格式的图像文件了:但是出现了一些问题,可能跟之前作者代码里面的限制有关...参见帖子: http://bbs.csdn.net/topics/391005171 http://bbs.csdn.net/topics/391004682 代码如下: #include <stdio.h...(sum+i*width+j-1)-*(sum+(i-1)*width+j-1)+*(pCur+i*width+j); //卷积计算 } } return; } // // 局部非线性对比度增强

    93830
    领券